Labsco
elevenlabs logo

ElevenLabs

β˜… 1,400

from elevenlabs

The official ElevenLabs MCP server

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedPaid serviceAdvanced setup

Official ElevenLabs Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech and audio processing APIs. This server allows MCP clients like Claude Desktop, Cursor, Windsurf, OpenAI Agents and others to generate speech, clone voices, transcribe audio, and more.

Other MCP clients

For other clients like Cursor and Windsurf, run:

  • pip install elevenlabs-mcp

  • python -m elevenlabs_mcp --api-key={{PUT_YOUR_API_KEY_HERE}} --print to get the configuration. Paste it into appropriate configuration directory specified by your MCP client.

That's it. Your MCP client can now interact with ElevenLabs through these tools:

Optional features

File Output Configuration

You can configure how the MCP server handles file outputs using these environment variables in your claude_desktop_config.json:

  • ELEVENLABS_MCP_BASE_PATH: Specify the base path for file operations with relative paths (default: ~/Desktop)

  • ELEVENLABS_MCP_OUTPUT_MODE: Control how generated files are returned (default: files)

Output Modes

The ELEVENLABS_MCP_OUTPUT_MODE environment variable supports three modes:

files (default): Save files to disk and return file paths

Copy & paste β€” that's it
"env": {
 "ELEVENLABS_API_KEY": "your-api-key",
 "ELEVENLABS_MCP_OUTPUT_MODE": "files"
}

resources: Return files as MCP resources; binary data is base64-encoded, text is returned as UTF-8 text

Copy & paste β€” that's it
"env": {
 "ELEVENLABS_API_KEY": "your-api-key",
 "ELEVENLABS_MCP_OUTPUT_MODE": "resources"
}

both: Save files to disk AND return as MCP resources

Copy & paste β€” that's it
"env": {
 "ELEVENLABS_API_KEY": "your-api-key",
 "ELEVENLABS_MCP_OUTPUT_MODE": "both"
}

Resource Mode Benefits:

  • Files are returned directly in the MCP response as base64-encoded data

  • No disk I/O required - useful for containerized or serverless environments

  • MCP clients can access file content immediately without file system access

  • In both mode, resources can be fetched later using the elevenlabs://filename URI pattern

Use Cases:

  • files: Traditional file-based workflows, local development

  • resources: Cloud environments, MCP clients without file system access

  • both: Maximum flexibility, caching, and resource sharing scenarios

Data residency keys

You can specify the data residency region with the ELEVENLABS_API_RESIDENCY environment variable. Defaults to "us".

Note: Data residency is an enterprise only feature. See the docs for more details.

Contributing

If you want to contribute or run from source:

  • Clone the repository:
Copy & paste β€” that's it
git clone https://github.com/elevenlabs/elevenlabs-mcp
cd elevenlabs-mcp
  • Create a virtual environment and install dependencies using uv:
Copy & paste β€” that's it
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
  • Copy .env.example to .env and add your ElevenLabs API key:
Copy & paste β€” that's it
cp .env.example .env
# Edit .env and add your API key
  • Run the tests to make sure everything is working:
Copy & paste β€” that's it
./scripts/test.sh
# Or with options
./scripts/test.sh --verbose --fail-fast

Install the server in Claude Desktop: mcp install elevenlabs_mcp/server.py

Debug and test locally with MCP Inspector: mcp dev elevenlabs_mcp/server.py