把本地代码接入 ChatGPT:我的 DevSpace MCP 折腾记录
[[将 DevSpace 用作 MCP 连接器并不违反 OpenAI 的使用政策——它是一种标准的自定义应用程序/连接器设置,编写或运行代码也并非受限用例。但您的帐户受您的使用情况约束,而非 DevSpace 本身。请勿将其指向任何可能违反服务提供商条款的内容。正常使用即可,无需担心。(基于 OpenAI 截至 2026 年 6 月的使用政策和服务条款。)]]
最近想让 ChatGPT 直接帮我查看和修改 Mac 上的项目,于是尝试了 DevSpace。它是一个本地自托管 MCP 服务,可以把指定工作目录暴露给 ChatGPT 或本地 Coding Agent。
这篇文章记录完整过程,也记录遇到的坑。本人技术水平有限,抛砖引玉,大佬应该会有更有趣的玩法。

一、DevSpace 是什么
DevSpace 的工作链路大致是:
ChatGPT
-> MCP HTTPS 地址
-> Cloudflare Tunnel
-> Mac 上的 DevSpace
-> 本地工作目录
它可以让代理读取文件、搜索代码、修改代码、运行测试和执行项目命令。权限很高,所以只开放需要的目录,不要把整个用户目录暴露出去。
二、安装和初始化
我的环境是 macOS,Node.js 22,满足 DevSpace 的要求。
npm install -g @waishnav/devspace
devspace init
第一次初始化时有两个使用方向:
Coding Agents:给 Codex、Claude 等本地代理使用,不需要公网隧道。ChatGPT:给 ChatGPT 网页端使用,需要公网 HTTPS 地址。
一开始我选成了 Coding Agents,后来想从 ChatGPT 网页端访问,才重新初始化并选择 ChatGPT。这是第一个关键坑。
安装后可以检查:
devspace doctor
devspace config get
我的工作空间最终限制为:
/Users/qi/Documents/Codex/dev
三、为什么需要公网隧道
直接访问:
http://127.0.0.1:7676/mcp
只能由本机访问,而且浏览器直接打开会看到:
{"error":"invalid_token","error_description":"Missing Authorization header"}
这是正常的。/mcp 是 MCP 客户端接口,不是普通网页,必须带 Authorization 请求头。
ChatGPT 网页端在公网,所以需要一个公网 HTTPS 隧道转发到本机的 127.0.0.1:7676。
四、尝试 Tailscale Funnel
Tailscale Funnel 可以提供公网 HTTPS 地址:
tailscale funnel --bg 7676
tailscale funnel status
它会得到类似:
https://macbook-pro.example.ts.net
但我在中国内地网络下测试时遇到连接不稳定,且本机访问 Funnel 域名会解析到 Tailscale 私网 IP,浏览器出现 ERR_CONNECTION_CLOSED。所以最终没有继续使用它。
五、改用 Cloudflare Tunnel

临时测试可以用 Quick Tunnel(免费白嫖):

brew install cloudflared
cloudflared tunnel --protocol http2 --edge-ip-version 4 --url http://127.0.0.1:7676
命令会生成一个临时的 trycloudflare.com 地址。注意:关闭进程后地址会失效,重启也会变化。
长期使用时,我在 Cloudflare 创建了一个固定 Tunnel,并配置自定义域名:
devspace.example.com -> http://127.0.0.1:7676
这里有一个非常关键的配置:Cloudflare 到本机源站必须填写 http://127.0.0.1:7676,不能写成 https://127.0.0.1:7676。

DevSpace 本地监听的是普通 HTTP,写成 HTTPS 会导致:
tls: first record does not look like a TLS handshake
固定 Tunnel 可以安装成 macOS 后台服务,Cloudflare 页面会提供带 token 的安装命令。Tunnel token 等同于控制凭据,不要发布到文章、截图或聊天记录中。
![[附件/DevSpace/03-cloudflare-tunnel.svg|Cloudflare 固定域名与源站]]
六、配置 DevSpace 的公网地址

固定域名配置好后:
devspace config set publicBaseUrl https://devspace.example.com
devspace serve
启动信息应该包含:
public base url: https://devspace.example.com
allowed hosts: ..., devspace.example.com
如果 allowed hosts 里没有域名,通常说明没有用 ChatGPT 模式重新初始化,或 DevSpace 进程没有重启。
七、在 ChatGPT 中添加 MCP
在 ChatGPT 的开发者模式中添加自定义 MCP:

- 名称:
DevSpace - MCP 服务器 URL:
https://devspace.example.com/mcp - 身份验证:
OAuth - 勾选风险确认

连接时会出现 Connect DevSpace 页面。Owner password 不在 Cloudflare 后台,而是在本机:
cat ~/.devspace/auth.json
只复制 ownerToken 的值输入。不要把它写进公开文章。
连接成功后,就可以直接在 ChatGPT 中说:
查看当前项目结构
运行 npm test,修复失败的测试
检查 src/server.js 并解释它的作用
错误现象速查图
都看到这里了,还不给个鸡腿?

bd
可以,把网页额度也用上了
我虽然看不懂
必须加鸡腿!
有点复杂,可以看下我的帖子,简单明了https://www.nodeseek.com/post-857551-1
马一下,看看了