Skip to main content
Glama

Generate a fake-text chat story video

generate_fake_text_video
Destructive

CREATES a fake-text video: a phone chat conversation that types itself out over a gameplay or green-screen background, every line read aloud in the voice you pick for that side. YOU WRITE THE SCRIPT: there is no writer behind this endpoint, and the messages array you send IS the conversation, in that order, one {text, from} per chat bubble (get_recipe fake-text has the format advice and a worked example). Write it from what the user asked for, show it to them as plain text before spending anything and change it until they like it: iterating costs nothing. AFTER: this one call makes the finished video (the answer carries the price split and renders_automatically: true; no fire or render step). Wait with wait_for_generation; when terminal get_video carries the file url. start_confirmed: false means the job exists but its start was never confirmed: do not create it again, watch it, and tell the user it may need a retry if it has not moved in ten minutes. The whole chat may not reach 6000 characters of dialogue (aicut will not cut it for you: shorten it). COST: quoted per character of dialogue, in two parts that are both charged: call estimate_only: true first and state estimated_tokens (the total). A longer script costs more, AND SO DOES THE VOICE PROVIDER (ElevenLabs is about four times openai per character): change a provider and re-run estimate_only; never carry an older quote across that change. NOT OFFERED (the web app has them; say so rather than approximating them in the script): background music, specific gameplay clips, images or sound effects inside the chat, contact photos, promotions, a second chat in one video, the cantina skin. SPENDS TOKENS: price with estimate_only: true, ask in the SAME message as the price, and wait for a go that names THIS purchase (SPENDING RULES, this server's instructions). IDEMPOTENCY: a reused idempotency_key REPLAYS the first job whatever the settings: never reuse one for a new generation (this server's instructions).

Input Schema

NameRequiredDescriptionDefault
languageNoThe language the conversation is written in, by name ('English', 'German'); default English. Write `messages` in it too: this labels the script, it does not translate it.
messagesYesThe conversation, in order, one entry per chat bubble. This is the script, and you write it.
templateNoThe chat app skin. Defaults to `imessage`.
backgroundNo`random` (a gameplay clip, the usual choice) or `greenscreen` (plain, to key out later). Default `random`.
voice_leftNoThe voice for the LEFT side. Pick two different voices so the two people sound different (there is no silent option). The voice id for this side, in the provider named by `voice_provider_*` (omit for that provider's first voice). openai: alloy, ash, ballad, coral, echo, sage, shimmer, verse (retired `onyx`, `nova`, `fable` still work, speaking as `ash`, `shimmer`, `alloy`). elevenlabs: an id from `list_voices` with `provider: 'elevenlabs'` (stock, cloned or custom voices; PAGED: pass `usable_for: 'audio', limit: 100` and read `has_more` before saying a voice does not exist). Any other id is refused uncharged. Cloned and custom ElevenLabs voices ARE accepted here and on `generate_image_story`; `generate_audio` cannot.
voice_rightNoThe voice for the RIGHT side: same rules as `voice_left`.
aspect_ratioNoDefaults to `9:16`, the vertical shape every short-form platform wants.
contact_nameYesThe name at the top of the phone screen: who the owner is texting ('Mom', 'Jake ❤️').
estimate_onlyNoPrice only; creates nothing.
idempotency_keyNoRetry-safety key (IDEMPOTENCY).
voice_speed_leftNoThe LEFT side's reading speed. 1 normal (default), 1.15 fast, 1.25 very fast. Faster makes the video shorter and costs nothing extra (the price is per character).
voice_speed_rightNoThe RIGHT side's reading speed: as `voice_speed_left`.
notification_soundsNoPlay a message tone as each bubble arrives. Defaults to true.
voice_provider_leftNoWho reads the LEFT side. `elevenlabs` is the web app's default, `openai` is cheaper and covers every language with the same eight voices. Defaults to `openai`. IT CHANGES THE PRICE: ElevenLabs costs about four times openai per character, so call `estimate_only` again after changing it.
voice_provider_rightNoWho reads the RIGHT side: same choices and price rule as `voice_provider_left`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and destructiveHint=true; the description supplies the real behavioral burden — per-character cost in two charged parts, the ElevenLabs ~4x premium, the 6000-character dialogue cap with no auto-cut, the start_confirmed:false recovery path (do not re-create, watch it), and the idempotency_key replay semantics. These are exactly the failure modes an agent needs before spending.

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?

Structure is front-loaded and logical: what it makes, who writes the script, what happens after, cost, exclusions, spending gate, idempotency. It is long and repeats the cost warning in both the description and voice_provider_left, and heavy ALL-CAPS shouting costs some readability, but for a 15-parameter token-spending tool nearly every sentence carries load.

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?

Covers the full lifecycle despite having no output schema: it states the response carries the price split and renders_automatically:true, that wait_for_generation is the wait step, and that get_video yields the file url. Combined with the cost gate, size limit and unoffered-features list, an agent has everything needed to call it safely.

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 coverage is 100%, so the baseline is 3; the description goes beyond by linking parameters across fields — changing voice_provider_* invalidates an older estimate, a longer script costs more, and estimate_only:true must be run before quoting. It does not restate per-parameter syntax, which the schema already owns, so it stays additive rather than redundant.

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?

Opens with a specific verb and a precise artifact: 'CREATES a fake-text video: a phone chat conversation that types itself out over a gameplay or green-screen background, every line read aloud.' That is distinguishable at a glance from generate_story_video, generate_image_story and generate_audio 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?

Names the routing cases explicitly: 'YOU WRITE THE SCRIPT: there is no writer behind this endpoint,' show it as plain text first because 'iterating costs nothing', then 'one call makes the finished video ... no fire or render step' (ruling out fire_story_video/render_story_video), plus wait_for_generation and get_video for the terminal url. It also lists an explicit NOT OFFERED set (music, gameplay clips, in-chat images, contact photos, promotions, second chat, cantina skin) so the agent knows what to refuse rather than approximate.

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.

Directories

Listed in ChatGPT · aicut

Last observed