Skip to main content
Glama

Make a picture of a person speak your audio

generate_lipsync
Destructive

Takes a picture of a person and an audio file and generates a video of THAT person speaking or singing the audio, lip-synced. Returns the new job's id immediately; the result is exactly as long as the audio. WHEN: the user wants a talking avatar, a presenter or a voiceover on a face. The picture supplies the person; the audio supplies the performance AND the length. CONSENT: only a picture of the user, of someone who gave their permission, or of a fictional or AI-generated character; never a real person without their permission, and never a public figure or celebrity (decline and offer a generated character). The audio must be a generate_audio result on this account (pass its id or url). An external audio url is not accepted, so audio from elsewhere has to be made with generate_audio first. THE CARD: this call already opened the aicut card: do not call show_generation for this job. WAIT: wait_for_generation (this id, media), again at once while terminal: false, then one short line; no get_* polling, timers, background shells or narrating the wait. No card? Give the user the url. COST: this spends the user's tokens: the AUDIO's length times a per-second rate that depends on resolution (a two-minute voiceover costs many times a ten-second one; 1080p costs twice 720p). The audio's length is MEASURED BY THE SERVER from the file, never taken from anything you say: that measurement, rounded UP to the next whole second, is the price. Audio it cannot measure is REFUSED with nothing charged. There is no length argument. An external url costs one media-ingest slot: quote and create from the SAME url to pay it once. 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
promptNoOptional direction for the performance (a mood or manner). It does not change what is said: the words come from the audio.
resolutionYesOutput resolution; 1080p costs exactly twice 720p per second of audio. REQUIRED: use `720p` unless the user asked for `1080p`, and name the choice in the priced ask; never carried over from an earlier request.
source_audioYesThe audio to lip-sync to: the id `generate_audio` returned, or its url. It must be audio generated on THIS account; an external audio url or a local file is not accepted.
estimate_onlyNoPrice only; creates nothing.
character_imageYesURL of the picture of the person who should speak (a clear, front-facing portrait works best; see CONSENT). A URL from this account's generations or uploads, or a public https URL (imported first); another account's is refused.
idempotency_keyNoRetry-safety key (IDEMPOTENCY).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes far beyond the annotations: it discloses the token cost model (per-second rate varying by resolution), that audio length is server-measured and rounded up, that unmeasurable audio is refused with nothing charged, that an external URL consumes a media-ingest slot, and that a reused idempotency key replays the first job. These details are consistent with `destructiveHint: true`, `openWorldHint: true`, and `idempotentHint: false` rather than contradicting them.

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

Conciseness3/5

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

The core action is front-loaded and the labeled CAPS sections (WHEN, CONSENT, COST, WAIT, IDEMPOTENCY) make it navigable, but the description is very long and repeats schema content such as the resolution price ratio and the audio-account restriction. For a complex tool some length is warranted, but this is dense and over-emphasized rather than tight.

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 everything an agent needs for a costly, consent-sensitive generation: cost and estimation flow, the required prior `generate_audio` step, consent policy, card/waiting protocol, idempotency hazards, and what is returned. There is no output schema, but the description states the immediate return (job id) and the final result's length.

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 100% schema coverage, the baseline is 3, but the description adds meaning not in the schema: the absence of any length argument, the server-side measurement and rounding of audio length, the media-ingest cost of an external URL, and the consent constraint on `character_image`. Much of the rest (resolution cost, audio account restriction) duplicates the schema descriptions, keeping it below a 5.

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?

States a specific verb and resource: takes a picture plus an audio file and generates a lip-synced video of that person. It distinguishes the tool from siblings by specifying exactly which inputs it consumes (a `generate_audio` result) and what it returns (a job id and a video exactly as long as the audio). An agent can tell this apart from generate_video or motion_control without opening schemas.

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?

Explicitly names when to use it (talking avatar, presenter, voiceover on a face) and when not to (never a real person without permission, never a public figure or celebrity). It also routes the agent to alternatives: make audio with `generate_audio` first, use `wait_for_generation` rather than polling, and do not call `show_generation` because the card is already open.

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