Render.com集成远程MCP服务器

这是一个基于Express.js的API服务器,通过MCP协议与Render.com API交互,提供SSE通信、服务部署、环境变量管理和部署状态监控等功能。

  • by hashizaka
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hashizaka/render-mcp-server

使用说明

具有Render.com集成的远程MCP服务器

Render.com API 与协作的远程MCP服务器

概要

此项目包括:MCP通过协议Render.com API中所述修改相应参数的值。Express.js基本API作为服务器运行,提供以下功能:

  • SSE根据端点MCP通讯
  • Render.com API协作
  • 部署、重新启动、停止和恢复服务
  • 管理环境变量
  • 监视部署状态

特徴

  • Node.js/Express 轻量安装
  • Server-Sent Events (SSE) 対応
  • JSON-RPC 2.0 准据
  • Render.com API连携
  • GitHub Actions支持自动部署

环境构筑

前提条件

  • Node.js 18以上
  • npm 在工作空间的边缘yarn
  • Render.com API标记

安装

# リポジトリのクローン
git clone https://github.com/hashizaka/render-mcp-server.git
cd mcp-server

# 依存関係のインストール
npm install

# 環境変数の設定
cp .env.example .env
# .envファイルを編集してRENDER_API_TOKENを設定

启动开发服务器

npm run dev

本番环境用実行

npm start

Render.com部署到

1.自动部署

GitHub Actions中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积

  1. GitHub只需将代码推到存储库即可自动部署
  2. main推送或标记到分支时自动部署
  3. GitHub Actions也可以从屏幕上手动执行部署

前提条件:

  • GitHub在动态输入提示中单击Secrets在…之上RENDER_API_KEY打开RENDER_SERVICE_ID已设置

2. API直接调用部署

Render API使用直接调用的脚本:

./direct_api_deploy.command

3.手动部署

Render使用仪表板手动部署:

  1. Render登录仪表板
  2. 「New Web Service」列表框中,此格式对应于条目“无”
  3. GitHub协作存储库
  4. 设定:
    • 构建命令: npm install
    • 开始命令: npm start
  5. 设置环境变量(RENDER_API_TOKEN的下界
  6. 运行部署

使用方法

MCP SSE接続

MCP SSE连接到端点并接收事件:

GET /mcp-sse

MCP请求提交

MCP提交请求Render.com API操作:

POST /mcp-sse/request
Content-Type: application/json

{
  "action": "deploy",
  "serviceId": "srv-xxx",
  "parameters": {
    "clearCache": true
  },
  "requestId": "req-123"
}

可用操作

  • list_services:获取服务列表
  • get_service:获取特定服务信息
  • deploy:部署服务
  • restart:重新启动服务
  • suspend:暂停服务
  • resume:恢复服务
  • update_env:更新环境变量

API端点

RESTful API服务器可通过:

  • GET /api/render/services:获取服务列表
  • GET /api/render/services/:serviceId:获取特定服务信息
  • POST /api/render/services/:serviceId/deploy:部署服务
  • GET /api/render/services/:serviceId/deploys/:deployId:获取部署状态
  • PUT /api/render/services/:serviceId/env-vars:更新环境变量
  • POST /api/render/services/:serviceId/restart:重新启动服务
  • POST /api/render/services/:serviceId/suspend:暂停服务
  • POST /api/render/services/:serviceId/resume:恢复服务

安全性

  • API密钥作为环境变量安全管理
  • Helmet.js设置安全标题
  • 验证中间件访问控制
  • Google认证协作功能支持(Web版Claude支持)

Google认证连携

Web版本Claude的连接时提供了解决复合认证问题(Google认证和独立认证的竞争)的功能:

所需的环境变量

# Google認証連携設定
ACCEPT_GOOGLE_AUTH=true
GOOGLE_CLIENT_IDS=*.googleusercontent.com

认证端点

  • POST /auth/google/token: Google标记验证转换
  • POST /auth/google/refresh: Google标记刷新处理

Custom Integrations设定

接続URL

https://render-mcp-server.onrender.com/mcp-sse

所需设置

  • 协议:SSE
  • 方法:POST
  • 内容类型:应用程序/json

CI/CD

这个项目GitHub Actions实施持续部署:

  • .github/workflows/deploy-to-render.yml在文件中设置
  • main向分支推送时自动部署
  • 发布标签(v*。.)创建时自动部署
  • 也可以手动触发部署

部署方法列表

|部署方法|命令|优点|用途| |------------|---------|---------|------| | GitHub Actions | 自动|完全自动化、代码协作|通常的开发周期| 直接、直接API调用 ./direct_api_deploy.command | CLI的问题回避|紧急时、故障时| 手动部署Render仪表板|可详细设置|初始设置|

许可证

麻省理工学院