Skip to main content
Glama

Manage Voices

voice

Your saved voices — one tool for the whole voice library. Users speak plain language and never know ids: resolve every voice by NAME yourself (call action "list" first if unsure) and never ask the user for an id. action="list" returns every saved voice with voice_id, name, kind and ready — kind "reference" is an instant voice match saved from a clip and kind "clone" is a trained voice (both speak through generate_audio: pass the NAME as its voice param, and load_workflow_playbook playbook/audio-prompting says how to direct the delivery). action="create" saves a NEW reference voice from a clip: voice_name plus audio_url (e.g. the url upload_media returned) or audio_base64 (+ format) — free, ready instantly. action="clone" TRAINS a real clone (the closest match to the real person): voice_name plus audio_sample_url or audio_base64 (+ format), a clean 10-15 second clip of one person talking, optional language. Charged, uses one of the account's training slots, may take a minute — returns ready true/false; list again until ready. action="rename" renames a saved voice (voice_id takes the id OR the current name, new_name is the new name). action="delete" removes a voice by voice_id or name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesWhich operation to run.
formatNocreate/clone: clip format when sending audio_base64. Default wav.
languageNoclone: language of the sample, e.g. en, es, ja. Default en.
new_nameNorename: the new name for the voice.
voice_idNodelete/rename: the voice id OR its name — names are resolved for you.
audio_urlNocreate: URL of a 10-30 second clip of the voice — e.g. the url returned by upload_media.
voice_nameNocreate/clone: what to call the voice (unique per account).
audio_base64Nocreate/clone: the clip as base64 when there is no URL.
audio_sample_urlNoclone: URL of a clean 10-15 second clip of one person talking (reachable).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / audio_base64 / description
      Previous value: -"create: the clip as base64 when there is no URL."New value: +"create/clone: the clip as base64 when there is no URL."
    • changedInput schema / properties / audio_sample_url / description
      Previous value: -"clone: a 10-30 second voice sample URL (reachable)."New value: +"clone: URL of a clean 10-15 second clip of one person talking (reachable)."
    • changedInput schema / properties / format / description
      Previous value: -"create: clip format when sending audio_base64. Default wav."New value: +"create/clone: clip format when sending audio_base64. Default wav."
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "clone: language of the sample, e.g. en, es, ja. Default en.",
      +  "type": "string"
      +}
  2. Changed7 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "clone",
      -  "list",
      -  "delete"
      -]New value: +[
      +  "clone",
      +  "list",
      +  "delete",
      +  "create",
      +  "rename"
      +]
    • addedInput schema / properties / audio_base64
      Added value: +{
      +  "description": "create: the clip as base64 when there is no URL.",
      +  "type": "string"
      +}
    • addedInput schema / properties / audio_url
      Added value: +{
      +  "description": "create: URL of a 10-30 second clip of the voice — e.g. the url returned by upload_media.",
      +  "type": "string"
      +}
    • addedInput schema / properties / format
      Added value: +{
      +  "description": "create: clip format when sending audio_base64. Default wav.",
      +  "enum": [
      +    "wav",
      +    "mp3",
      +    "ogg",
      +    "m4a",
      +    "aac"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / new_name
      Added value: +{
      +  "description": "rename: the new name for the voice.",
      +  "type": "string"
      +}
    • changedInput schema / properties / voice_id / description
      Previous value: -"delete: the voice_id to remove."New value: +"delete/rename: the voice id OR its name — names are resolved for you."
    • changedInput schema / properties / voice_name / description
      Previous value: -"clone: a name for the voice (unique per account)."New value: +"create/clone: what to call the voice (unique per account)."
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With only readOnlyHint=false in annotations, the description carries the full behavioral burden and does so thoroughly: clone is Charged, uses a training slot, may take a minute, and returns ready true/false; list returns voice_id, name, kind, and ready; and voice_id can be resolved by name. It also explains that both voice kinds are ultimately spoken through generate_audio, which is non-obvious and valuable.

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 description is long but genuinely dense and organized by action, with the core 'resolve by name yourself' rule front-loaded. Every action gets its own clauses with prerequisites and side effects, so the length is mostly justified; tighter punctuation and paragraphing would make it a perfect 5.

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 9-parameter tool with no output schema and five distinct operations, the description is nearly complete: it covers input alternatives, follow-up steps, charging, readiness, and even partial return shapes for list and clone. An agent has enough context to select and invoke the right action without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds operational meaning the schema cannot: voice_id accepts either the current id or the name, create requires either audio_url or audio_base64, clone needs a clean 10-15 second single-speaker clip, and voice names are unique per account. This directly helps an agent construct valid calls per action.

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?

The description opens with 'Your saved voices — one tool for the whole voice library' and then enumerates five concrete actions: list, create, clone, rename, and delete. It clearly separates voice management from speech generation by noting that the saved voices 'both speak through generate_audio.'

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?

The description gives explicit action-selection guidance: call list first if unsure, never ask users for ids, use create for an instant reference voice versus clone for a trained real-person clone, and it flags when charging and training slots apply. It also routes the agent to generate_audio and load_workflow_playbook for actual spoken delivery, making the context of use clear.

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