Skip to main content
Glama

Add motion graphic

add_motion_graphic

Places a browser-rendered motion graphic on the program timeline using a template or supplied composition. Graphics are silent by default; optional owned sound cues use measured timing and level checks. Caption clearance and subject-depth treatment are configurable.

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": {
      "template": "<template>",
      "start": "<start>",
      "project_id": "<project_id>"
    },
    "name": "add_motion_graphic"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNo
boxNoOptional capture region hint [x0,y0,x1,y1] frame fractions.
endNo
sfxNo
htmlNo
layerNo
startYes
paramsNoParameters supported by the selected motion-graphics template.
purposeNo
templateYesAvailable motion-graphics template name, or 'html' for a supplied composition.
project_idYesExplicit project identifier for this request. The connection's navigation pointer does not select the target.
mute_captionsNoOmit (default): captions drop the words it shows; every other heard word stays captioned beside it. true = the same (no graphic mutes a whole window: every heard word reaches the screen once), muting only where no band is clear of it; false = captions keep running (a shown number/*starred* word is still not repeated).
allow_face_overlapNoKeep a deliberate placement over the face (skips the keep-out move).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / params / description
      Previous value: -"Template parameters (see list_motion_templates)."New value: +"Parameters supported by the selected motion-graphics template."
    • changedInput schema / properties / project_id / description
      Previous value: -"Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess."New value: +"Explicit project identifier for this request. The connection's navigation pointer does not select the target."
    • changedInput schema / properties / template / description
      Previous value: -"Template name from list_motion_templates, or 'html'."New value: +"Available motion-graphics template name, or 'html' for a supplied composition."
  2. Changed1 schema field changed
    • changedInput schema / properties / mute_captions / description
      Previous value: -"Omit (default): one reading path, captions drop the words it shows and yield to its phrase until it leaves. true = no captions in its window; false = captions keep running (a shown number/*starred* word is still not repeated)."New value: +"Omit (default): captions drop the words it shows; every other heard word stays captioned beside it. true = the same (no graphic mutes a whole window: every heard word reaches the screen once), muting only where no band is clear of it; false = captions keep running (a shown number/*starred* word is still not repeated)."
  3. Changed1 schema field changed
    • changedInput schema / properties / mute_captions / description
      Previous value: -"Omit (default) for word-level: captions drop only the spoken words this graphic shows. true = no captions for its whole window; false = captions keep running (a number/*starred* word it shows is still not repeated)."New value: +"Omit (default): one reading path, captions drop the words it shows and yield to its phrase until it leaves. true = no captions in its window; false = captions keep running (a shown number/*starred* word is still not repeated)."
  4. Changed2 schema fields changed
    • addedInput schema / properties / allow_face_overlap
      Added value: +{
      +  "description": "Keep a deliberate placement over the face (skips the keep-out move).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / mute_captions / description
      Added value: +"Omit (default) for word-level: captions drop only the spoken words this graphic shows. true = no captions for its whole window; false = captions keep running (a number/*starred* word it shows is still not repeated)."
  5. Added

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this is a non-destructive, non-idempotent, closed-world write operation, so the bar is lower. The description adds genuine behavioral facts beyond them: graphics are silent by default, optional sound uses 'measured timing and level checks', and caption clearance plus subject-depth layering are configurable. It does not say what happens if the same graphic is added twice (relevant given idempotentHint=false) or what the tool returns.

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?

Three sentences, front-loaded with the primary action, no filler. Some phrasing is vague jargon ('measured timing and level checks', 'subject-depth treatment') that would be clearer stated concretely.

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?

For a 13-parameter mutation tool with no output schema, the description covers the conceptual modes well but omits template discovery, return value, and duplicate-add behavior. An agent could call it correctly only by reading the schema closely.

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?

With 46% schema coverage across 13 parameters, the description partially compensates: 'silent by default' clarifies sfx, 'caption clearance' clarifies mute_captions, and 'subject-depth treatment' clarifies layer/allow_face_overlap. It adds nothing for start, end, box, params, purpose, id, or project_id, so roughly half the surface remains documented only by the schema.

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?

The description opens with a concrete verb+resource pair ('Places a browser-rendered motion graphic on the program timeline') and names the two input modes (template or supplied composition), which distinguishes it from removal/setter siblings like remove_motion_graphic and set_motion_graphic. It stops short of differentiating itself from near-neighbors such as add_vector_graphic, add_ui_scene, or add_kinetic_text.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no named alternative, despite many overlapping 'add_*' graphic siblings. The phrase 'using a template or supplied composition' only hints at a prerequisite; the description never points to list_motion_templates for discovering valid template names.

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.