ElevenLabs

ElevenLabs

MCP server that brings ElevenLabs to Claude Code — text-to-speech, sound effects, music generation, voice cloning, speech-to-speech, transcription, and voice isolation. 8 tools for industry-leading AI audio.

Category
Visit Server

README

ElevenLabs MCP Server

MCP server that brings ElevenLabs to Claude Code — text-to-speech, sound effects, music generation, voice cloning, speech-to-speech, transcription, and voice isolation. 8 tools for industry-leading AI audio. Supports Multilingual v2, v3, Turbo, Flash, and Scribe models.

Quick Start

Step 1: Get Your API Key

  1. Go to elevenlabs.io
  2. Create an account or sign in
  3. Click your profile icon → API Keys
  4. Generate and copy the key (you'll need it in Step 3)

Step 2: Install Prerequisites

Step 3: Install the MCP Server

3.1 Clone the repository

git clone https://github.com/wynandw87/claude-code-elevenlabs-mcp.git
cd claude-code-elevenlabs-mcp

3.2 Install dependencies

macOS / Linux / Windows:

npm install

Note: Dependencies are installed and the server is built automatically in one step.

3.3 Register with Claude Code

Choose your install scope:

Scope Flag Who can use it
User (recommended) -s user You, in any project
Project -s project Anyone who clones this repo
Local -s local Only in current directory

Replace YOUR_API_KEY with your actual ElevenLabs API key, and use the full path to dist/index.js.

Tip: To get the full path, run this from the cloned directory:

  • macOS/Linux: echo "$(pwd)/dist/index.js"
  • Windows: echo %cd%\dist\index.js

macOS / Linux:

claude mcp add -s user ElevenLabs -e ELEVENLABS_API_KEY=YOUR_API_KEY -- node /full/path/to/dist/index.js

Windows (CMD):

claude mcp add -s user ElevenLabs -e "ELEVENLABS_API_KEY=YOUR_API_KEY" -- node "C:\full\path\to\dist\index.js"

Windows (PowerShell):

claude mcp add -s user ElevenLabs -e "ELEVENLABS_API_KEY=YOUR_API_KEY" '--' node "C:\full\path\to\dist\index.js"

Alternative: Use Setup Scripts

The setup scripts handle dependency installation, building, and registration automatically.

macOS / Linux:

chmod +x setup.sh
./setup.sh YOUR_API_KEY

Windows (PowerShell):

.\setup.ps1 -ApiKey YOUR_API_KEY

Or use the npm helper (if API key is set in environment):

export ELEVENLABS_API_KEY=YOUR_API_KEY
npm run install:claude

Step 4: Restart Claude Code

Close and reopen Claude Code for the changes to take effect.

Step 5: Verify Installation

claude mcp list

You should see ElevenLabs listed with a Connected status.


Features

Speech Generation

  • Text-to-Speech (text_to_speech) - Convert text to natural speech with voice/emotion controls and 29+ languages
  • Speech-to-Speech (speech_to_speech) - Transform audio to use a different voice while preserving emotion and cadence

Sound & Music

  • Sound Effects (sound_effects) - Generate sound effects from text descriptions
  • Music Generation (generate_music) - Generate studio-grade music from text descriptions

Voice Management

  • List Voices (list_voices) - Browse and search available voices with filtering
  • Clone Voice (clone_voice) - Create instant voice clones from audio samples

Audio Processing

  • Transcription (transcribe) - Speech-to-text with speaker diarization (90+ languages)
  • Voice Isolation (voice_isolation) - Isolate vocals from background noise

Usage

Once installed, use trigger phrases to invoke ElevenLabs:

Trigger Tool Example
elevenlabs tts, elevenlabs speak Text-to-Speech "elevenlabs speak: Hello, welcome to the demo"
elevenlabs sfx, elevenlabs sound effect Sound Effects "elevenlabs sfx: thunder rumbling in the distance"
elevenlabs music, elevenlabs compose Generate Music "elevenlabs music: lo-fi hip hop with soft piano"
elevenlabs voices, elevenlabs list voices List Voices "elevenlabs list voices matching female"
elevenlabs clone, elevenlabs clone voice Clone Voice "elevenlabs clone voice from recording.wav"
elevenlabs voice change, elevenlabs sts Speech-to-Speech "elevenlabs voice change audio.mp3 to Adam"
elevenlabs transcribe, elevenlabs stt Transcribe "elevenlabs transcribe meeting.mp3"
elevenlabs isolate, elevenlabs clean audio Voice Isolation "elevenlabs isolate vocals from noisy-recording.mp3"

Or ask naturally:

  • "Use ElevenLabs to convert this text to speech with the Rachel voice"
  • "Generate a sound effect of a spaceship engine starting up"
  • "Create some lo-fi background music with ElevenLabs"
  • "Show me the available ElevenLabs voices"
  • "Clone a voice from my recording.wav file"
  • "ElevenLabs transcribe this audio file"
  • "Clean up the background noise in this recording with ElevenLabs"

Tool Reference

text_to_speech

Convert text to natural speech. ElevenLabs' flagship feature with industry-leading quality.

Parameters:

  • text (string, required) - The text to convert to speech
  • voice (string, optional) - Voice name (e.g., "Rachel", "Adam") or voice ID (default: Rachel)
  • model (string, optional) - TTS model (default: eleven_multilingual_v2)
  • stability (number, optional) - Voice stability 0.0-1.0 (lower = more expressive)
  • similarity_boost (number, optional) - Voice clarity 0.0-1.0 (higher = closer to original)
  • style (number, optional) - Style exaggeration 0.0-1.0
  • speed (number, optional) - Speech speed 0.25-4.0 (default: 1.0)
  • output_format (string, optional) - Audio format (default: mp3_44100_128)
  • save_path (string, optional) - File path to save the audio

sound_effects

Generate sound effects from text descriptions.

Parameters:

  • text (string, required) - Description of the sound effect (e.g., "wooden door creaking open slowly")
  • duration_seconds (number, optional) - Duration 0.5-30 seconds (auto-determined if omitted)
  • prompt_influence (number, optional) - How closely to follow the prompt 0.0-1.0 (default: 0.3)
  • save_path (string, optional) - File path to save the audio

generate_music

Generate studio-grade music from text descriptions.

Parameters:

  • text (string, required) - Description of the music (e.g., "epic orchestral score for a movie trailer")
  • duration_seconds (number, optional) - Duration 0.5-30 seconds (auto-determined if omitted)
  • save_path (string, optional) - File path to save the audio

list_voices

Browse and search available ElevenLabs voices.

Parameters:

  • search (string, optional) - Search query to filter voices by name, description, or labels
  • category (string, optional) - "premade", "cloned", "generated", "professional"
  • page_size (integer, optional) - Number of voices to return (default: 20, max: 100)

clone_voice

Create an instant voice clone from audio samples. Requires 1-2 minutes of clear audio.

Parameters:

  • name (string, required) - Name for the cloned voice
  • files (string[], required) - Array of absolute paths to audio files
  • description (string, optional) - Description of the voice
  • remove_background_noise (boolean, optional) - Apply audio isolation to samples before cloning

speech_to_speech

Transform audio to use a different voice while preserving emotion and cadence.

Parameters:

  • audio_path (string, required) - Absolute path to the source audio file
  • voice (string, required) - Target voice name or ID
  • model (string, optional) - STS model (default: eleven_english_sts_v2)
  • stability (number, optional) - Voice stability 0.0-1.0
  • similarity_boost (number, optional) - Voice clarity 0.0-1.0
  • remove_background_noise (boolean, optional) - Remove background noise from source
  • save_path (string, optional) - File path to save the audio

transcribe

Transcribe audio to text with optional speaker diarization. Supports 90+ languages.

Parameters:

  • audio_path (string, required) - Absolute path to the audio file
  • model (string, optional) - "scribe_v2" (default, 90+ languages), "scribe_v1"
  • language_code (string, optional) - ISO 639-1 language code (e.g., "en", "es", "fr")
  • diarize (boolean, optional) - Identify which speaker is talking
  • num_speakers (integer, optional) - Expected number of speakers (up to 32)

voice_isolation

Isolate vocals from background noise in audio files.

Parameters:

  • audio_path (string, required) - Absolute path to the audio file to process
  • save_path (string, optional) - File path to save the isolated audio

Supported Models

Text-to-Speech Models

Model Languages Latency Best For
eleven_multilingual_v2 29 Balanced Default — general use, voiceovers
eleven_v3 70+ ~500ms Latest quality, dramatic delivery
eleven_turbo_v2_5 32 ~250ms Fast, balanced quality
eleven_flash_v2_5 32 ~75ms Ultra-fast, real-time apps

Speech-to-Speech Models

Model Best For
eleven_english_sts_v2 Default — English voice conversion

Transcription Models

Model Languages Best For
scribe_v2 90+ Default — high accuracy with diarization
scribe_v1 Multiple Previous generation

Sound Effects / Music Models

Model Best For
eleven_text_to_sound_v2 Sound effect generation
eleven_music Music generation

Configuration

Environment Variables

Variable Required Default Description
ELEVENLABS_API_KEY Yes ElevenLabs API key
ELEVENLABS_DEFAULT_VOICE No Rachel Default voice name for TTS
ELEVENLABS_TIMEOUT No 120000 API timeout in ms
ELEVENLABS_OUTPUT_DIR No ./generated-media Directory for auto-saved audio

How It Works

This MCP server uses the official @elevenlabs/elevenlabs-js SDK to communicate with ElevenLabs models. It connects to Claude Code via stdio transport.

Voice name resolution: You can use voice names (e.g., "Rachel", "Adam") instead of voice IDs. The server resolves names automatically via a cached voice lookup.

Tools provided:

Tool API Endpoint Default Model
text_to_speech Text-to-Speech eleven_multilingual_v2
sound_effects Text-to-Sound-Effects eleven_text_to_sound_v2
generate_music Text-to-Sound-Effects eleven_music
list_voices Voices Search
clone_voice Instant Voice Cloning
speech_to_speech Speech-to-Speech eleven_english_sts_v2
transcribe Speech-to-Text scribe_v2
voice_isolation Audio Isolation

Troubleshooting

Fix API Key

If you entered the wrong API key, remove and reinstall:

claude mcp remove ElevenLabs

Then reinstall using the command from Step 3.3 above (use the same scope you originally installed with).

MCP Server Not Showing Up

Check if the server is installed:

claude mcp list

If not listed, follow Step 3 to install it.

Server Won't Start

  1. Verify your API key is valid at elevenlabs.io → Profile → API Keys

  2. Check Node.js version (needs 18+):

    node --version
    
  3. Ensure the server was built — if dist/index.js is missing, run npm install again

Connection Errors

  1. Check that dist/index.js exists — if not, run npm install
  2. Verify the path is absolute in your claude mcp add command
  3. Restart Claude Code after any configuration changes

Timeout Errors

  • Audio generation can be slower than text — the default timeout is 120 seconds
  • Increase ELEVENLABS_TIMEOUT environment variable for slow connections

View Current Configuration

claude mcp list

Contributing

Pull requests welcome! Please keep it simple and beginner-friendly.

License

MIT


Made for the Claude Code community

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured