Skip to main content
Glama

Change the captions

set_captions
DestructiveIdempotent

Change the caption block. Rewrite chosen lines with fix_captions. Cost: Free.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "set_captions"
  }
}

Input Schema

NameRequiredDescriptionDefault
xNoThe block's centre across; null puts it back.
onNoCaptions on or off.
caseNoAll caps, or as spoken.
fontNoA caption font id from get_font_family_info.
sizeNoA size word, or a scale 0.5 to 2.
colorNoOne colour for every word; null puts the style's own back.
weightNoWeight 100-900: the nearest face of the font's family. Send font too; the answer names the face drawn.
languageNoThe language the captions show (the speech is unchanged).
positionNoA place, or a fraction of the height.
rotationNoThe block turned, degrees; null puts it back.
video_idNoVideo; the open one if left out.
key_colorNoThe key words' colour; null puts the style's own back.
output_idNoOutput id.
spellingsNoWords heard -> written, everywhere: {"clipmint": "Clypmint"}.
base_versionNoVersion id you read.
operation_idNoSame id retries run once.

Output Schema

NameRequiredDescriptionDefault
codeNo
costNo
errorNo
stateNo
statusNo
dry_runNo
messageNo
plan_idNo
style_idNo
video_idNo
availableNo
import_idNo
output_idNo
studio_urlNo
version_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / color / anyOf
      Previous value: -[
      -  {
      -    "description": "A colour, #RRGGBB.",
      -    "pattern": "^#[0-9a-fA-F]{6}$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "A colour, #RRGGBB.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / key_color / anyOf
      Previous value: -[
      -  {
      -    "description": "A colour, #RRGGBB.",
      -    "pattern": "^#[0-9a-fA-F]{6}$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "A colour, #RRGGBB.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / operation_id / pattern
      Removed value: -"^[a-zA-Z0-9_.:-]{1,100}$"
  2. Changed1 schema field changed
    • changedInput schema / properties / weight / description
      Previous value: -"Weight 100 to 900: the face of the font's family nearest to it (same italic). Send font with it; the answer says the face drawn and the weights the family has."New value: +"Weight 100-900: the nearest face of the font's family. Send font too; the answer names the face drawn."
  3. Changed1 schema field changed
    • addedInput schema / properties / weight
      Added value: +{
      +  "description": "Weight 100 to 900: the face of the font's family nearest to it (same italic). Send font with it; the answer says the face drawn and the weights the family has.",
      +  "maximum": 900,
      +  "minimum": 100,
      +  "type": "integer"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / video_id / description
      Previous value: -"The video; the open one when left out."New value: +"Video; the open one if left out."
  5. Changed5 schema fields changed
    • changedInput schema / properties / base_version / description
      Previous value: -"The version_id you read; refused if the video changed since."New value: +"Version id you read."
    • changedInput schema / properties / operation_id / description
      Previous value: -"A retry with the same id runs once."New value: +"Same id retries run once."
    • changedInput schema / properties / output_id / description
      Previous value: -"An output (Short, hook, shape); the main video when left out."New value: +"Output id."
    • changedInput schema / properties / video_id / description
      Previous value: -"The video, from list_videos."New value: +"The video; the open one when left out."
    • changedInput schema / required
      Previous value: -[
      -  "video_id"
      -]New value: +[]
  6. Changed3 schema fields changed
    • changedInput schema / properties / base_version / description
      Previous value: -"The version_id you read; refused if the video changed since. Left out: the live version, and a repeat is saved once."New value: +"The version_id you read; refused if the video changed since."
    • changedInput schema / properties / operation_id / description
      Previous value: -"The same id on a retry runs it once; a new id is a new request."New value: +"A retry with the same id runs once."
    • changedInput schema / properties / output_id / description
      Previous value: -"A Short, hook or shape of the video; the main video when left out."New value: +"An output (Short, hook, shape); the main video when left out."
  7. Added

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true; the description adds the useful operational fact that the call is free, but does not disclose what the destruction means (that supplied values replace the existing block and nulls restore style defaults). Nothing contradictory, but a destructive 16-parameter mutation deserves more than "Change the caption block."

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

Conciseness5/5

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

Three short sentences: action first, the sibling routing second, the cost note last. No padding and nothing that could be cut without losing information.

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

Completeness3/5

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

An output schema and full parameter descriptions carry most of the load, but for a destructive, version-aware mutation (base_version, operation_id) the description omits whether changes merge or replace, whether retries are safe, and how version conflicts behave. Adequate but with clear gaps for the tool's complexity.

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 100%, so every parameter, including the null-restores-default semantics, is documented in the schema itself. The description contributes nothing parameter-specific, so the baseline 3 applies rather than anything higher.

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

Purpose4/5

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

"Change the caption block" names a specific verb and resource, and the follow-up sentence carves out text rewriting as belonging to fix_captions. An agent can tell this is the styling/appearance tool rather than the transcript-correction tool, though it never says explicitly that it covers position, colour, font and size.

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 explicitly routes line-level text edits to fix_captions, which is a real alternative-handling signal. It gives no guidance on when a call is inappropriate (e.g. before captions exist) or on the interaction with version/base_version, so it is clear context without exclusions.

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