Skip to main content
Glama

voice.generate

Speak a line with ElevenLabs for a voice placeholder (narration, off-screen dialogue — no lip-sync). Costs credits per character, charged to the project owner. Runs in the background — poll generation.list with placeholderId. The finished audio fills the clip (undoable).

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": {
      "projectId": "<projectId>",
      "placeholderId": "<placeholderId>"
    },
    "name": "voice.generate"
  }
}

Input Schema

NameRequiredDescriptionDefault
textNoThe words to speak. Defaults to the clip's prompt, then the scene's voice prompt
modelNoeleven-multilingual-v2 (default), eleven-v3 (most expressive) or eleven-flash-v2.5 (cheapest)
voiceIdNoElevenLabs voice (voice.list). Defaults to characterId's voice, then a narrator voice
projectIdYes
characterIdNoSpeak in this character's voice
placeholderIdYesA voice placeholder on an audio track (timeline.add_placeholder with kind voice)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations at all, the description carries the full burden and does so: it discloses credit cost per character billed to the project owner, asynchronous background execution with a concrete polling instruction (generation.list with placeholderId), and that the resulting audio overwrites the clip and is undoable. These are precisely the behavioral facts an agent needs before invoking a mutating, paid, async operation.

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?

Four short sentences, each carrying distinct load: capability, cost, async workflow, and side effect. The scope qualifier (no lip-sync) is front-loaded rather than buried, and there is no filler.

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?

For an async, credit-consuming, placeholder-filling tool with no annotations and no output schema, the description covers the decisive unknowns: cost owner, background execution plus the polling tool to use, and the undoable overwrite of the clip. Nothing that would change an agent's invocation decision is missing.

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 description coverage is 83%, so the schema already documents text, model, voiceId, characterId, and placeholderId fallback chains. The description adds essentially nothing beyond that, only referencing placeholderId in the polling step. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource (speak a line with ElevenLabs into a voice placeholder) and immediately scopes it against the lip-sync case, which is exactly how it differs from shot.lipsync and shot.revoice. An agent can pick it without opening the schema.

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?

Names the intended scenarios (narration, off-screen dialogue) and explicitly excludes lip-sync work, which implicitly routes that case to shot.lipsync. It also names generation.list as the follow-up call. It does not explicitly compare against voice.compile or shot.revoice, so the sibling routing is clear but not exhaustive.

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.