Skip to main content
Glama

ass_set_durations

Set selected subtitle line durations to a specific minimum and maximum range by moving the start or end edge, with dry-run and overlap options.

Instructions

Pull every selected line into the [min_ms, max_ms] duration window.

Only the edge named by mode moves — "stretch" (default) keeps the start and moves the end, "start" keeps the end and moves the start. A line is never moved past the neighbouring line on the same layer unless allow_overlap is True, and never past keep gaps (there are none by default, so the limit is the neighbour's exact start).

Args: selection: lines to adjust. min_ms: minimum duration; shorter lines are lengthened. max_ms: maximum duration; longer lines are shortened. mode: "stretch"/"end" (move the end) or "start" (move the start). doc_id: document id. dry_run: when True (the default) nothing is written — the response shows exactly what would happen. allow_overlap: allow the new edge to cross the neighbouring line.

Returns: {"doc_id", "dry_run", "applied", "mode", "window": {"min_ms", "max_ms"}, "allow_overlap", "count", "changes": [{"index", "field", "old_ms", "new_ms", "old", "new", "reason"}], "blocked": [{"index", "reason", "wanted_ms", "limit_ms"}]}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNostretch
doc_idNo
max_msNo
min_msNo
dry_runNo
selectionNo
allow_overlapNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discharges it well: it discloses which edge moves per mode, the default, the neighbor/keep-gap constraints, that allow_overlap relaxes them, and that dry_run defaults to true so nothing is written. This is rich, safety-relevant behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded, then Args and Returns are separated cleanly. Minor verbosity in the keep-gap aside ('there are none by default') slightly muddies the constraint statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All seven parameters are covered, defaults are given, and the response shape is spelled out in detail. For a 7-param mutation tool with no annotations and a 0%-coverage schema, nothing an agent needs before calling it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and the Args block documents all seven parameters with meaningful semantics (e.g. shorter lines lengthened, longer shortened, mode edge behavior). The gap is 'selection', which is described only as 'lines to adjust' without clarifying its format (indices vs refs).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and effect on a specific resource: pulling selected lines into a duration window. Combined with the mode discussion, an agent can distinguish this from timing siblings like ass_shift_times or ass_set_times without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description thoroughly explains behavior once invoked but never states when to choose this over adjacent tools such as ass_set_times, ass_scale_times, or ass_fix_timing. Usage is implied by the effect rather than routed explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools