elevenlabs-voice-mcp
Allows text-to-speech using ElevenLabs API, with tools to list voices and convert text to spoken audio.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elevenlabs-voice-mcpsay 'Welcome to the demo' out loud"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
elevenlabs-voice-mcp
A tiny Model Context Protocol server that gives Claude a voice through the ElevenLabs text-to-speech API.
It exposes two tools over stdio so any MCP client (Claude Code, Claude Desktop) can speak its responses out loud or discover voices — operated in plain English:
Tool | What it does |
| List the voices available on your ElevenLabs account (id + name + labels). |
| Turn text into an MP3 with a chosen voice/model, save it, and play it. |
Multilingual by default (eleven_multilingual_v2), so Polish reads correctly too.
Why
I build agentic systems with Claude and MCP. This wires ElevenLabs into that world as a first-class tool: instead of a one-off API script, Claude itself can decide to speak, pick a voice, and read something back — the same MCP pattern I use elsewhere, pointed at ElevenLabs' audio models.
Related MCP server: ElevenLabs MCP Server
Setup
npm install
npm run build # or: npm run dev (runs from source via tsx)
export ELEVENLABS_API_KEY=sk_... # free key: elevenlabs.io → Profile → API Keys
npm startUse it from Claude Code
claude mcp add elevenlabs-voice -- node /absolute/path/to/dist/index.js
# (set ELEVENLABS_API_KEY in your environment first)Or add it to your Claude Desktop config:
{
"mcpServers": {
"elevenlabs-voice": {
"command": "node",
"args": ["/absolute/path/to/elevenlabs-voice-mcp/dist/index.js"],
"env": { "ELEVENLABS_API_KEY": "sk_..." }
}
}
}Then just ask Claude: "list the ElevenLabs voices" or "say 'cześć, świecie' out loud."
Notes
A free ElevenLabs account includes enough monthly characters to try this out.
Playback uses the OS default (
afplayon macOS,aplayon Linux, PowerShell on Windows); generation still works headless if no player is present.Override the default voice/model with
ELEVENLABS_VOICE_ID/ELEVENLABS_MODEL_ID, or per call via the tool arguments.
License
MIT
Available Tools
2 toolslist_voicesA
List the ElevenLabs voices available on the configured account (id + name + labels).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It transparently states that the tool lists voices and returns specific fields, and it clarifies the account scope. No side effects are mentioned, but as a simple list operation, none are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and return value without any wasted words. It achieves maximum clarity in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (no parameters, no output schema), the description is fully sufficient. It states what the tool lists, the account scope, and the returned fields, providing all necessary information for a straightforward list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline of 4 applies. The description adds contextual meaning by mentioning 'configured account', which clarifies the implicit scope of the list operation, but there are no parameter semantics to elaborate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('ElevenLabs voices'), and the scope ('on the configured account'). It also specifies the return data ('id + name + labels'), making it distinct from the sibling tool 'text_to_speech' which is for synthesis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the verb 'List' and the absence of parameters, indicating this is a read-only listing tool. However, there is no explicit guidance on when to use it versus 'text_to_speech', leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_to_speechB
Convert text to speech with ElevenLabs, save it as an MP3, and (optionally) play it.
| Name | Required | Description | Default |
|---|---|---|---|
| play | No | Play the audio after generating it. Defaults to true. | |
| text | Yes | The text to speak. | |
| model_id | No | Model id, e.g. eleven_multilingual_v2 or eleven_turbo_v2_5. | |
| voice_id | No | ElevenLabs voice id. Defaults to the configured voice. | |
| output_path | No | Where to write the MP3. Defaults to the OS temp dir. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It mentions saving as MP3 and optional playback, but fails to disclose network dependency, API key requirements, or side effects like file creation location. This is insufficient for a tool interacting with an external service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and includes only necessary information. It is efficient and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the absence of annotations and output schema means the description should provide more context. It covers the core function well but omits prerequisites like API key setup and potential side effects, leaving gaps for an agent evaluating whether this tool fits the situation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for all five parameters, so the description adds little beyond the schema. It mentions 'save it as an MP3' and 'optionally play' which are already represented in the schema descriptions for output_path and play. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Convert' with resource 'text to speech', and specifies the output as MP3 with optional playback. This strongly distinguishes it from sibling list_voices, which is about listing voices, not generating speech.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus list_voices or any alternatives. The description implies usage for converting text to speech, but does not mention prerequisites, exclusions, or when it might be inappropriate to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
list_voices - First observed
text_to_speech
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one lists available voices, the other converts text to speech. There is no overlap or ambiguity in their functions.
Both tools use snake_case, but the pattern differs: 'list_voices' is a clear verb_noun construction, while 'text_to_speech' is a noun phrase describing the action. This is a minor inconsistency, but both names are intuitive and readable.
With only two tools, the server feels minimal. While both tools are essential for the primary TTS workflow, the scope is narrow and might be insufficient for users expecting voice management capabilities.
The core workflow of listing voices and generating speech is covered. However, missing operations like fetching individual voice details or managing voices create minor gaps that agents could work around by using the list result.
Maintenance
Related MCP Connectors
Manage ElevenLabs voice agents and generate speech, music, sound effects, images, and video.
ElevenLabs in natural language: generate speech in any language, create and manage voices, compose m
The Listenetic MCP server is a remote, cloud-hosted server that enables AI assistants like ChatGPT and Claude to convert articles, documents, websites, and videos into high-quality AI-generated audio. It provides multi-format support for text and binary files, natural-sounding text-to-audio conversion using AI, and specialized processing for SSML, markup, markdown, and various media formats through three core tools: listentic_supported_mimetypes, listentic_add_content_text, and listentic_add_content_binary.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables interaction with ElevenLabs Text-to-Speech and audio processing APIs. Supports speech generation, voice cloning, audio transcription, and sound effect creation through natural language.24MIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive access to ElevenLabs AI audio features including text-to-speech, voice cloning, sound generation, and audio isolation. Enables users to generate high-quality speech, manage voices, transform audio, and access ElevenLabs services through natural language interactions.103 npmMIT
- AlicenseAqualityFmaintenanceEnables text-to-speech conversion using ElevenLabs API with voice management, streaming support, and multiple models.51MIT
- FlicenseAqualityDmaintenanceEnables text-to-speech audio generation using ElevenLabs voices directly from Claude conversations, supporting single and batch conversion, voice listing, and voice ID lookup.5-