Generate Speech from Text with ElevenLabs
Generates ElevenLabs text-to-speech audio - simple or multi-voice scripts - with persistent SQLite job history and a sample web UI.
Why it matters
Integrate ElevenLabs text-to-speech capabilities into your applications. Generate high-quality audio from scripts or simple text, manage multiple voices, and store voiceover history.
Outcomes
What it gets done
Generate audio from plain text.
Create audio from multi-voice scripts.
Manage and retrieve voiceover history.
List available voices for generation.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-elevenlabs | bash Capabilities
Tools your agent gets
Generate audio from plain text using default voice settings
Generate audio from a structured script with multiple voices and actors
Delete a job by its ID
Get an audio file by its ID
List all available voices
Get voiceover job history, optionally filtered by job ID
Overview
ElevenLabs MCP Server
This MCP server generates ElevenLabs text-to-speech audio, either simple narration or multi-voice scripts, with a persistent SQLite job history and an optional sample web UI for browsing and playback. Use it to generate spoken audio from text or scripts via an AI assistant, with history tracking. Requires an ElevenLabs API key and configured voice/model.
What it does
ElevenLabs MCP Server integrates the ElevenLabs text-to-speech API into MCP clients, generating audio from plain text or from structured multi-part scripts with multiple voices/actors. It stores voice generation history persistently in a SQLite database, and ships with a sample SvelteKit web client for simple text-to-speech conversion, multi-part script management, history tracking/playback, and audio file downloads.
When to use - and when NOT to
Use this when you want an AI assistant to generate spoken audio - a simple narration, or a multi-character script with different voices per part - and keep a queryable history of past voiceover jobs. It requires an ElevenLabs API key and a configured default voice/model; voice quality and cost are governed by your ElevenLabs plan and the model chosen (e.g. eleven_flash_v2). The sample web UI is optional tooling for browsing history and playing back audio - the MCP server itself works with any MCP client, not just that UI.
Capabilities
generate_audio_simple(text)- generate audio from plain text with default voice settingsgenerate_audio_script(...)- generate audio from a structured, multi-voice scriptlist_voices- list all available ElevenLabs voicesget_voiceover_history(job_id?)- retrieve voiceover job history, optionally for a specific jobget_audio_file(id)- retrieve a generated audio file by IDdelete_job(id)- delete a job by ID
Resources: voiceover://history/{job_id}, voiceover://voices.
How to install
Via Smithery:
npx -y @smithery/cli install elevenlabs-mcp-server --client claude
Or via uvx:
{
"mcpServers": {
"elevenlabs": {
"command": "uvx",
"args": ["elevenlabs-mcp-server"],
"env": {
"ELEVENLABS_API_KEY": "your-api-key",
"ELEVENLABS_VOICE_ID": "your-voice-id",
"ELEVENLABS_MODEL_ID": "eleven_flash_v2",
"ELEVENLABS_STABILITY": "0.5",
"ELEVENLABS_SIMILARITY_BOOST": "0.75",
"ELEVENLABS_STYLE": "0.1",
"ELEVENLABS_OUTPUT_DIR": "output"
}
}
}
}
For the optional sample web UI: cd clients/web-ui && pnpm install && pnpm dev, then open http://localhost:5174.
Who it's for
Developers building voice-generation workflows - narration, multi-character scripts, audiobook-style content - who want ElevenLabs text-to-speech callable from an AI assistant with persistent job history. Licensed MIT.
Source README
ElevenLabs MCP Server
A Model Context Protocol (MCP) server that integrates with ElevenLabs text-to-speech API, featuring both a server component and a sample web-based MCP Client (SvelteKit) for managing voice generation tasks.
Features
- Generate audio from text using ElevenLabs API
- Support for multiple voices and script parts
- SQLite database for persistent history storage
- Sample SvelteKit MCP Client for:
- Simple text-to-speech conversion
- Multi-part script management
- Voice history tracking and playback
- Audio file downloads
Installation
Installing via Smithery
To install ElevenLabs MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install elevenlabs-mcp-server --client claude
Using uvx (recommended)
When using uvx, no specific installation is needed.
Add the following configuration to your MCP settings file (e.g., cline_mcp_settings.json for Claude Desktop):
{
"mcpServers": {
"elevenlabs": {
"command": "uvx",
"args": ["elevenlabs-mcp-server"],
"env": {
"ELEVENLABS_API_KEY": "your-api-key",
"ELEVENLABS_VOICE_ID": "your-voice-id",
"ELEVENLABS_MODEL_ID": "eleven_flash_v2",
"ELEVENLABS_STABILITY": "0.5",
"ELEVENLABS_SIMILARITY_BOOST": "0.75",
"ELEVENLABS_STYLE": "0.1",
"ELEVENLABS_OUTPUT_DIR": "output"
}
}
}
}
Development Installation
- Clone this repository
- Install dependencies:
uv venv - Copy
.env.exampleto.envand fill in your ElevenLabs credentials
{
"mcpServers": {
"elevenlabs": {
"command": "uv",
"args": [
"--directory",
"path/to/elevenlabs-mcp-server",
"run",
"elevenlabs-mcp-server"
],
"env": {
"ELEVENLABS_API_KEY": "your-api-key",
"ELEVENLABS_VOICE_ID": "your-voice-id",
"ELEVENLABS_MODEL_ID": "eleven_flash_v2",
"ELEVENLABS_STABILITY": "0.5",
"ELEVENLABS_SIMILARITY_BOOST": "0.75",
"ELEVENLABS_STYLE": "0.1",
"ELEVENLABS_OUTPUT_DIR": "output"
}
}
}
}
Using the Sample SvelteKit MCP Client
- Navigate to the web UI directory:
cd clients/web-ui - Install dependencies:
pnpm install - Copy
.env.exampleto.envand configure as needed - Run the web UI:
pnpm dev - Open http://localhost:5174 in your browser
Available Tools
generate_audio_simple: Generate audio from plain text using default voice settingsgenerate_audio_script: Generate audio from a structured script with multiple voices and actorsdelete_job: Delete a job by its IDget_audio_file: Get the audio file by its IDlist_voices: List all available voicesget_voiceover_history: Get voiceover job history. Optionally specify a job ID for a specific job.
Available Resources
voiceover://history/{job_id}: Get the audio file by its IDvoiceover://voices: List all available voices
FAQ
Common questions
Discussion
Questions & comments ยท 0
Sign In Sign in to leave a comment.