Skip to main content
Glama

generate_audio

Generate audio. TTS (default elevenlabs-tts): speak text in a named voice (jessica, sarah, liam, chris, roger, lily, bill, matilda, or a raw ElevenLabs voice id), 16 credits per 1,000 characters, rounded up. Emotion tags are honoured. TTS cloned voices cannot speak Hebrew: a stock voice of the same gender speaks that line. Gemini TTS (model: gemini-tts, Gemini 3.8 Flash TTS): the natural voice for Hebrew and any language; voice sulafat (female, default) or achird (male), optional language (ISO code, e.g. he) and direction (how to read it, e.g. "warm, natural, conversational, like telling a friend"; never read aloud; no emotion tags or tone), 5 credits per 1,000 characters, rounded up; returns an MP3 you can pass as audio_refs to generate_video. Cartesia TTS (model: cartesia-tts, Cartesia Sonic 3.6): native Hebrew voices for narration, 44 languages; voice ayala (female narrator, default), yael, shira, hila (female), gil, noam, yonatan (male), or a Cartesia voice id; Hebrew text speaks Hebrew (optional language, ISO code); optional speed (0.6 to 1.5) and emotion (calm, sad, excited, ...; best in English); no tone or direction, 13 credits per 1,000 characters, rounded up; returns an MP3 you can pass as audio_refs. Voice conversion (model: elevenlabs-sts): pass audio_url (public HTTPS audio, max 15 seconds) and voice to re-voice an existing performance into the locked voice. Optional stability, similarity_boost, style (0..1), seed (uint32), remove_background_noise (boolean). No text or tone for STS. STS costs 1 credits per measured input second, total rounded up; call quote first. Models: elevenlabs-tts, elevenlabs-sts, gemini-tts, cartesia-tts. Returns a job id; poll get_run_status for the audio URL (TTS MP3, STS WAV with source duration).

RETRY SAFETY: set request_id to a fresh UUID for a new generation. Reuse the exact same request_id and inputs only to recover a lost response; that returns the original job without another charge. A deliberately new generation needs a new request_id. Keep the returned job_id and poll get_run_status. Never invent a refund.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "generate_audio"
  }
}

Input Schema

