通过模型上下文协议将 ElevenLabs 的文本转语音功能与 Cursor 集成,允许用户在 Cursor 编辑器中使用可选声音将文本转换为语音。
speech-processingdeveloper-tools
103 查看 · 2026-07-07 更新
简介
通过模型上下文协议将 ElevenLabs 的文本转语音功能与 Cursor 集成,允许用户在 Cursor 编辑器中使用可选声音将文本转换为语音。
简介
通过模型上下文协议将 ElevenLabs 的文本转语音功能与 Cursor 集成,允许用户在 Cursor 编辑器中使用可选声音将文本转换为语音。
Project Jessica (ElevenLabs TTS MCP)
该项目通过模型上下文协议(MCP)将ElevenLabs的文本转语音功能与Cursor集成。它包括一个FastAPI后端服务和一个React前端应用程序。
功能
- 使用ElevenLabs API进行文本转语音转换
- 语音选择和管理
- 与Cursor的MCP集成
- 现代化的React前端界面
- WebSocket实时通信
- 预提交钩子以保证代码质量
- 自动代码格式化和检查
项目结构
jessica/ ├── src/ │ ├── backend/ # FastAPI backend service │ └── frontend/ # React frontend application ├── terraform/ # Infrastructure as Code ├── tests/ # Test suites └── docs/ # Documentation
要求
- Python 3.11+
- Poetry(用于后端依赖管理)
- Node.js 18+(用于前端)
- Cursor(用于MCP集成)
本地开发设置
后端设置
# Clone the repository git clone https://github.com/georgi-io/jessica.git cd jessica # Create Python virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install backend dependencies poetry install # Configure environment cp .env.example .env # Edit .env with your ElevenLabs API key # Install pre-commit hooks poetry run pre-commit install
前端设置
# Navigate to frontend directory cd src/frontend # Install dependencies npm install
开发服务器
启动后端
# Activate virtual environment if not active source .venv/bin/activate # On Windows: .venv\Scripts\activate # Start the backend python -m src.backend
后端提供:
- REST API: http://localhost:9020
- WebSocket: ws://localhost:9020/ws
- MCP服务器: http://localhost:9020/sse(与主API服务器集成)
启动前端
# In src/frontend directory npm run dev
前端开发服务器:
环境配置
后端 (.env)
# ElevenLabs API ELEVENLABS_API_KEY=your-api-key # Server Configuration HOST=127.0.0.1 PORT=9020 # Development Settings DEBUG=false RELOAD=true
前端 (.env)
VITE_API_URL=http://localhost:9020 VITE_WS_URL=ws://localhost:9020/ws
代码质量工具
后端
# Run all pre-commit hooks poetry run pre-commit run --all-files # Run specific tools poetry run ruff check . poetry run ruff format . poetry run pytest
前端
# Lint npm run lint # Type check npm run type-check # Test npm run test
生产环境部署
AWS ECR 和 GitHub Actions 设置
为了启用自动构建并将Docker镜像推送到Amazon ECR:
-
应用Terraform配置以创建所需的AWS资源:
cd terraform terraform init terraform apply -
GitHub Actions工作流将自动:
- 从S3中的Terraform状态读取必要的配置
- 在推送至
main或develop分支时构建Docker镜像 - 将镜像推送到ECR,并标记为
latest和特定的提交SHA
-
不需要额外的仓库变量!工作流从Terraform状态中获取所有必需的配置。
工作原理
GitHub Actions工作流被配置为:
- 初始时假设具有S3读取权限的预定义IAM角色
- 从S3中的Terraform状态文件获取并提取配置值
- 使用状态文件中的实际部署角色重新认证
- 构建并将Docker镜像推送到状态中定义的ECR存储库
这种方法消除了手动配置GitHub仓库变量的需求,并确保CI/CD过程始终使用当前的基础架构配置。
快速概览
- 前端:通过CloudFront从S3提供服务,地址为jessica.georgi.io
- 后端API:可访问于api.georgi.io/jessica
- WebSocket:连接到api.georgi.io/jessica/ws
- Docker镜像:存储在AWS ECR中,可以部署到ECS/EKS
- 基础架构:通过此仓库中的Terraform管理
与Cursor的MCP集成
- 启动后端服务器
- 在Cursor设置中添加新的MCP服务器:
- 名称:Jessica TTS
- 类型:SSE
- URL:http://localhost:9020/sse
故障排除
常见问题
-
API 密钥问题
- 错误: "无效的 API 密钥"
- 解决方案: 检查
.env文件
-
连接问题
- 错误: "无法连接到 MCP 服务器"
- 解决方案: 确认后端正在运行且端口正确
-
端口冲突
- 错误: "地址已被使用"
- 解决方案: 在
.env中更改端口
-
WebSocket 连接失败
- 错误: "WebSocket 连接失败"
- 解决方案: 确保后端正在运行且 WebSocket URL 正确
如需更多帮助,请在 GitHub 上提交问题。
许可证
MIT
来源
- 来源:github
- 链接:https://github.com/georgi-io/elevenlabs-tts-mcp