Skip to main content
Glama

List the voices this account can speak with

list_voices
Read-onlyIdempotent

The WHOLE voice catalogue: every voice aicut can speak with, across ElevenLabs (platform stock AND this account's cloned and custom voices) and OpenAI. Free, instant. EVERY VOICE ID COMES FROM HERE: generate_audio's voice, generate_fake_text_video's voice_left / voice_right and generate_image_story's voice. Never invent one (it fails AFTER the job exists and is charged); list_models publishes none. IT IS PAGED: an answer is at most limit entries (default 20, max 100). READ total_matching AND has_more BEFORE you say anything to the user: if has_more is true you saw a slice, and 'there is no X voice' on that basis is wrong. Continue with cursor = next_cursor and the SAME provider / usable_for. NARROW WITH usable_for ('audio' for generate_audio, 'fake_text', 'image_story'): every voice it returns is one that tool accepts. Only 'audio' narrows ElevenLabs, and barely (generate_audio goes through a reseller and cannot speak voices CLONED inside this workspace; the two video doors reach the whole library), so send limit: 100 and check has_more. Read usable_for on each entry rather than inferring it from category. providers rides on every answer (per provider: voice_count, the doors it serves; a null count means that list is temporarily unreadable). EACH ENTRY: id (what you send), provider, name, description (ElevenLabs only), category (premade stock, generated cloned in this workspace, professional a Voice-Library voice: how you find the voice a user calls THEIRS; null for OpenAI), labels (gender, age, accent, use_case), preview_url and usable_for. Match the brief against labels and description, not the name. preview_url is an mp3 you cannot hear: propose 2-3 voices, each with its link (null for OpenAI), and let the user pick BEFORE any paid call; never generate one line in several voices to compare unless they ask and are told the total. Never dump the list or present a page as the catalogue.

Input Schema

NameRequiredDescriptionDefault
limitNo1-100, default 20 (a shortlist). The full library never fits in one result, whatever you pass.
cursorNoThe previous `next_cursor`. Send the SAME `provider` / `usable_for` with it: different filters are a 400, not a restart.
providerNoRestrict to one provider: `elevenlabs` (the live library, and the only provider `generate_audio` can use) or `openai` (8 voices). Omit for both.
usable_forNoThe door you are about to call: `audio`, `fake_text` or `image_story`. Every voice returned is one that tool accepts. `openai` with `audio` is a 400 naming the provider that does serve it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive behavior beyond that: paging contracts (`total_matching`, `has_more`, `next_cursor`, same-filter continuation), the consequence of inventing an ID ("fails AFTER the job exists and is charged"), and the reseller limitation on `generate_audio`. That is meaningful disclosure the annotations cannot carry.

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-loads the core claim and the ID-provenance warning well, and the per-entry field breakdown earns its space since there is no output schema. However it duplicates schema-documented facts (limit default 20/max 100, same-filter cursor rule) and leans on dense all-caps emphasis that makes the 300+ word block harder to parse than necessary.

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 no output schema, the description fully covers the return shape (`id`, `provider`, `name`, `description`, `category`, `labels`, `preview_url`, `usable_for`, plus the `providers` envelope with null-count semantics). It also covers paging edges and filter interactions — nothing an agent needs to invoke and interpret 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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: that only `audio` narrows ElevenLabs "and barely," why `limit: 100` is advised there, and that filters must match across cursor pages. It reinforces rather than replaces the schema, which is exactly the right division of labor.

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+resource+scope ("The WHOLE voice catalogue ... across ElevenLabs ... and OpenAI") and explicitly disambiguates from the sibling `list_models` ("`list_models` publishes none"). An agent knows exactly what this returns and what it does not.

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?

Names the consuming tools and their parameter paths (`generate_audio`'s `voice`, `voice_left`/`voice_right`, `image_story`'s `voice`), states when to narrow with `usable_for`, and warns against the wrong alternative (`list_models`). It even prescribes a workflow (propose 2-3 voices with links, let the user pick before paid calls) with an explicit exclusion for multi-voice comparisons.

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.

Directories

Listed in ChatGPT · aicut

Last observed