回复MCP集成
支持生产的MCP(模型上下文协议)服务器,可实现AI平台和Replit工作区之间的实时集成。通过自然语言命令创建项目、编辑文件、部署应用程序和管理Replit资源。
🎯 概述
此MCP服务器允许您:
- 通过OAuth 2.0连接您的Replit帐户
- 以编程方式创建新的Replit项目
- 编辑现有项目中的文件
- 触发部署并检查状态
- 查看提交历史记录
- 通过Bhindi的AI界面管理Replit资源
🚀 快速开始
先决条件
- Node.js 20+
- 已配置OAuth应用程序的回复帐户
安装
- 克隆和安装依赖关系:
git clone
cd replit-deploy-agent
npm install- 配置环境变量:
cp .env.example .env编辑 .env 根据您的配置:
# Server Configuration
PORT=3000
NODE_ENV=development
# Replit OAuth Configuration
REPLIT_CLIENT_ID=your_replit_client_id
REPLIT_CLIENT_SECRET=your_replit_client_secret
REPLIT_REDIRECT_URI=http://localhost:3000/auth/replit/callback- 启动服务器:
npm start
# or for development:
npm run dev🔗 MCP集成设置
1.部署您的MCP服务器
首先,将MCP服务器部署到云平台:
方案A:铁路
npm install -g @railway/cli
railway login
railway deploy选项B:渲染
- 将代码推送到GitHub
- 连接到渲染
- 设置环境变量
- 部署
选项C:Fly.io
fly deploy2.配置MCP客户端
将此MCP服务器添加到任何兼容MCP的AI平台:
MCP服务器终结点:
https://your-deployed-server.com/mcp支持的MCP方法:
tools/list-列出可用工具tools/call-使用参数执行工具
3.隧道局部开发
对于本地开发,请使用LocalTunnel:
npm start &
npx localtunnel --port 3001
# Use the provided tunnel URL as your MCP endpoint🔧 回复OAuth安装程序
- 首选 回复应用程序
- 创建新的OAuth应用程序
- 将重定向URI设置为:
http://localhost:3000/auth/replit/callback - 记下您的客户端ID和客户端密码
- 将这些添加到您的
.env文件
📖 API终点
核心MCP集成
GET /tools
列出所有可用工具及其模式。
答复:
{
"success": true,
"responseType": "json",
"data": [
{
"name": "createReplitProject",
"description": "Create a new Replit project",
"parameters": {
"type": "object",
"properties": {
"title": {"type": "string", "description": "Project name"},
"language": {"type": "string", "description": "Replit language template"},
"visibility": {"type": "string", "enum": ["public", "private"], "default": "private"}
},
"required": ["title", "language"]
}
}
]
}POST /tools/:toolName
使用提供的参数执行特定工具。
标题:
Authorization: Bearer:用户的Replit访问令牌(必需)
示例-创建项目:
curl -X POST http://localhost:3000/tools/createReplitProject \
-H "Authorization: Bearer your-replit-token" \
-H "Content-Type: application/json" \
-d '{
"title": "My New Project",
"language": "nodejs",
"visibility": "private"
}'答复:
{
"success": true,
"responseType": "text",
"data": {
"text": "Project \"My New Project\" created successfully with ID: abc123. URL: https://replit.com/@user/my-new-project"
}
}POST /resource
返回有关已连接用户及其项目的上下文信息。
标题:
Authorization: Bearer:用户的Replit访问令牌(可选)
答复:
{
"success": true,
"responseType": "json",
"data": {
"connected": true,
"replitUser": {
"id": "user_id",
"username": "replit_user",
"email": "user@example.com",
"displayName": "User Name"
},
"projects": [
{
"title": "demo",
"id": "abc123",
"url": "https://replit.com/@user/demo",
"language": "nodejs",
"isPrivate": false
}
],
"stats": {
"totalProjects": 5,
"publicProjects": 2,
"privateProjects": 3
}
}
}OAuth身份验证
GET /auth/replit
通过返回授权URL启动OAuth流。
答复:
{
"success": true,
"responseType": "json",
"data": {
"authURL": "https://replit.com/oauth/authorize?client_id=...",
"message": "Visit the authURL to authorize this application with Replit"
}
}GET /auth/replit/callback
处理OAuth回调并交换访问令牌的授权码。
查询参数:
code:来自Replit的授权码error:错误消息(如果授权失败)
公用设施端点
GET /
返回API文档和可用的终结点。
GET /health
用于监视的健康检查端点。
GET /auth/token/:userId
检查用户是否已存储令牌及其过期状态。
🛠️ 可用工具
1.创建复制项目
使用指定的语言和可见性创建新的Replit项目。
参数:
title(字符串,必填):项目名称language(字符串,必填):Replit语言模板(例如,“nodejs”、“python”、“react”)visibility(字符串,可选):“public”或“private”(默认值:“private)
2.更新文件
编辑或覆盖现有Replit项目中的文件。
参数:
replId(字符串,必填):回复项目IDfilePath(string,必填):文件路径content(string,必填):文件内容
3.部署ReplitProject
触发给定项目的部署。
参数:
replId(字符串,必填):回复项目IDcommand(string,可选):构建或运行命令(默认:“npm run deploy”)
4.获取部署状态
检查上次部署是成功还是失败。
参数:
replId(字符串,必填):回复项目ID
5.审查承诺
从Replit项目中检索最近的提交或代码更改。
参数:
replId(字符串,必填):回复项目IDlimit(number,可选):要获取的提交数(默认值:5)
🧪 测试
运行测试套件:
npm test手动测试
- 启动服务器:
npm run dev- 测试OAuth流程:
curl http://localhost:3000/auth/replit
# Visit the returned authURL in your browser- 测试工具端点:
curl http://localhost:3000/tools- 测试工具执行:
curl -X POST http://localhost:3000/tools/createReplitProject \
-H "Authorization: Bearer your-replit-token" \
-H "Content-Type: application/json" \
-d '{"title": "Test Project", "language": "nodejs"}'🚢 部署
生产环境变量
NODE_ENV=production
PORT=3000
REPLIT_CLIENT_ID=your_replit_client_id
REPLIT_CLIENT_SECRET=your_replit_client_secret
REPLIT_REDIRECT_URI=https://your-domain.com/auth/replit/callback
DB_PATH=./data/tokens.sqlite
CORS_ORIGIN=https://bhindi.ioDocker部署
创建一个 Dockerfile:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY src ./src
EXPOSE 3000
CMD ["npm", "start"]部署到Render/Vercel/Fly.io
- 连接您的存储库
- 设置环境变量
- 设置构建命令:
npm install - 设置启动命令:
npm start
🔍 故障排除
常见问题
- 缺少环境变量:
❌ Missing required environment variables: BHINDI_API_KEY解决方案:检查您的 .env 文件并确保所有必需的变量都已设置。
- OAuth回调失败:
OAuth callback failed: Invalid client credentials解决方案:验证您的Replit OAuth应用程序配置和凭据。
- GraphQL错误:
GraphQL errors: [{"message": "Authentication required"}]解决方案:确保Replit访问令牌有效并且具有所需的作用域。
调试模式
启用调试日志记录:
NODE_ENV=development npm run dev📋 项目结构
src/
├── index.js # Express app entrypoint
├── routes/
│ ├── tools.js # GET /tools and POST /tools/:toolName
│ ├── resource.js # POST /resource
│ └── auth.js # OAuth routes
├── lib/
│ ├── replit.js # Replit GraphQL API wrapper
│ ├── auth.js # Authentication middleware
│ └── responses.js # Bhindi response DTOs
├── utils/
│ ├── validation.js # Parameter validation
│ └── logging.js # Structured logging
└── db/
└── tokens.sqlite # OAuth tokens storage🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 提交拉取请求
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
🔗 链接
______________________________________________________________________
内置❤️ Bhindi.io生态系统
