ElevenLabs MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables text-to-speech audio generation using ElevenLabs' API, supporting multiple voices, script parts with different speakers, audio file management, and voice history tracking.

  • Provides persistent storage for voice generation history, allowing retrieval and management of past text-to-speech jobs.

  • Includes a sample SvelteKit MCP Client for text-to-speech conversion, multi-part script management, and audio file playback and downloads.

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

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

  1. Clone this repository
  2. Install dependencies:
    uv venv
  3. Copy .env.example to .env and 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

  1. Navigate to the web UI directory:
    cd clients/web-ui
  2. Install dependencies:
    pnpm install
  3. Copy .env.example to .env and configure as needed
  4. Run the web UI:
    pnpm dev
  5. Open http://localhost:5174 in your browser

Available Tools

  • generate_audio_simple: Generate audio from plain text using default voice settings
  • generate_audio_script: Generate audio from a structured script with multiple voices and actors
  • delete_job: Delete a job by its ID
  • get_audio_file: Get the audio file by its ID
  • list_voices: List all available voices
  • get_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 ID
  • voiceover://voices: List all available voices

License

This project is licensed under the MIT License - see the LICENSE file for details.

ID: leukzvus7o