Data as of

ElevenLabs MCP for Windsurf: Setup & Config

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

What you can do with ElevenLabs in Windsurf

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

  • Convert written material into spoken audio from an assistant conversation.
  • Deliver generated audio to an MCP client that cannot read the server's local files.

Before you start: ElevenLabs in Windsurf

  • 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 Windsurf configuration

  1. Choose Windsurf configuration scope

    For ElevenLabs MCP, open macOS/Linux: ~/.codeium/windsurf/mcp_config.json Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json. Merge into mcpServers; remote endpoints use serverUrl.

  2. Add ElevenLabs MCP to Windsurf

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

  3. Check ElevenLabs MCP in Windsurf

    ElevenLabs MCP: Refresh MCP in Windsurf settings and inspect Cascade’s tools.

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

JSON
{
  "mcpServers": {
    "elevenlabs-mcp": {
      "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 Windsurf

  • Check uvx elevenlabs-mcp (from uv, for Python tools) on the machine running Windsurf's MCP integration for ElevenLabs MCP; refresh MCP and inspect Cascade's tools.
  • Check ELEVENLABS_API_KEY, ELEVENLABS_API_RESIDENCY, ELEVENLABS_MCP_BASE_PATH, ELEVENLABS_MCP_OUTPUT_MODE for ElevenLabs MCP; do not bypass a Windsurf permission error with a broad administrator token.
  • ElevenLabs MCP uses stdio here: Windsurf 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 Windsurf troubleshooting lives in the /clients/windsurf guide.

ElevenLabs MCP — details. Windsurf guide

Frequently asked questions

Windsurf reads ElevenLabs MCP under mcpServers in ~/.codeium/windsurf/mcp_config.json on macOS/Linux; Windows uses %USERPROFILE%\.codeium\windsurf\mcp_config.json.

Windsurf's elevenlabs-mcp example uses stdio.

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

Windsurf'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.

Binary content is encoded as base64 in MCP resources. Text content uses UTF-8, and combined delivery also preserves disk output.

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