Skip to main content
Glama

Burn captions into a clip

add_captions

Transcribe a clip's speech and burn social captions into it, as a new video in the library. Costs about five credits and takes a few minutes; get_generation waits for the result. Say nothing beyond source and you get the default look. preset is one of pop, clean, karaoke, boxed, word — "word" puts ONE WORD on screen at a time, large, which is the look short-form feeds use. style is the whole caption, and it overrides whichever preset it is given with: type and weight, size as a fraction of the frame's short edge, casing, fill and highlight colours, an outline or a plate behind the words, where they sit, and grouping, which decides how many words share a cue. A finished run carries its caption back on get_generation's caption_style, so 'the same captions on this other clip' is that value handed straight back here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
styleNo
presetNo
sourceYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYes
generationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / generation / properties / ready_in_seconds
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / generation / required
      Previous value: -[
      -  "generation_id",
      -  "kind",
      -  "status",
      -  "model",
      -  "prompt",
      -  "aspect_ratio",
      -  "refined_from",
      -  "caption_style",
      -  "output_url",
      -  "credits_cost",
      -  "error",
      -  "vendor_phase",
      -  "stalled",
      -  "created_at",
      -  "app_url"
      -]New value: +[
      +  "generation_id",
      +  "kind",
      +  "status",
      +  "model",
      +  "prompt",
      +  "aspect_ratio",
      +  "refined_from",
      +  "caption_style",
      +  "output_url",
      +  "credits_cost",
      +  "error",
      +  "vendor_phase",
      +  "stalled",
      +  "ready_in_seconds",
      +  "created_at",
      +  "app_url"
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the safety profile (non-readonly, non-destructive, non-idempotent). The description adds what annotations cannot: asynchronous behavior (get_generation waits), cost in credits, latency expectation, and the override precedence where `style` beats `preset` whichever is given. That is meaningful behavioral context beyond structured fields.

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?

Purpose, cost and latency are front-loaded, and later sentences each carry distinct information (defaults, preset list, style override semantics, round-trip). Sentences are long and heavily em-dashed, which slightly hurts scannability, but there is essentially no filler.

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?

For a mutation tool with a deep nested schema and an existing output schema, the description supplies everything an agent needs: default behavior, cost, timing, override precedence, and the round-trip with get_generation's caption_style. Return-value explanation is not required given the output schema, yet the caption_style handoff is usefully noted.

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 description coverage is 0% and the style object is deeply nested, so the description carries the load. It enumerates the `preset` values and singles out `word`, explains that `style` overrides preset and covers type/weight, size, casing, colours, outline-or-plate, position and `grouping`. It leaves margin_h, margin_v, font_id and schema_version unaddressed, so it compensates well but not exhaustively.

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 description states a specific compound action — transcribe a clip's speech and burn captions in as a new library video. An agent can distinguish it immediately from transcribe_media (transcription only) or get_transcription (retrieval), and the output artifact (new video in the library) is explicit.

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

Usage Guidelines4/5

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

It gives concrete operating context — default look if only `source` is passed, ~5 credits, a few minutes, and that get_generation waits for the result. It also describes the re-run flow ('the same captions on this other clip' via caption_style). It never explicitly says when NOT to use it or names a sibling alternative, so it falls just short of a 5.

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.

Resources