杰西卡项目(ElevenLabs TTS MCP)
该项目通过模型上下文协议(MCP)将ElevenLabs的文本到语音功能与Cursor集成在一起。它由FastAPI后端服务和React前端应用程序组成。
特性
- 使用ElevenLabs API进行文本到速度转换
- 语音选择和管理
- Cursor的MCP集成
- 现代React前端界面
- WebSocket实时通信
- 用于代码质量的预提交挂钩
- 自动代码格式化和linting
项目结构
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+(用于前端)
- 光标(用于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前端开发服务器:
- http://localhost:5173
环境配置
后端(.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操作设置
要启用自动构建Docker镜像并将其推送到Amazon ECR:
- 应用Terraform配置以创建所需的AWS资源:
cd terraform
terraform init
terraform apply- GitHub Actions工作流将自动:
- 从S3中的Terraform状态读取必要的配置 - 在Pushs上构建Docker镜像 main 或 develop 分支 - 将图像推送到带有标签的ECR latest 以及SHA的具体承诺
- 不需要额外的存储库变量!工作流从Terraform状态获取所有必需的配置。
原理
GitHub Actions工作流配置为:
- 最初假定具有S3读取权限的预定义IAM角色
- 从S3中的Terraform状态文件中获取和提取配置值
- 使用状态文件中的实际部署角色重新进行身份验证
- 构建Docker镜像并将其推送到状态中定义的ECR存储库
这种方法消除了手动配置GitHub存储库变量的需要,并确保CI/CD过程始终使用当前的基础设施配置。
快速概览
- 前端:从S3经CloudFront在jessica.georgi.io提供服务
- 后端API:可从API.georgi.io/jessica获取
- WebSocket:连接到api.georgi.io/jessica/ws
- Docker镜像:存储在AWS ECR中,可以部署到ECS/EKS
- 基础设施:通过此存储库中的Terraform进行管理
MCP与Cursor的集成
- 启动后端服务器
- 在游标设置中,添加新的MCP服务器:
- 姓名:Jessica TTS - 类型:SSE - 网址:http://localhost:9020/sse
故障排除
常见问题
- API关键问题
- 错误:“无效的API密钥” - 解决方案:检查 .env 文件
- 连接问题
- 错误:“无法连接到MCP服务器” - 解决方案:验证后端是否正在运行以及端口是否正确
- 端口冲突
- 错误:“地址已在使用中” - 解决方案:更改中的端口 .env
- WebSocket连接失败
- 错误:“WebSocket连接失败” - 解决方案:确保后端正在运行,WebSocket URL正确
如需更多帮助,请在GitHub上打开问题。
许可证
麻省理工学院
