Generate Speech from Text with ElevenLabs
ElevenLabs MCP Server integrates with the ElevenLabs text-to-speech API, enabling voice generation from text and script management.
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
What it does
This Model Context Protocol (MCP) server integrates with the ElevenLabs text-to-speech API, enabling clients to generate audio from text. It supports managing multiple voices and script parts, with a persistent history stored in an SQLite database. A sample SvelteKit MCP Client is provided for managing voice generation tasks.
How it connects
Use this server when you need to programmatically generate speech from text using ElevenLabs' voice capabilities. It's ideal for applications requiring text-to-speech for narration, character voices, or audio content creation. Do not use this server if your application does not require ElevenLabs' specific voice synthesis features.
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
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.