Data as of

ElevenLabs MCP for Claude Code: Setup & Config

Claude Code: ElevenLabs MCP brings the vendor's speech and audio services into assistant workflows.

What you can do with ElevenLabs in Claude Code

Use the official audio integration when resource delivery matters as much as generating the audio.

  • Develop character voices by requesting variants before choosing one for a voice library.
  • Deliver generated audio to an MCP client that cannot read the server's local files.

Before you start: ElevenLabs in Claude Code

  • uv installed so the client can invoke uvx
  • ElevenLabs account credential
  • Credits available for ElevenLabs operations
  • Assistant or editor with MCP support

The launch matches the Claude Desktop quickstart. Only the API key is needed from this environment list for the basic example; the other entries describe documented options. Windows setup calls for Claude Desktop Developer Mode. If uvx cannot be found, the troubleshooting section suggests configuring its absolute executable path.

ElevenLabs Claude Code configuration

  1. Choose Claude Code configuration scope

    For ElevenLabs MCP, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add ElevenLabs MCP to Claude Code

    Use the elevenlabs-mcp entry below in mcpServers. Keep ElevenLabs MCP's documented stdio connection fields and your other Claude Code entries.

  3. Check ElevenLabs MCP in Claude Code

    ElevenLabs MCP: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "elevenlabs-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "elevenlabs-mcp"
      ],
      "env": {
        "ELEVENLABS_API_KEY": "<credential from your ElevenLabs account>",
        "ELEVENLABS_MCP_BASE_PATH": "<optional root used when resolving relative file paths>",
        "ELEVENLABS_MCP_OUTPUT_MODE": "<optional delivery mode: files, resources, or both>",
        "ELEVENLABS_API_RESIDENCY": "<optional region for enterprise data residency>"
      }
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'elevenlabs-mcp' '{"type":"stdio","command":"uvx","args":["elevenlabs-mcp"],"env":{"ELEVENLABS_API_KEY":"<credential from your ElevenLabs account>","ELEVENLABS_MCP_BASE_PATH":"<optional root used when resolving relative file paths>","ELEVENLABS_MCP_OUTPUT_MODE":"<optional delivery mode: files, resources, or both>","ELEVENLABS_API_RESIDENCY":"<optional region for enterprise data residency>"}}'

Troubleshooting ElevenLabs in Claude Code

  • If ElevenLabs MCP fails to start, check uvx elevenlabs-mcp (from uv, for Python tools), the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • ElevenLabs MCP: check ELEVENLABS_API_KEY, ELEVENLABS_API_RESIDENCY, ELEVENLABS_MCP_BASE_PATH, ELEVENLABS_MCP_OUTPUT_MODE; keep credentials out of shared .mcp.json.
  • ElevenLabs MCP uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Calling the audio capabilities depends on an API credential and available ElevenLabs credits.
  • Known limitation: Regional data residency is restricted to enterprise use.
  • Known limitation: Some lengthy requests can exceed development-inspector time limits.
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

ElevenLabs MCP — details. Claude Code guide

Frequently asked questions

Register ElevenLabs MCP with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's elevenlabs-mcp example uses stdio.

ElevenLabs MCP's Claude Code configuration invokes uvx elevenlabs-mcp (from uv, for Python tools).

Claude Code's ElevenLabs MCP example references ELEVENLABS_API_KEY, ELEVENLABS_API_RESIDENCY, ELEVENLABS_MCP_BASE_PATH, ELEVENLABS_MCP_OUTPUT_MODE. Check these names if startup or authentication fails; the example alone does not distinguish required from optional values.

The server saves generated files and reports their paths. Relative file operations use the Desktop as their base unless configured otherwise.

Not stated in the README. Only capability summaries and sample requests are supplied, so individual identifiers cannot be listed.