文本转语音服务

ElevenLabs MCP Server是一个基于FastAPI的文本转语音服务,通过Model-Context-Protocol (MCP)将ElevenLabs的高质量语音生成功能集成到对话AI流程中,支持本地或Docker部署。

  • by dctact-archive
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dchayes27/elevenlabs-mcp-server

使用说明

ElevenLabs MCP服务器

基于FastAPI的 模型上下文协议(MCP) 将ElevenLabs文本转语音作为易于使用的MCP工具公开。

此存储库允许任何兼容MCP的客户端列出语音、生成语音,并将高质量音频插入会话AI流中。它在本地或Docker中运行,完全可配置环境,并附带测试和CI就绪的linting。


1.工程概况

•将ElevenLabs的REST API连接到开源MCP生态系统。
•实施 initialize, tools/list,以及 tools/call 方法。
•安全 持有者代币 访问 /mcp 终点。
•附带生产就绪的Docker镜像和Compose堆栈。

2.架构图

Mermaid Source (click)
flowchart TD
  subgraph Client
    A[MCP Client] -- HTTP/JSON --> B((FastAPI))
  end

  subgraph Server
    B -- "/mcp" --> C[MCP Router]
    C -- `text_to_speech` --> D[ElevenLabs SDK]
    D -- HTTPS --> E[(ElevenLabs API)]
    C -- returns --> A
  end

3.先决条件

工具 版本
Python 3.10+
Docker引擎 24+
Docker编写 v2
ElevenLabs帐户 API密钥

4.快速入门

本地单班

python -m venv .venv && source .venv/bin/activate \
  && pip install -r requirements.txt \
  && uvicorn src.main:app --reload --host 0.0.0.0 --port 8080

访问 http://localhost:8080/docs Swagger用户界面。

Docker Compose

docker compose up --build

5.配置

复制并编辑模板:

cp config/.env.example .env
变量 默认值 描述
MCP_PORT 8080 监听端口
MCP_HOST 0.0.0.0 绑定地址
MCP_SECRET_TOKEN – 不记名代币保护 /mcp
ELEVENLABS_API_KEY – 您的ElevenLabs API密钥
ELEVENLABS_VOICE_ID – 未提供默认语音时
MCP_SERVER_NAME dans-mcp服务器 在中显示名称 /health
MCP_VERSION 1.0.0 广告语义版本
LOG_LEVEL 信息 日志记录级别(调试/INFO/…)
DATABASE_URL (评论) 稍后启用持久性

6.本地运行(逐步)

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
export $(grep -v "^#" .env | xargs)   # load env vars
uvicorn src.main:app --reload --host "$MCP_HOST" --port "$MCP_PORT"

文件可在 http://localhost:$MCP_PORT/docs.

7.Docker部署

构建标记(&T):

docker build -t ghcr.io/<user>/elevenlabs-mcp:latest .

推:

docker push ghcr.io/<user>/elevenlabs-mcp:latest

编写缩放片段:

services:
  mcp:
    image: ghcr.io/<user>/elevenlabs-mcp:latest
    deploy:
      replicas: 3
      resources:
        limits:
          memory: 512m
    env_file: .env

8.测试和缝合

# unit + integration tests
pytest -q --cov=src tests/

# static analysis + formatting
ruff check src tests
black --check src tests

CI在覆盖率或格式回归方面应该失败。

9.API参考(迷你版)

路径 方法 摘要
/ GET 欢迎和有用的链接
/health GET Liveness+ElevenLabs连接
/mcp POST MCP协议入口点

完整的OpenAPI规范+交互式用户界面 /docs.
附加协议文件 docs/.

10.故障排除常见问题

症状 修复
401 Unauthorized 上 /mcp 通行证 Authorization: Bearer <MCP_SECRET_TOKEN>
503 ElevenLabs client not available 验证 ELEVENLABS_API_KEY
端口已在使用中 更改 MCP_PORT 或释放端口
音频文件未保存 确保 ./data 容器中存在且可写

11.贡献

看 贡献.md 用于分支策略、代码风格和问题工作流。

12.许可证和确认书

根据 MIT许可证 –参见 许可证.

多亏了 十一实验室, 快速API, 派丹蒂克, Uvicorn,以及 主控程序 社区,因为他们的伟大工具和灵感。