NameRequiredDescriptionDefault
seedNoSTS only: best-effort deterministic seed.
textNoRequired for TTS; forbidden for elevenlabs-sts. The words to speak. Emotion tags like [excited] or [whispers] are honoured by elevenlabs-tts (gemini-tts: use direction instead).
toneNoelevenlabs-tts only: energetic | calm | confident | dramatic.
modelNoA live audio model id from list_models, or "auto". Omit for the default (elevenlabs-tts). gemini-tts: Gemini 3.8 Flash TTS, natural Hebrew and any language. cartesia-tts: Cartesia Sonic 3.6, native Hebrew voices for narration.
speedNocartesia-tts only: speaking speed, 0.6 to 1.5 (1 is normal).
styleNoSTS only: style exaggeration, 0..1.
voiceNoelevenlabs-tts / elevenlabs-sts: stock voice name or raw ElevenLabs voice id (required for STS; TTS defaults to sarah; TTS cloned voices cannot speak Hebrew: a stock voice of the same gender speaks a Hebrew line). gemini-tts: sulafat (female, default) or achird (male). cartesia-tts: ayala (female narrator, default), yael, shira, hila (female), gil, noam, yonatan (male), or a Cartesia voice id.
emotionNocartesia-tts only: the emotion to read it with (neutral, calm, content, sad, angry, scared, excited, ...). Guidance; works best in English.
languageNogemini-tts and cartesia-tts only: the spoken language as an ISO code (he, es, pt-BR) for native pronunciation. cartesia-tts: Hebrew text defaults to he.
audio_urlNoRequired only for elevenlabs-sts: public audio URL, at most 15 seconds. Duration is measured by the server.
directionNogemini-tts only: how to read the line, e.g. "warm, natural, conversational, like telling a friend". Never read aloud.
stabilityNoSTS only: voice stability, 0..1.
request_idNoUnique request identity (prefer a UUID). Reuse with identical inputs to recover the same job after a lost response; choose a new identity only for an intentionally new generation.
similarity_boostNoSTS only: voice similarity, 0..1.
remove_background_noiseNoSTS only: remove background noise from the input.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / direction
      Added value: +{
      +  "description": "gemini-tts only: how to read the line, e.g. \"warm, natural, conversational, like telling a friend\". Never read aloud.",
      +  "maxLength": 500,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / emotion
      Added value: +{
      +  "description": "cartesia-tts only: the emotion to read it with (neutral, calm, content, sad, angry, scared, excited, ...). Guidance; works best in English.",
      +  "enum": [
      +    "neutral",
      +    "happy",
      +    "excited",
      +    "enthusiastic",
      +    "elated",
      +    "euphoric",
      +    "triumphant",
      +    "amazed",
      +    "surprised",
      +    "flirtatious",
      +    "curious",
      +    "content",
      +    "peaceful",
      +    "serene",
      +    "calm",
      +    "grateful",
      +    "affectionate",
      +    "trust",
      +    "sympathetic",
      +    "anticipation",
      +    "mysterious",
      +    "angry",
      +    "mad",
      +    "outraged",
      +    "frustrated",
      +    "agitated",
      +    "threatened",
      +    "disgusted",
      +    "contempt",
      +    "envious",
      +    "sarcastic",
      +    "ironic",
      +    "sad",
      +    "dejected",
      +    "melancholic",
      +    "disappointed",
      +    "hurt",
      +    "guilty",
      +    "bored",
      +    "tired",
      +    "rejected",
      +    "nostalgic",
      +    "wistful",
      +    "apologetic",
      +    "hesitant",
      +    "insecure",
      +    "confused",
      +    "resigned",
      +    "anxious",
      +    "panicked",
      +    "alarmed",
      +    "scared",
      +    "proud",
      +    "confident",
      +    "distant",
      +    "skeptical",
      +    "contemplative",
      +    "determined"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "gemini-tts and cartesia-tts only: the spoken language as an ISO code (he, es, pt-BR) for native pronunciation. cartesia-tts: Hebrew text defaults to he.",
      +  "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
      +  "type": "string"
      +}
    • changedInput schema / properties / model / description
      Previous value: -"A live audio model id from list_models, or \"auto\". Omit for the default (elevenlabs-tts)."New value: +"A live audio model id from list_models, or \"auto\". Omit for the default (elevenlabs-tts). gemini-tts: Gemini 3.8 Flash TTS, natural Hebrew and any language. cartesia-tts: Cartesia Sonic 3.6, native Hebrew voices for narration."
    • addedInput schema / properties / speed
      Added value: +{
      +  "description": "cartesia-tts only: speaking speed, 0.6 to 1.5 (1 is normal).",
      +  "maximum": 1.5,
      +  "minimum": 0.6,
      +  "type": "number"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"Required for TTS; forbidden for elevenlabs-sts. The words to speak. Emotion tags like [excited] or [whispers] are honoured."New value: +"Required for TTS; forbidden for elevenlabs-sts. The words to speak. Emotion tags like [excited] or [whispers] are honoured by elevenlabs-tts (gemini-tts: use direction instead)."
    • changedInput schema / properties / tone / description
      Previous value: -"energetic | calm | confident | dramatic."New value: +"elevenlabs-tts only: energetic | calm | confident | dramatic."
    • changedInput schema / properties / voice / description
      Previous value: -"Stock voice name or raw ElevenLabs voice id. Required for STS; TTS defaults to sarah. TTS cloned voices cannot speak Hebrew: a stock voice of the same gender speaks a Hebrew line."New value: +"elevenlabs-tts / elevenlabs-sts: stock voice name or raw ElevenLabs voice id (required for STS; TTS defaults to sarah; TTS cloned voices cannot speak Hebrew: a stock voice of the same gender speaks a Hebrew line). gemini-tts: sulafat (female, default) or achird (male). cartesia-tts: ayala (female narrator, default), yael, shira, hila (female), gil, noam, yonatan (male), or a Cartesia voice id."
  2. Changed10 schema fields changed
    • addedInput schema / properties / audio_url
      Added value: +{
      +  "description": "Required only for elevenlabs-sts: public audio URL, at most 15 seconds. Duration is measured by the server.",
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedInput schema / properties / remove_background_noise
      Added value: +{
      +  "description": "STS only: remove background noise from the input.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / seed
      Added value: +{
      +  "description": "STS only: best-effort deterministic seed.",
      +  "maximum": 4294967295,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / similarity_boost
      Added value: +{
      +  "description": "STS only: voice similarity, 0..1.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / stability
      Added value: +{
      +  "description": "STS only: voice stability, 0..1.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / style
      Added value: +{
      +  "description": "STS only: style exaggeration, 0..1.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"The words to speak. Emotion tags like [excited] or [whispers] are honoured. Priced per character; see list_models."New value: +"Required for TTS; forbidden for elevenlabs-sts. The words to speak. Emotion tags like [excited] or [whispers] are honoured."
    • removedInput schema / properties / voice / default
      Removed value: -"sarah"
    • changedInput schema / properties / voice / description
      Previous value: -"A voice name: jessica (young female), sarah (female), liam (young male), chris (male), roger (male), lily (elder female), bill (elder male), matilda (warm), or a raw ElevenLabs voice id. A cloned voice cannot speak Hebrew: a stock voice of the same gender speaks a Hebrew line."New value: +"Stock voice name or raw ElevenLabs voice id. Required for STS; TTS defaults to sarah. TTS cloned voices cannot speak Hebrew: a stock voice of the same gender speaks a Hebrew line."
    • removedInput schema / required
      Removed value: -[
      -  "text"
      -]
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only declare write/open-world/non-destructive; the description adds concrete cost models (16/5/13 credits per 1,000 chars rounded up, 1 credit per measured input second for STS), hard input constraints (public HTTPS, max 15 seconds), a capability limit (cloned voices cannot speak Hebrew), and explicit retry/charge semantics so no duplicate billing occurs. It stops short of describing failure modes or what happens when a model id is invalid, but the safety-relevant behavior is well covered.

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?

Front-loaded and organized by model, which is the right ordering, but it is one dense paragraph that re-states schema content (voice enumerations, speed and STS scalar ranges) an agent already has. Bulleting the four models and dropping the duplicated enum lists would cut length without losing information.

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?

With 15 parameters and no output schema, the description carries the return-value burden and does: it yields a job id, audio is retrieved via get_run_status, TTS returns MP3 and STS returns WAV timed to source duration. Combined with explicit pricing and retry rules, an agent has everything needed to call it correctly and 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 already 100%, so the baseline is 3, but the description earns more by binding parameters to models in one place (which voice list belongs to which model, that direction is never read aloud, that emotion works best in English, that language is ISO-coded and defaults to 'he' for Cartesia Hebrew). That cross-parameter matrix is genuinely easier to use than the scattered per-field schema text, though some of it is pure duplication.

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 resource ("Generate audio") and immediately enumerates the four model variants (elevenlabs-tts, gemini-tts, cartesia-tts, elevenlabs-sts) with the distinct behavior of each. This lets an agent separate TTS from voice conversion without opening the schema, and implicitly distinguishes it from generate_video/generate_image siblings.

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 selection conditions: gemini-tts or cartesia-tts for Hebrew, cartesia-tts for native Hebrew narration, elevenlabs-sts when re-voicing an existing performance, quote before STS. It also routes the agent downstream ("poll get_run_status", "pass as audio_refs to generate_video") and states the reconstruct-vs-new-generation rule for request_id.

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.

Resources