Replit MCP集成服务

一个生产就绪的MCP服务器,实现AI平台与Replit工作空间的实时集成,支持通过自然语言命令创建项目、编辑文件、部署应用和管理Replit资源。

  • by pranjalll-k
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 pranjalll-k/replit-mcp-integration

使用说明

回复MCP集成

支持生产的MCP(模型上下文协议)服务器,可实现AI平台和Replit工作区之间的实时集成。通过自然语言命令创建项目、编辑文件、部署应用程序和管理Replit资源。

🎯 概述

此MCP服务器允许您:

  • 通过OAuth 2.0连接您的Replit帐户
  • 以编程方式创建新的Replit项目
  • 编辑现有项目中的文件
  • 触发部署并检查状态
  • 查看提交历史记录
  • 通过Bhindi的AI界面管理Replit资源

🚀 快速开始

先决条件

  • Node.js 20+
  • 已配置OAuth应用程序的回复帐户

安装

  1. 克隆和安装依赖关系:

    git clone <your-repo>
    cd replit-deploy-agent
    npm install
    
  2. 配置环境变量:

    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
    
  3. 启动服务器:

    npm start
    # or for development:
    npm run dev
    

🔗 MCP集成设置

1.部署您的MCP服务器

首先,将MCP服务器部署到云平台:

方案A:铁路

npm install -g @railway/cli
railway login
railway deploy

选项B:渲染

  1. 将代码推送到GitHub
  2. 连接到渲染
  3. 设置环境变量
  4. 部署

选项C:Fly.io

fly deploy

2.配置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安装程序

  1. 首选 回复应用程序
  2. 创建新的OAuth应用程序
  3. 将重定向URI设置为: http://localhost:3000/auth/replit/callback
  4. 记下您的客户端ID和客户端密码
  5. 将这些添加到您的 .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-token>:用户的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-token>:用户的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 (字符串,必填):回复项目ID
  • filePath (string,必填):文件路径
  • content (string,必填):文件内容

3.部署ReplitProject

触发给定项目的部署。

参数:

  • replId (字符串,必填):回复项目ID
  • command (string,可选):构建或运行命令(默认:“npm run deploy”)

4.获取部署状态

检查上次部署是成功还是失败。

参数:

  • replId (字符串,必填):回复项目ID

5.审查承诺

从Replit项目中检索最近的提交或代码更改。

参数:

  • replId (字符串,必填):回复项目ID
  • limit (number,可选):要获取的提交数(默认值:5)

🧪 测试

运行测试套件:

npm test

手动测试

  1. 启动服务器:

    npm run dev
    
  2. 测试OAuth流程:

    curl http://localhost:3000/auth/replit
    # Visit the returned authURL in your browser
    
  3. 测试工具端点:

    curl http://localhost:3000/tools
    
  4. 测试工具执行:

    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.io

Docker部署

创建一个 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

  1. 连接您的存储库
  2. 设置环境变量
  3. 设置构建命令: npm install
  4. 设置启动命令: npm start

🔍 故障排除

常见问题

  1. 缺少环境变量:

    ❌ Missing required environment variables: BHINDI_API_KEY
    

    解决方案:检查您的 .env 文件并确保所有必需的变量都已设置。

  2. OAuth回调失败:

    OAuth callback failed: Invalid client credentials
    

    解决方案:验证您的Replit OAuth应用程序配置和凭据。

  3. 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

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🔗 链接


内置❤️ Bhindi.io生态系统