Skip to main content
Glama

generate a speech preview

speech-previews_create
Destructive

Synthesize a confirmed script into a standalone speech audio job using a selected voice after verifying project access; persist an idempotency key to avoid duplicate paid synthesis.

Instructions

Synthesize a confirmed script in a voice from voices_list into one standalone speech audio job (ElevenLabs), after verifying access to projectId. This is a potentially paid action. Check speech-previews_get-options first, persist idempotencyKey before calling, and after an uncertain response retry only with that same key and identical input; a new key can bill again. Returns the job: status PENDING, PROCESSING, SUCCESS or FAILED, with url and duration filled only on SUCCESS, so poll speech-previews_get by the returned id (jobs_get and jobs_wait do not cover speech jobs). Never create again because attaching the resulting audio failed. An inaccessible project or a malformed idempotencyKey fails before anything is synthesized. Not for lipsyncing a script directly (lipsync_create with script and voiceId), editing words in a video in the original speaker voice (dialogue-previews_create) or translating audio (translation-previews_create). Pass projectIntent=explicit with projectId only for a project the user explicitly chose or one just created for this request, never because its name matches or it is open; default new work to a new project.

Input Schema

NameRequiredDescriptionDefault
scriptYesExact text the user confirmed, spoken as written; up to 5,000 characters.
voiceIdYesVoice id returned by voices_list (premade ElevenLabs voices or this organization's clones). A voice with a restriction cannot synthesize; pick another.
projectIdYesProject the preview is for, from projects_create or projects_list. The tool checks you can access it before synthesizing; pass the same id to speech-previews_get.
stabilityNoVoice consistency from 0 to 1; higher is steadier, lower is more expressive.
projectIntentNoRequired with projectId. Set only for an explicit user project selection/update, or the new project just created for this request. Never infer intent from a matching project name, workflow name or active editor.
idempotencyKeyYesA fresh UUID, persisted before the call and sent as the Idempotency-Key header. After an uncertain response, reuse it with the identical script and voice; only this key deduplicates, so a new key can bill a second synthesis.
similarityBoostNoHow closely to match the selected voice, from 0 to 1.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.2.4
    • changedInput schema / properties / idempotencyKey / description
      Previous value: -"Persist this request identity before synthesis. Reuse it with the identical script and voice after an uncertain response."New value: +"A fresh UUID, persisted before the call and sent as the Idempotency-Key header. After an uncertain response, reuse it with the identical script and voice; only this key deduplicates, so a new key can bill a second synthesis."
    • changedInput schema / properties / projectId / description
      Previous value: -"Project the speech belongs to, from projects_create or projects_list."New value: +"Project the preview is for, from projects_create or projects_list. The tool checks you can access it before synthesizing; pass the same id to speech-previews_get."
    • changedInput schema / properties / script / description
      Previous value: -"Text to speak, up to 5,000 characters."New value: +"Exact text the user confirmed, spoken as written; up to 5,000 characters."
    • changedInput schema / properties / voiceId / description
      Previous value: -"An id returned by voices_list. Restricted voices cannot synthesize."New value: +"Voice id returned by voices_list (premade ElevenLabs voices or this organization's clones). A voice with a restriction cannot synthesize; pick another."
  2. Changed4 schema fields changed
    • addedInput schema / properties / projectId / description
      Added value: +"Project the speech belongs to, from projects_create or projects_list."
    • addedInput schema / properties / script / description
      Added value: +"Text to speak, up to 5,000 characters."
    • addedInput schema / properties / similarityBoost / description
      Added value: +"How closely to match the selected voice, from 0 to 1."
    • addedInput schema / properties / stability / description
      Added value: +"Voice consistency from 0 to 1; higher is steadier, lower is more expressive."
  3. Addedv0.1.5

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=false, and the description justifies both by calling this a 'potentially paid action' whose only deduplication is the supplied idempotencyKey. It additionally discloses the return lifecycle (PENDING/PROCESSING/SUCCESS/FAILED, url and duration only on SUCCESS) and pre-synthesis failures. It does not contradict the annotations — a new key can bill again, which is consistent with idempotentHint=false — but it could have been a touch more explicit about the billing trigger.

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?

The purpose and the paid-action warning are front-loaded, and nearly every sentence carries an operational rule. It is a single dense paragraph, though, and the polling/retry/anti-duplicate rules would scan faster as discrete lines; a few clauses restate the schema descriptions for projectId and idempotencyKey.

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 a paid, open-world, job-creating mutation with seven parameters and an output schema, the definition covers selection, prerequisites, side effects, failure modes, polling, retry semantics and sibling routing. Nothing an agent needs in order to call it safely is missing, and the return-shape note is a bonus rather than filler.

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 it by prescribing how projectIntent=explicit must be reasoned about (only explicit user selection or a just-created project, never name matching) and by treating idempotencyKey as a persisted artifact rather than a plain UUID. The stability and similarityBoost knobs get no prose treatment, which keeps it at 4 rather than 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: 'Synthesize a confirmed script in a voice from voices_list into one standalone speech audio job (ElevenLabs)', and explicitly names the three siblings it is not (lipsync_create, dialogue-previews_create, translation-previews_create). An agent can choose between them 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?

Gives explicit preconditions (check speech-previews_get-options first, persist idempotencyKey before calling, verify projectId access) and explicit exclusions routing to the three alternative tools. It also states the recovery procedure after an uncertain response and forbids re-creating after an attach failure, which is exactly the when/when-not guidance this dimension rewards.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.