Skip to main content
Glama

Generate Audio

generate_audio

Generate spoken audio from text: narration, a voiceover, a read-aloud script, or a multi-voice dialogue. Pass text (up to 3000 chars) — the words to be spoken. To speak in one of YOUR saved voices, pass voice with the voice NAME (or id): users speak plain language and never know ids, so resolve the name yourself (the voice tool, action "list", shows every saved voice) and never ask the user for an id. Reference voices, trained clones and preset voices are all routed correctly by kind. To match a voice instantly from a clip instead, pass reference_audio_url (a short clip) or up to 3 reference_audio_urls and address them as @Audio1, @Audio2, @Audio3 in the text for dialogue. Alternatively pass image_url to voice a scene from a picture (cannot combine with reference audio). Pass delivery to direct HOW it should sound in plain English — the voice (gender, age, accent, emotion, tone, speed), the mic and room, and any background sound or music — e.g. "soft, warm and a little flirty, unhurried, close clear mic, no echo"; it works with any saved voice (trained clones included), with clips, or with no voice. To fix the length of a sentence, put a time window in front of it inside text, e.g. [5.5s:8.0s] before the sentence. Optional speech_rate (-50..100), pitch (-12..12), loudness (-50..100). Before writing a delivery line, a multi-voice scene or timed lines, call load_workflow_playbook with id playbook/audio-prompting: it holds the prompt order, the voice description fields, the @Audio tagging rules, timing control and the limits. Returns a playable audio_url, duration_seconds, and generation_id (also saved to your library).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesThe words to speak / narrate / perform. Max 3000 chars. For dialogue, address voices as @Audio1, @Audio2, @Audio3. Optional per-sentence timing: put [start:end] seconds in front of a sentence, e.g. [5.5s:8.0s].
pitchNoOptional. Pitch, -12 to 12. 0 is normal.
voiceNoOptional. A saved voice — pass its NAME (or id); it is resolved and routed by kind automatically. Omit for a natural default voice.
formatNoOptional output format. Default mp3.
deliveryNoOptional. How it should SOUND, in plain English: the voice (gender, age, accent, emotion, tone, speed), mic and room, background sound or music — e.g. "young woman, warm Latin accent, soft, a little flirty, unhurried, clear close mic, no echo". Under 400 chars. Not the words themselves.
loudnessNoOptional. Loudness, -50 (quieter) to 100 (louder). 0 is normal.
image_urlNoOptional. Voice a scene from a picture. Cannot be combined with reference audio.
speech_rateNoOptional. Speaking speed, -50 (slower) to 100 (faster). 0 is normal.
reference_audio_urlNoOptional. A short clip URL to instantly match that voice.
reference_audio_urlsNoOptional. Up to 3 reference clip URLs for multi-voice dialogue.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / delivery
      Added value: +{
      +  "description": "Optional. How it should SOUND, in plain English: the voice (gender, age, accent, emotion, tone, speed), mic and room, background sound or music — e.g. \"young woman, warm Latin accent, soft, a little flirty, unhurried, clear close mic, no echo\". Under 400 chars. Not the words themselves.",
      +  "type": "string"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"The words to speak / narrate / perform. Max 2048 chars. For dialogue, address voices as @Audio1, @Audio2, @Audio3."New value: +"The words to speak / narrate / perform. Max 3000 chars. For dialogue, address voices as @Audio1, @Audio2, @Audio3. Optional per-sentence timing: put [start:end] seconds in front of a sentence, e.g. [5.5s:8.0s]."
  2. Changed2 schema fields changed
    • addedInput schema / properties / loudness
      Added value: +{
      +  "description": "Optional. Loudness, -50 (quieter) to 100 (louder). 0 is normal.",
      +  "type": "number"
      +}
    • changedInput schema / properties / voice / description
      Previous value: -"Optional. A saved voice id to speak in. Omit for a natural default voice."New value: +"Optional. A saved voice — pass its NAME (or id); it is resolved and routed by kind automatically. Omit for a natural default voice."
  3. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only mark readOnlyHint=false; the description adds that the operation returns audio_url, duration_seconds and generation_id and that the generation is saved to the library. It also discloses the image_url/reference-audio exclusivity constraint and character limits, without contradicting the annotation.

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?

Long but dense and front-loaded: opens with the core purpose, then organizes by input mode, optional parameters, workflow pointer, and return values. Every sentence carries instructions or constraints; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no output schema, the description covers all input modes, limits (3000 chars, up to 3 clips), return values, and points to the playbook for advanced prompting. Minor gaps like cost/credit implications are not addressed, but nothing an agent needs to call it correctly is missing.

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?

All 10 parameters are already described in the schema (100% coverage), so baseline is 3. The description adds high-value meaning: resolve voice names yourself and never ask users for ids, @Audio1-3 addressing for dialogue, per-sentence [start:end] timing syntax, and the plain-English delivery contract. This pushes it above baseline.

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: 'Generate spoken audio from text' and enumerates concrete use cases (narration, voiceover, read-aloud, multi-voice dialogue). Clearly distinguishable from sibling generate_image and generate_video tools.

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?

Provides mode-specific guidance: pass voice for saved voices, reference_audio_url(s) for instant clip matching, image_url for scene voicing, and delivery for sound direction. It also instructs to call load_workflow_playbook before advanced prompts. It does not explicitly exclude alternative tools, but gives strong within-tool context.

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