资讯动态

在家用手机驱动你的工作站:coding-tools-mcp 远程 MCP 隧道(cloudflared/ngrok)与 OAuth 认证快速上手

发布时间:2026/10/14 17:00:46 来源:尧图企业网站定制
【免费下载链接】coding-tools-mcpGive any AI agent the ability to code项目地址https://gitcode.com/gh_mirrors/co/coding-tools-mcp点击查看免费下载coding-tools-mcp是一个让任何 AI 客户端都能安全读写代码仓库的 MCP 编程运行时。配合内置的远程 MCP 隧道cloudflared / ngrok / Microsoft Dev Tunnel与 OAuth 认证你只需一条命令就能把家里的电脑变成一台随时待命的编程工作站——然后掏出手机让 ChatGPT、Grok 或 claude.ai 替你读代码、改文件、跑测试。本文是一份面向新手的完整上手指南如何搭建认证过的 HTTPS 隧道、如何配置 OAuth 2.1 PKCE、如何在手机上接入你的工作站以及远程暴露前必做的安全检查。一、为什么需要远程 MCP 隧道平时使用 AI 编程服务器和客户端都在同一台电脑上通过 stdio 或本机127.0.0.1通信天然安全。但当你想离开工作站、用手机继续写代码时就遇到了两个问题服务器默认只绑定回环地址127.0.0.1:8765公网根本访问不到工具集里包含apply_patch改文件和exec_command跑命令这类高权限工具绝不能裸奔到公网。coding-tools-mcp 的解法很干净本地回环服务器 带认证的 HTTPS 隧道。服务器始终只监听127.0.0.1通过 Model Context Protocol 的 Streamable HTTP 协议在/mcp端点提供服务隧道工具cloudflared、ngrok 或 devtunnel把这条本机地址接一根管子出去得到一个https://tunnel-host/mcp公网地址认证二选一Bearer token静态密钥头或OAuth 2.1 PKCE适合 ChatGPT 这类无法填自定义请求头的云端客户端。相关实现可参考 docs/remote-mcp.md 与 integrations/tunnels/tunnel.sh。二、一分钟看懂三种隧道 Provider Provider适用场景特点cloudflared首选免账号临时隧道自动分配trycloudflare.com地址脚本默认选项ngrok想要固定域名需账号脚本支持自动安装依赖 Homebrew 或 npmdevtunnelWindows / 微软生态Microsoft Dev Tunnel--allow-anonymous匿名托管三个 provider 都封装在 integrations/tunnels/ 目录下integrations/tunnels/tunnel-cloudflared.shintegrations/tunnels/tunnel-ngrok.shintegrations/tunnels/tunnel-devtunnel.sh公共逻辑token 生成、启动服务器、打印接入配置集中在 integrations/tunnels/tunnel-common.sh三、最快上手一行命令开通 cloudflared 隧道 ⚡1. 获取代码并安装git clone https://gitcode.com/gh_mirrors/co/coding-tools-mcp cd coding-tools-mcp scripts/install.sh --tunnel cloudflared --auto-install-tunnel --workspace /path/to/repo安装脚本 scripts/install.sh 会自动完成三件事从 PyPI 安装coding-tools-mcp命令优先用uv否则pip在127.0.0.1:8765启动 MCP 服务器认证模式默认bearer自动生成一个随机 token启动cloudflared隧道缺少 CLI 时--auto-install-tunnel会自动装好。2. 拿到接入信息脚本启动后会直接打印出你在手机上要填的内容URL: https://tunnel-host/mcp Header: Authorization: Bearer token把 URL 和 Header 填入任意支持自定义请求头的 MCP 客户端隧道就通了。✅3. 已有仓库时直接用 tunnel.sh如果coding-tools-mcp已安装等价的一行命令是export CODING_TOOLS_MCP_AUTH_TOKEN$(python3 -c import secrets; print(secrets.token_urlsafe(32))) CODING_TOOLS_MCP_AUTH_MODEbearer integrations/tunnels/tunnel.sh cloudflared /path/to/repo常用环境变量一览变量作用默认值CODING_TOOLS_MCP_AUTH_MODE认证模式bearer/noauth/oauthbearerCODING_TOOLS_MCP_AUTH_TOKEN复用已有 token缺省自动生成—CODING_TOOLS_MCP_PORT本地 HTTP 端口8765CODING_TOOLS_MCP_WORKSPACE工作区目录当前目录CODING_TOOLS_MCP_AUTO_INSTALL_TUNNEL缺隧道 CLI 时自动安装交互式询问四、OAuth 认证让 ChatGPT、Grok 也能接上 Bearer token 需要一个能填自定义Authorization请求头的客户端。但ChatGPT 的自定义连接器只支持 OAuth 或无认证Grok 网页版也是云端 OAuth 流程——这时就轮到 OAuth 模式出场了。1. 开启 OAuth 隧道CODING_TOOLS_MCP_AUTH_MODEoauth \ integrations/tunnels/tunnel.sh cloudflared /path/to/repo服务器内置了完整的OAuth 2.1 Authorization Code PKCE (S256)流程并支持RFC 7591 动态客户端注册客户端自己发现、自己注册不需要你手工编 client ID 或复制 client secret。核心逻辑见 coding_tools_mcp/oauth.py。脚本会打印出一串OAuth 密码——稍后客户端弹出授权页时输入它即可OAuth password: 一串随机密码 Client registration: https://tunnel-host/oauth/register (RFC 7591)2. 关键规则新手必读授权码一次性有效5 分钟过期access token 默认24 小时有效且绑定到注册客户端和确切的 MCP 资源 URL动态注册是进程内的服务器重启后客户端需要重新注册一次临时隧道的域名每次都会变服务器会从请求中自动推导 issuer如果你配了固定域名用CODING_TOOLS_MCP_SERVER_URL把它钉死保证 issuer / audience / 发现 URL 恒定可选环境变量CODING_TOOLS_MCP_OAUTH_PASSWORD不填则自动生成并打印、CODING_TOOLS_MCP_OAUTH_TOKEN_TTLtoken 寿命秒、CODING_TOOLS_MCP_OAUTH_TOKEN_SECRET稳定的 HS256 签名密钥。3. 手机端接入实战 ChatGPT设置 → Connectors → Advanced settings 打开开发者模式新建自定义连接器指向https://tunnel-host/mcp。若 ChatGPT 能自行发现 OAuth 端点授权页输入脚本打印的密码即可若表单要你手填则填 Authorization URL/oauth/authorize和 Token URL/oauth/token客户端 ID/secret 通过预注册方式提供CODING_TOOLS_MCP_OAUTH_CLIENT_IDclient-id \ CODING_TOOLS_MCP_OAUTH_CLIENT_SECRETsecret \ CODING_TOOLS_MCP_OAUTH_REDIRECT_URISChatGPT 展示的 redirect URI \ CODING_TOOLS_MCP_AUTH_MODEoauth \ integrations/tunnels/tunnel.sh cloudflared /path/to/repoGrokgrok.com → Settings → Connectors添加自定义连接器指向https://tunnel-host/mcp弹窗里完成 OAuth 即可。Gemini CLI / 通用 HTTP 客户端支持自定义头时直接用 Bearer 隧道gemini mcp add --transport http coding-tools https://tunnel-host/mcp \ --header Authorization: Bearer token各客户端的完整配置示例在 docs/mcp-client-config.md。4. 顺手验证一下隧道是否通了curl $BASE_URL/.well-known/mcp.json curl $BASE_URL/.well-known/oauth-protected-resource curl $BASE_URL/.well-known/oauth-authorization-serverBASE_URL换成隧道 HTTPS 域名不带/mcp。Bearer 模式下不带 token 的请求应返回401带上正确 token 应能完成initialize握手。五、图形化管理桌面客户端 ️不想碰命令行项目自带一个 PySide6 桌面客户端支持简体中文能按工作区管理配置、一键启停服务器与隧道、切换 OAuth / Bearer / NoAuth、查看运行日志还能一键复制 ChatGPT 自定义连接器需要填写的全部字段python -m pip install coding-tools-mcp[desktop] coding-tools-mcp-desktopCloudflare 支持临时隧道trycloudflare.com地址与命名隧道固定域名两种模式详见 apps/desktop-client/README.md 与 apps/desktop-client/mcp_desktop_client/app.py。六、安全清单远程暴露前必做 5 件事 ✅工具集包含改文件和跑命令的能力远程部署请务必过一遍这份清单原文见 docs/remote-mcp.md永远不要把noauth暴露到公网——它只配给本机回环进程用坚持 HTTPS定期轮换 Bearer tokenOAuth 密码/签名密钥不要写进仓库权限模式保持在safe或trusted见 docs/permission-modes.mddangerous只给隔离容器/虚拟机用隧道认证的是传输不是代码执行——对不信任的仓库请把服务器跑进一次性 Docker 沙箱见 docs/docker.md用完即毁不要对公网端点使用--dangerously-fake-readonly-annotations它会把apply_patch、exec_command谎报为只读工具让对端客户端失去警惕。七、常见问题排查 现象原因与处理请求返回401Bearer 模式没带 token 或 token 不对确认Authorization: Bearer token拼写GET /mcp返回405正常行为端点只提供 Streamable HTTP POST不提供 SSE 流客户端保存了Mcp-Session-Id0.3.0 起服务端无状态旧会话头会被忽略而非报错重连、换客户端都不丢状态启动时报cloudflared is not installed加--auto-install-tunnel或设置CODING_TOOLS_MCP_AUTO_INSTALL_TUNNEL1反向代理后面识别不到真实来源仅在你自己可控的代理后设置CODING_TOOLS_MCP_TRUST_PROXY_HEADERS1浏览器跨域来源可用CODING_TOOLS_MCP_ALLOWED_ORIGINS精确放行DELETE /mcp返回405无状态设计下没有可终止的会话属预期行为八、延伸阅读 远程 MCP 完整文档端点、注册规则、HTTP 会话行为docs/remote-mcp.md各客户端接入配置Claude Desktop / Cursor / VS Code / ChatGPT / Grok …docs/mcp-client-config.md快速开始与本地启动docs/quickstart.md安全边界与 Landlock 隔离docs/security-boundary.md隧道脚本源码integrations/tunnels/搭好这条隧道后你的工作方式可以是这样的出门前对手机说一句跑一下测试把第一个失败修了回家时 commit 已经在等你了。赞分享【免费下载链接】coding-tools-mcpGive any AI agent the ability to code项目地址https://gitcode.com/gh_mirrors/co/coding-tools-mcp点击查看免费下载相关推荐Context7 MCP 远程连接如何改用 OAuth 认证Context7 MCP 远程连接如何改用 OAuth 认证 如果你的 MCP 客户端目前通过远程 HTTP 连接 Context7服务端地址 https:MCP 服务AI 应用开发工具使用 mcp-use 在 MCP Server 中集成 WorkOS AuthKit OAuth 认证使用 mcp use 在 MCP Server 中集成 WorkOS AuthKit OAuth 认证 本文基于 CopilotKit 仓库中 open mcp人工智能AI AgentAgent 框架前端后端MCP Go SDK 快速上手用 Go 构建你的第一个 MCP Server 与 ClientMCP Go SDK 快速上手用 Go 构建你的第一个 MCP Server 与 Client 本文基于官方 Model Context Protocol GMCP 服务AI Agent工具调用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