Skip to main content
Glama

Find and replace in a video

replace_video_text
Destructive

Replaces a word or phrase across a whole video in one save — e.g. renaming a company or product everywhere ("Globex" → "Acme"): every scene's text variables (headlines, callouts, buttons, list items, labels…, including copy still at its default), scene labels, the narration scripts with includeNarration (default true; their audio then needs generate_video_voiceovers), and the video title. Case-insensitive unless matchCase; wholeWord skips matches inside longer words; dryRun only counts and lists. Images, colors and asset keys are never touched. Words typed into a custom scene's markup instead of a variable can't be replaced here: the answer lists those scenes (rewrite them with write_scene).

Requires: demos:read, demos:write.

Input Schema

NameRequiredDescriptionDefault
findYes
dryRunNoOnly count and list the places; nothing is saved.
replaceYes
videoIdYesVideo id (from list_videos), e.g. "v_Ab12Cd34Ef56Gh78".
sceneIdsNoOnly these scenes (default: all).
matchCaseNo
wholeWordNo
includeTitleNoAlso the video title.
includeNarrationNoAlso the narration scripts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Well beyond the annotations: it discloses the exact blast radius (every scene's text variables including untouched defaults, scene labels, narration scripts, video title), what is explicitly spared (images, colors, asset keys), the downstream consequence that narration audio must be regenerated with generate_video_voiceovers, and the required scopes. That is precisely the context a destructive, idempotent=false mutation needs and annotations alone cannot convey.

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?

One dense but front-loaded block: the verb and scope lead, then the affected surfaces, then the flags, then the exclusions and scopes. Every clause carries information, though the long parenthetical chain of text-variable examples and nested caveats makes it a run-on that is slower to parse than it needs to be.

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 a 9-parameter destructive mutation with no output schema, the definition covers scope, side effects, defaults, required permissions, and roughly what the response contains (a list of scenes needing rewrite, or counts in dryRun mode). The main residual gap is sceneIds semantics and whether there is any undo path after a save.

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?

With only 56% schema description coverage, the description carries real weight: it defines matchCase (case-insensitive by default), wholeWord (skips matches inside longer words), dryRun (counts and lists only, saves nothing), and includeNarration with its default. It does not explain the sceneIds parameter, which is a meaningful scoping control for a video-wide mutation and is undocumented in both places.

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?

States a specific verb and scope — "Replaces a word or phrase across a whole video in one save" — with a concrete renaming example that makes the resource boundary obvious (video-wide, not scene- or demo-wide). It carves out write_scene for the one exclusion case, so an agent can separate it from that sibling. It does not address near-neighbors like replace_in_copy or rewrite_copy, leaving some ambiguity among the 'replace text' family.

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?

Gives a clear usage scenario (renaming a company or product everywhere) and an explicit non-fit routing (custom scene markup cannot be replaced here — use write_scene). It also frames dryRun as the preview path. What is missing is an explicit comparison against the sibling replace_in_copy/rewrite_copy tools, which an agent could easily confuse with this one.

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.