ElevenLabs

官方

官方 ElevenLabs MCP 服务器

你可以用 ElevenLabs MCP 做什么?

  • 文本转语音生成 — 通过 text_to_speech 根据文本生成自然语音,并提供声音、风格和语言选项。
  • 语音克隆与管理 — 从样本创建自定义语音克隆,列出可用声音,并通过 get_voicescreate_voice 管理你的语音库。
  • 语音转文本转录 — 使用 speech_to_text 将音频文件转换为文本,并支持说话人分离以识别不同说话者。
  • 音频隔离与转换 — 使用 isolate_audiospeech_to_speech 将人声与背景噪音分离,或将语音转换为听起来像不同角色的声音。
  • 音效与音乐生成 — 使用 sound_effectstext_to_sound_effects 根据文本描述生成自定义音景或背景音乐。

文档

export

Discord Community Twitter PyPI Tests

官方的 ElevenLabs 模型上下文协议(Model Context Protocol,MCP)服务器,支持与强大的文本转语音和音频处理 API 进行交互。该服务器允许 MCP 客户端(如 Claude DesktopCursorWindsurfOpenAI Agents 等)生成语音、克隆声音、转录音频等。

使用 Claude Desktop 快速入门

  1. ElevenLabs 获取你的 API 密钥。有每月 10k 积分的免费套餐。
  2. 安装 uv(Python 包管理器),使用 curl -LsSf https://astral.sh/uv/install.sh | sh 安装,或参阅 uv 仓库 了解其他安装方法。
  3. 前往 Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json,包含以下内容:
{
  "mcpServers": {
    "ElevenLabs": {
      "command": "uvx",
      "args": ["elevenlabs-mcp"],
      "env": {
        "ELEVENLABS_API_KEY": "<insert-your-api-key-here>"
      }
    }
  }
}

如果你使用的是 Windows,则需要先在 Claude Desktop 中启用"开发者模式"才能使用 MCP 服务器。点击左上角汉堡菜单中的"帮助",然后选择"启用开发者模式"。

其他 MCP 客户端

对于 Cursor 和 Windsurf 等其他客户端,请运行:

  1. pip install elevenlabs-mcp
  2. python -m elevenlabs_mcp --api-key={{PUT_YOUR_API_KEY_HERE}} --print 以获取配置。将其粘贴到你的 MCP 客户端指定的相应配置目录中。

就这样。你的 MCP 客户端现在可以通过这些工具与 ElevenLabs 交互:

使用示例

⚠️ 警告:使用这些工具需要 ElevenLabs 积分。

试试让 Claude 执行以下操作:

  • "创建一个说话风格像黑色电影侦探、并能回答经典电影问题的 AI 代理"
  • "为一个睿智的远古巨龙角色生成三种声音变体,然后我会选择最喜欢的声音加入我的声音库"
  • "将这段我的录音转换成中世纪骑士的声音"
  • "创建一片茂密丛林中雷暴天气的音景,动物们对天气做出反应"
  • "将这段语音转换为文本,识别不同的说话人,然后为每个人使用独特的声音将其转换回来"

可选功能

文件输出配置

你可以使用 claude_desktop_config.json 中的以下环境变量来配置 MCP 服务器如何处理文件输出:

  • ELEVENLABS_MCP_BASE_PATH:指定文件操作的基础路径(默认值:~/Desktop)。该目录同时也是输入文件的安全边界:任何传递给读取本地文件的工具(例如 speech_to_textisolate_audiospeech_to_speechvideo_to_musicupload_music_for_inpainting)的路径都必须解析到该目录内,无论是绝对路径还是相对路径。该目录之外的路径——即使是绝对路径且之前被接受过——都会被拒绝。请将其设置为包含你需要读取或写入的所有内容的目录。
  • ELEVENLABS_MCP_OUTPUT_MODE:控制生成文件的返回方式(默认值:files

输出模式

ELEVENLABS_MCP_OUTPUT_MODE 环境变量支持三种模式:

  1. files(默认):将文件保存到磁盘并返回文件路径

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "files"
    }
    
  2. resources:将文件作为 MCP 资源返回;二进制数据以 base64 编码,文本以 UTF-8 文本返回

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "resources"
    }
    
  3. both:将文件保存到磁盘并同时作为 MCP 资源返回

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "both"
    }
    

资源模式的优势:

  • 文件以 base64 编码数据的形式直接包含在 MCP 响应中返回
  • 无需磁盘 I/O——适用于容器化或无服务器环境
  • MCP 客户端无需文件系统访问权限即可立即获取文件内容
  • both 模式下,可以稍后使用 elevenlabs://filename URI 模式获取资源

使用场景:

  • files:传统的基于文件的工作流、本地开发
  • resources:云环境、无文件系统访问权限的 MCP 客户端
  • both:最大灵活性、缓存和资源共享场景

数据驻留密钥

你可以通过 ELEVENLABS_API_RESIDENCY 环境变量指定数据驻留区域。默认值为 "us"

注意: 数据驻留是仅限企业版的功能。有关更多详细信息,请参阅文档

贡献

如果你想贡献代码或从源码运行:

  1. 克隆仓库:
git clone https://github.com/elevenlabs/elevenlabs-mcp
cd elevenlabs-mcp
  1. 创建虚拟环境并使用 uv 安装依赖:
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
  1. .env.example 复制到 .env,然后添加你的 ElevenLabs API 密钥:
cp .env.example .env
# Edit .env and add your API key
  1. 运行测试以确保一切正常:
./scripts/test.sh
# Or with options
./scripts/test.sh --verbose --fail-fast
  1. 在 Claude Desktop 中安装服务器:mcp install elevenlabs_mcp/server.py

  2. 使用 MCP Inspector 进行本地调试和测试:mcp dev elevenlabs_mcp/server.py

故障排查

与 Claude Desktop 一起运行时的日志可在以下位置找到:

  • Windows%APPDATA%\Claude\logs\mcp-server-elevenlabs.log
  • macOS~/Library/Logs/Claude/mcp-server-elevenlabs.log

使用某些工具时出现超时

某些 ElevenLabs API 操作(如声音设计和音频隔离)可能需要较长时间才能完成。在开发模式下使用 MCP inspector 时,即使工具已完成预期任务,你仍可能会遇到超时错误。

在使用 Claude 这样的客户端时,这不应发生。

MCP ElevenLabs: spawn uvx ENOENT

如果你遇到错误 "MCP ElevenLabs: spawn uvx ENOENT",请在终端中运行以下命令以确认其绝对路径:

which uvx

获取绝对路径后(例如 /usr/local/bin/uvx),更新你的配置以使用该路径(例如 "command": "/usr/local/bin/uvx")。这可以确保引用正确的可执行文件。