跳转到主要内容

远程 MCP

Coding Tools MCP 可以作为 Streamable HTTP MCP server 运行。远程访问适合托管工作区、开发容器,或无法启动本地子进程的客户端。

入口

JSON-RPC 入口是:
/mcp
服务卡片元数据也可从以下路径获取:
/.well-known/mcp.json
/.well-known/mcp/server-card.json

优先本地绑定

最安全的默认方式是只监听 loopback:
coding-tools-mcp --workspace /repo --host 127.0.0.1 --port 8000
如果远程客户端需要访问,可通过反向代理、SSH tunnel 或开发 tunnel 暴露本地服务。

远程绑定必须处理鉴权

当前实现会拒绝无鉴权的非 loopback 绑定,除非显式设置 CODING_TOOLS_MCP_AUTH_MODE=noauth Bearer 示例:
export CODING_TOOLS_MCP_AUTH_TOKEN="replace-with-a-strong-token"
coding-tools-mcp --workspace /repo --host 0.0.0.0 --port 8000 --auth-token "$CODING_TOOLS_MCP_AUTH_TOKEN"
OAuth 示例:
export CODING_TOOLS_MCP_SERVER_URL="https://mcp.example.com"
export CODING_TOOLS_MCP_OAUTH_PASSWORD="replace-with-login-password"
coding-tools-mcp --workspace /repo --host 0.0.0.0 --port 8000 --oauth-mode

Origin 和请求限制

HTTP handler 会在请求带有 Origin 时检查该 origin 是否符合当前鉴权姿态。JSON-RPC POST body 限制为 1 MiB,batch 限制为 50 项。

Tunnel 脚本和端口默认值

直接 CLI 默认端口是 8000。仓库中的某些安装、tunnel 或包装脚本可能使用 8765。排查连接问题时要确认:
  • 直接 CLI:--portCODING_TOOLS_MCP_PORT,默认 8000
  • 包装脚本或 tunnel:查看脚本参数和导出的环境变量
  • 客户端配置:URL 是否以 /mcp 结尾

部署检查清单

  • 使用能满足任务的最小工作区。
  • 只读远程场景使用 --tool-profile read-only
  • 所有非 loopback 部署都使用 Bearer auth 或 OAuth。
  • 跨机器或网络访问时放在 TLS 后面。
  • 启用 --permission-mode dangerous 前,先使用容器或 VM 隔离。
  • 把远程 exec_command 当作在服务端环境内的远程代码执行来看待。