ElevenLabs
官方官方 ElevenLabs MCP 服务器
你可以用 ElevenLabs MCP 做什么?
- 文本转语音生成 — 通过
text_to_speech根据文本生成自然语音,并提供声音、风格和语言选项。 - 语音克隆与管理 — 从样本创建自定义语音克隆,列出可用声音,并通过
get_voices和create_voice管理你的语音库。 - 语音转文本转录 — 使用
speech_to_text将音频文件转换为文本,并支持说话人分离以识别不同说话者。 - 音频隔离与转换 — 使用
isolate_audio和speech_to_speech将人声与背景噪音分离,或将语音转换为听起来像不同角色的声音。 - 音效与音乐生成 — 使用
sound_effects和text_to_sound_effects根据文本描述生成自定义音景或背景音乐。
文档
官方的 ElevenLabs 模型上下文协议(Model Context Protocol,MCP)服务器,支持与强大的文本转语音和音频处理 API 进行交互。该服务器允许 MCP 客户端(如 Claude Desktop、Cursor、Windsurf、OpenAI Agents 等)生成语音、克隆声音、转录音频等。
使用 Claude Desktop 快速入门
- 从 ElevenLabs 获取你的 API 密钥。有每月 10k 积分的免费套餐。
- 安装
uv(Python 包管理器),使用curl -LsSf https://astral.sh/uv/install.sh | sh安装,或参阅uv仓库 了解其他安装方法。 - 前往 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 等其他客户端,请运行:
pip install elevenlabs-mcppython -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_text、isolate_audio、speech_to_speech、video_to_music、upload_music_for_inpainting)的路径都必须解析到该目录内,无论是绝对路径还是相对路径。该目录之外的路径——即使是绝对路径且之前被接受过——都会被拒绝。请将其设置为包含你需要读取或写入的所有内容的目录。ELEVENLABS_MCP_OUTPUT_MODE:控制生成文件的返回方式(默认值:files)
输出模式
ELEVENLABS_MCP_OUTPUT_MODE 环境变量支持三种模式:
-
files(默认):将文件保存到磁盘并返回文件路径"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "files" } -
resources:将文件作为 MCP 资源返回;二进制数据以 base64 编码,文本以 UTF-8 文本返回"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "resources" } -
both:将文件保存到磁盘并同时作为 MCP 资源返回"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "both" }
资源模式的优势:
- 文件以 base64 编码数据的形式直接包含在 MCP 响应中返回
- 无需磁盘 I/O——适用于容器化或无服务器环境
- MCP 客户端无需文件系统访问权限即可立即获取文件内容
- 在
both模式下,可以稍后使用elevenlabs://filenameURI 模式获取资源
使用场景:
files:传统的基于文件的工作流、本地开发resources:云环境、无文件系统访问权限的 MCP 客户端both:最大灵活性、缓存和资源共享场景
数据驻留密钥
你可以通过 ELEVENLABS_API_RESIDENCY 环境变量指定数据驻留区域。默认值为 "us"。
注意: 数据驻留是仅限企业版的功能。有关更多详细信息,请参阅文档。
贡献
如果你想贡献代码或从源码运行:
- 克隆仓库:
git clone https://github.com/elevenlabs/elevenlabs-mcp
cd elevenlabs-mcp
- 创建虚拟环境并使用 uv 安装依赖:
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
- 将
.env.example复制到.env,然后添加你的 ElevenLabs API 密钥:
cp .env.example .env
# Edit .env and add your API key
- 运行测试以确保一切正常:
./scripts/test.sh
# Or with options
./scripts/test.sh --verbose --fail-fast
-
在 Claude Desktop 中安装服务器:
mcp install elevenlabs_mcp/server.py -
使用 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")。这可以确保引用正确的可执行文件。