Skip to main content
Glama

Manage Voices

voice
Destructive

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

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.2/5.0
Behavior5/5

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

With annotations covering only destructiveHint/openWorld/readOnly, the description adds substantial behavioral context the annotations cannot: cost and slot consumption ('Charged, uses one of the account's training slots'), async latency ('may take a minute — returns ready true/false; list again until ready'), and an instant/free path for reference voices. This is exactly the extra detail an agent needs beyond the safety hints.

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 critical routing rule (resolve by name, never ask for an id) is front-loaded in the first sentence, and each subsequent clause is action-scoped with labeled keys ('action="list"', 'action="create"'). It is a dense single paragraph, but almost every clause carries distinct information, so little is wasted.

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 five-action, nine-parameter tool with no output schema, the description covers each action's inputs, the cost/timing model, and return-readiness behavior for list and clone. It stops short of describing what create, rename, and delete return, but overall is complete enough for correct invocation.

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 baseline is 3, but the description earns more: it explains that voice_id accepts either the id or the current name for delete/rename, ties format to the base64 path, and pairs audio_url vs audio_base64 as alternatives. It clarifies the semantic intent of each parameter rather than restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource for the whole tool ('one tool for the whole voice library') and enumerates each action's verb and target (list saved voices, create reference voice, train a clone, rename, delete). It is specific about what each action does. However, despite many overlapping siblings (list_voices, clone_voice, delete_voice, change_voice, design_voice), it never names an alternative to route against, so the agent is not told why to pick this tool over those.

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?

Strong operational guidance: users speak plain language, resolve voices by NAME yourself, call action='list' first if unsure, never ask the user for an id. It also draws a clear when-to-use line between action='create' ('free, ready instantly') and action='clone' ('TRAINS a real clone... Charged, uses one of the account's training slots'). It lacks explicit when-not-to-use guidance relative to the sibling voice tools.

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