Skip to main content
Glama

timeline.add_transitions

Add the SAME transition to several clips in ONE call (and one undo step) — prefer this over repeated timeline.add_transition when joining a run of clips. Select the clips with exactly one of itemIds, trackId (every clip on a track) or all:true (every clip on every track; trackType limits to video/audio) — to crossfade the whole film use all:true with trackType 'video', do NOT list ids or make one call per join. kind crossfade/smooth_blend: adds one between every pair of the selected clips that are neighbours on their track (a chain of N clips gets N-1 transitions; the clips must be back-to-back, close gaps first with timeline.close_gaps). Each incoming clip shifts durationMs earlier, together with any clips chained after it, so the total sequence shortens by durationMs per join. kind fade_from_black / fade_to_black: adds that fade to each selected clip. Pairs/clips that can't take it (already has one, gap, too short) are skipped and reported in skipped + warnings; the call only fails if nothing at all could be added.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "projectId": "<projectId>",
      "expectedVersion": "<expectedVersion>",
      "kind": "<kind>",
      "durationMs": "<durationMs>"
    },
    "name": "timeline.add_transitions"
  }
}

Input Schema

NameRequiredDescriptionDefault
allNoEvery clip on every track — narrow with trackType
kindYes
itemIdsNoThese specific clips
trackIdNoEvery clip on this track
projectIdYes
trackTypeNoWith all: only tracks of this type
durationMsYes
expectedVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses the ripple side effect ("each incoming clip shifts durationMs earlier, together with any clips chained after it, so the total sequence shortens"), partial-failure semantics ("pairs/clips that can't take it ... are skipped and reported in `skipped` + warnings"), and the failure threshold ("only fails if nothing at all could be added"). It omits the optimistic-concurrency meaning of expectedVersion, which matters for a mutation tool.

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?

Front-loaded with the core value proposition (one call, one undo step) before the mechanics. It is dense and readable, but the long em-dash-chained sentences stack selection, kind, and ripple semantics into single runs, making it heavier than necessary.

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

Completeness4/5

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

For an 8-parameter, no-annotation, no-output-schema mutation tool, this covers selection modes, per-kind semantics, ripple effects, and partial-failure reporting — enough to call it correctly. The remaining gap is concurrency/versioning semantics and permission expectations, which are entirely unaddressed.

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

Parameters3/5

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

Schema coverage is 50%, and the description compensates well for the selection parameters by stating they are mutually exclusive ("exactly one of itemIds, trackId or all:true") and by spelling out kind-by-kind behavior. However, projectId and expectedVersion — including that the latter is a version guard that can reject the call — are unexplained in both the description and the schema, leaving half the parameters undocumented.

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?

States a specific verb and resource ("Add the SAME transition to several clips in ONE call") and immediately contrasts with the sibling it replaces ("prefer this over repeated timeline.add_transition"). An agent can distinguish it from timeline.add_transition and timeline.remove_transitions without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (joining a run of clips), explicit when-not ("do NOT list ids or make one call per join"), and names the correct pattern for the whole-film case (all:true with trackType 'video'). It also routes to a prerequisite sibling ("close gaps first with timeline.close_gaps").

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.