HTTP 网桥,保持 MCP 服务器运行并通过 REST 暴露,专为需要 MCP工具但无原生支持的 OpenClaw 代理设计。
Cherry MCP QQOrigin Story. 深夜会中构建试图使用带有 OpenClaw 的 MCP 服务器. 服务器持续死亡—— MCP使用stdio是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
在一次深夜调试中,我尝试将 MCP 服务器与 OpenClaw 配合使用。但服务器频繁崩溃——由于 MCP 使用 stdio 进行通信,若没有持久化客户端维持连接,进程便会自动终止。
OpenClaw 原生不支持 MCP 服务器;而通过 exec 启动的方式又会导致服务器在空闲后被系统终止。解决方案由此诞生:构建一个桥接服务,用于启动 MCP 服务器、保持其长期运行,并通过 HTTP REST 接口暴露各服务器所提供的工具能力。
项目名称源自我的个人 emoji 🍒。
— EULOxGOS,2026 年 2 月
MCP 服务器基于 stdio 通信机制,缺乏持久客户端时会自动退出。Cherry MCP 提供以下能力:
# 添加一个服务器 node cli.js add-server github npx @anthropic/mcp-github # 为该服务器设置环境变量 node cli.js set-env github GITHUB_TOKEN ghp_xxx # 启动服务 pm2 start bridge.js --name cherry-mcp
# 服务器管理 node cli.js add-server[args...] node cli.js remove-server node cli.js list-servers # 环境变量管理 node cli.js set-env node cli.js remove-env # 安全配置 node cli.js set-rate-limit # 每分钟请求数限制 node cli.js set-allowed-ips ... # IP 白名单 node cli.js enable-audit-log # 启用请求审计日志 # 其他命令 node cli.js show-config node cli.js restart
# 列出所有服务器 curl http://localhost:3456/ # 列出指定服务器支持的工具 curl http://localhost:3456//tools # 调用某个工具 curl -X POST http://localhost:3456/ /call -H "Content-Type: application/json" -d '{"tool": "search", "arguments": {"query": "test"}}' # 重启指定服务器 curl -X POST http://localhost:3456/ /restart
127.0.0.1(默认不对外网暴露)所有执行命令均由用户显式配置。该桥接服务仅运行 config.json 中定义的命令,不会通过 HTTP 接口接受任意命令。你完全掌控哪些程序会被执行。
切勿提交敏感信息。若使用 set-env 存储 API 密钥,这些密钥将以明文形式保存在 config.json 中。请务必将该文件加入 .gitignore,或改用系统环境变量方式配置:
# 替代方案:启动前设置环境变量 export GITHUB_TOKEN=ghp_xxx pm2 start bridge.js --name cherry-mcp
随后在配置文件中仅声明变量名,无需填写值:
{
"servers": {
"github": {
"command": "npx",
"args": ["@anthropic/mcp-github"],
"env": {}
}
}
}
此时服务器将继承当前 Shell 的环境变量。
# 推荐使用 pm2 pm2 start bridge.js --name cherry-mcp pm2 save # 设置开机自启 pm2 startup
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章