随着 MCP(Model Context Protocol)的普及,我们已经可以不再局限于“把代码复制给 ChatGPT,再把修改后的代码复制回来”这种传统协作方式。
通过 DevSpace,可以让 ChatGPT 在授权范围内直接读取本地项目、搜索源码、修改文件以及执行构建和测试命令;通过 Remote Desktop Commander,则可以进一步让 ChatGPT 操作本机文件系统、终端和运行中的进程。
对于没有公网 IP 的家庭网络或公司内网,还可以使用 花生壳内网穿透,把本机运行的 DevSpace MCP 服务安全地暴露成一个公网 HTTPS 地址。
最终可以形成这样一套开发环境:
Internet
│
│ HTTPS
▼
┌──────────────┐
│ ChatGPT │
└──────┬───────┘
│
MCP / HTTPS
│
▼
┌──────────────────┐
│ 花生壳内网穿透 │
└────────┬─────────┘
│
│ HTTP
▼
127.0.0.1:7676
│
┌──────▼──────┐
│ DevSpace │
│ MCP Server │
└──────┬──────┘
│
▼
D:\release\mall
│
┌───────────┴──────────┐
│ │
Git Maven/npm
│ │
└──────── 本地开发环境 ─┘
另外一条链路则是:
ChatGPT
│
│ Remote MCP
▼
Remote Desktop Commander
│
│ Secure Device Connection
▼
Windows 本地电脑
│
├── 文件系统
├── PowerShell / CMD
├── Git Bash
├── Git
├── Maven
├── Node.js
└── Docker
二者结合之后,ChatGPT 就不只是“代码问答助手”,而更接近一个可以直接参与本地开发工作的 AI Agent。
一、什么是 DevSpace
本文使用的是 npm 包:
@waishnav/devspace
DevSpace 的定位非常直接:
将类似 Codex 的本地编码工作流带到 ChatGPT。
它本质上是一个运行在自己电脑上的 MCP Server。
ChatGPT 连接 DevSpace 后,可以在你明确授权的目录中执行代码开发相关操作,例如读取源码、搜索代码、编辑文件、执行 Git、运行 Maven/npm 测试以及检查项目目录结构。
DevSpace 官方当前要求:
Node.js >= 22.19
Node.js < 27
Windows 环境建议同时安装 Git Bash 或 WSL,单纯依赖 PowerShell/CMD 的兼容性不如 Bash 环境完整。
我个人更推荐:
Windows 11
Node.js 24.x
npm
Git for Windows
Git Bash
DevSpace
花生壳
这样可以同时兼容 DevSpace 和 Remote Desktop Commander。
二、安装 Node.js
首先检查本机版本:
node -v
npm -v
例如:
v24.21.0
11.x.x
对于 DevSpace,不建议继续使用 Node.js 20。
虽然很多 Node 项目在 Node 20 上仍然可以正常运行,但 DevSpace 当前明确要求 Node >=22.19。另外 Remote Desktop Commander Remote 模式在部分 Node 20 环境下也可能碰到:
Node.js 20 detected without native WebSocket support
因此比较省事的方案是直接使用:
Node.js 22 LTS
或者:
Node.js 24
三、安装 DevSpace
使用 npm 全局安装:
npm install -g @waishnav/devspace
安装完成后检查:
devspace --help
如果不想全局安装,也可以直接使用 npx:
npx @waishnav/devspace init
DevSpace 官方同时支持全局 CLI 与 npx 两种运行方式。
四、初始化 DevSpace
执行:
devspace init
或者:
npx @waishnav/devspace init
初始化过程中,DevSpace 会询问使用方式。
如果目标是让 ChatGPT 操作本地项目,就需要选择 ChatGPT 相关模式。
其中一个非常重要的配置是:
Allowed Project Roots
也就是允许 ChatGPT 访问哪些目录。
例如我的项目位于:
D:\release\mall
那么可以把:
D:\release
配置为允许访问的 Root。
这样以后不仅可以打开:
D:\release\mall
也可以打开:
D:\release\payment-demo
D:\release\ai-vocabulary
但从安全角度来看,不建议直接把:
C:\
D:\
整个磁盘加入允许范围。
DevSpace 的安全模型本质上是:
ChatGPT
↓
只能操作 Allowed Roots
↓
具体 Workspace
这样可以把 AI 的操作范围限制在开发目录内。
五、DevSpace 默认端口
DevSpace 默认 MCP 服务通常运行在:
http://127.0.0.1:7676/mcp
初始化完成之后启动:
devspace serve
或者:
npx @waishnav/devspace serve
官方文档给出的默认本地端点同样是:
http://127.0.0.1:7676/mcp
启动后可以先在本机验证 7676:
netstat -ano | findstr 7676
如果看到类似:
TCP 127.0.0.1:7676 0.0.0.0:0 LISTENING
说明 DevSpace 已经正常监听。
六、为什么还需要花生壳
这里有一个非常关键的问题。
DevSpace 在本地的地址是:
http://127.0.0.1:7676/mcp
但:
127.0.0.1
只有你自己的电脑可以访问。
ChatGPT 运行在云端,不可能直接访问:
127.0.0.1:7676
因此需要建立:
公网 HTTPS
↓
内网穿透
↓
127.0.0.1:7676
DevSpace 本身并不会帮你建立公网隧道。官方文档建议使用 Cloudflare Tunnel、ngrok、Pinggy、Tailscale Funnel 或其他 HTTPS Reverse Proxy。
在国内网络环境下,我们也可以使用:
花生壳
完成这一层转换。
七、安装花生壳
安装花生壳 Windows 客户端之后登录贝锐账号。
进入:
花生壳
↓
内网穿透
↓
添加映射
花生壳官方 Windows 客户端支持直接创建内网映射,并生成公网访问地址。
这里不要简单配置成普通 TCP 转发。
对于 DevSpace,我们希望最终提供:
https://xxxxx/mcp
因此推荐使用:
HTTPS 映射
花生壳支持将公网 HTTPS 443 请求转发给内网 HTTP 服务,本地 DevSpace 本身不需要额外部署 SSL 证书。
八、配置 DevSpace 的花生壳映射
例如 DevSpace:
127.0.0.1:7676
那么花生壳可以配置为:
| 配置 | 内容 |
|---|---|
| 应用名称 | DevSpace-MCP |
| 映射协议 | HTTPS |
| 内网主机 | 127.0.0.1 |
| 内网端口 | 7676 |
| 外网协议 | HTTPS |
| 外网端口 | 443 |
| 外网域名 | 花生壳分配或自己的域名 |
例如最终得到:
https://12xxxxxx.vicp.fun
那么这里有一个非常容易搞错的地方。
在执行:
devspace init
配置 Public Base URL 时填写:
https://12xxxxxx.vicp.fun
不要加:
/mcp
而真正配置给 ChatGPT 的 MCP Endpoint 才是:
https://12xxxxxx.vicp.fun/mcp
也就是:
DevSpace publicBaseUrl
https://12xxxxxx.vicp.fun
对应:
ChatGPT MCP Endpoint
https://12xxxxxx.vicp.fun/mcp
DevSpace 官方特别强调 Public Base URL 使用公网 origin,而 MCP 客户端连接时再追加 /mcp。
九、修改 DevSpace 公网地址
如果初始化之后更换了花生壳域名,不需要重新安装 DevSpace。
可以执行:
npx @waishnav/devspace config set publicBaseUrl https://12xxxxxx.vicp.fun
然后重新启动:
npx @waishnav/devspace serve
也可以直接:
devspace serve
DevSpace 会使用新的公网地址。
十、检查 DevSpace 配置
DevSpace 提供了非常实用的诊断命令:
npx @waishnav/devspace doctor
它会检查 Node.js、Git、Bash、平台环境、Public URL、配置以及 SQLite Native Dependency 等项目。
碰到 MCP 无法连接时,不要第一时间怀疑 ChatGPT。
建议先检查:
devspace doctor
再检查:
netstat -ano | findstr 7676
最后测试公网:
curl.exe -vk https://你的花生壳域名/mcp
只要:
DNS 可以解析
TCP 443 可以建立连接
HTTPS 握手正常
请求能够到达 DevSpace
说明最基本的网络链路已经打通。
十一、在 ChatGPT 中连接 DevSpace
接下来进入 ChatGPT。
ChatGPT 对自定义 MCP/App 的支持会根据账号套餐、工作空间类型和当前产品版本有所不同。
在官方目前公布的 Developer Mode 中,可以通过类似:
Settings
↓
Apps
↓
Advanced Settings
↓
Developer Mode
开启 MCP 开发能力,然后创建自己的 MCP App。
创建时填写类似:
Name:
mall
MCP Endpoint:
https://12xxxxxx.vicp.fun/mcp
然后执行:
Scan Tools
ChatGPT 会连接 MCP Server 并读取 DevSpace 暴露出来的 Tools。
需要注意的是,OpenAI 当前对完整 MCP 写入/修改能力的开放范围仍与账号和 Workspace 类型有关,因此如果账号中没有 Create App、Developer Mode 或对应 MCP 功能,应以自己 ChatGPT 设置页面当前实际开放的功能为准。
十二、DevSpace Owner Password 是什么
第一次连接 DevSpace 时,还会遇到一个认证流程。
执行:
devspace init
时,DevSpace 会生成:
Owner Password
它会保存在:
~/.devspace/auth.json
Windows 环境大致对应:
C:\Users\你的用户名\.devspace\auth.json
这个 Password 用来批准新的 MCP Client。
当 ChatGPT 第一次连接 DevSpace 时,DevSpace 会打开授权页面,然后要求输入 Owner Password。
官方特别提醒需要将 auth.json 视为敏感配置,不要提交到 Git 仓库,也不要公开分享。
它和普通意义上的:
Bearer Token
并不是一回事。
不要看到:
{
"ownerToken": "xxxx"
}
就直接尝试:
Authorization: Bearer xxxx
DevSpace 自己有完整的 Owner Approval / OAuth 认证流程,应按照它的认证流程完成连接。
十三、在 ChatGPT 中真正使用 DevSpace
假设我给 DevSpace App 起名:
mall
之后在 ChatGPT 中就可以使用类似:
@mall 打开 D:\release\mall
或者:
@mall 列出这个项目的目录结构
继续:
@mall 帮我分析这个项目的 RabbitMQ 设计
甚至:
@mall 检查这个 Spring Boot 项目能否正常编译
DevSpace 官方提供的能力包括读取/编辑文件、搜索代码、执行 Shell Command、执行测试和构建、Git 操作以及使用 Git Worktree 等。
不过有一个很重要的概念:
Allowed Root ≠ Current Workspace
假设允许:
D:\release
真正开始开发的时候,仍然建议明确告诉 DevSpace:
打开 D:\release\mall 作为 workspace
之后再进行:
列出目录
分析源码
修改代码
运行测试
这样可以避免 AI 操作错误目录。
十四、推荐加入 AGENTS.md
对于真实项目,我强烈建议在项目根目录增加:
AGENTS.md
例如:
D:\release\mall\AGENTS.md
里面定义:
项目技术栈
代码规范
目录结构规范
禁止修改内容
数据库版本
Java版本
构建方式
测试要求
Git规则
这样 DevSpace 打开项目后,AI Agent 可以按照统一工程规范进行修改。
例如:
# AGENTS.md
## 技术栈
- Java 21
- Spring Boot 3.5
- MyBatis-Plus
- MySQL 8
- Redis
- RabbitMQ
- React
- Ant Design
## 构建
后端:
mvn clean test
前端:
npm install
npm run build
## 开发要求
修改代码前必须阅读现有实现。
禁止为了修复问题直接删除现有业务逻辑。
修改完成必须执行测试。
数据库修改必须同时提供 migration SQL。
相比每次在 ChatGPT 中重复解释项目规则,AGENTS.md 更适合作为长期的 AI Coding Contract。
十五、Remote Desktop Commander 是什么
DevSpace 的核心场景主要是:
AI Coding
Remote Desktop Commander 则更加通用。
它可以让 AI 直接操作:
文件
目录
Terminal
Process
Git
Docker
Node
Java
系统命令
官方对它的定位就是让 ChatGPT、Claude 等 AI Assistant 获得本机 File System 与 Terminal 能力。
它既支持 Local MCP,也支持 Remote MCP。
对于 ChatGPT Web,我们重点关注:
Remote Desktop Commander
十六、启动 Remote Desktop Commander
首先确保:
node -v
建议:
Node.js 22+
然后执行:
npx @wonderwhy-er/desktop-commander@latest remote
Remote Desktop Commander 官方 Remote MCP 的标准启动命令就是这一条。
第一次执行时:
Remote Device
↓
打开浏览器
↓
显示 Pairing Code
↓
登录 Desktop Commander
↓
确认设备
↓
Device Ready
最终终端应该看到类似:
Device marked as online
Channel subscribed
Device ready
只要这个终端关闭:
Remote Desktop Commander Device
就会离线。
因此使用过程中需要保持这个进程运行。
十七、ChatGPT 安装 Remote Desktop Commander
Remote Desktop Commander 已经提供面向 ChatGPT 的 Remote MCP 接入方式。
整体流程是:
ChatGPT
↓
Desktop Commander App
↓
Install
↓
Authorize
↓
Add Device
↓
选择刚才配对的 Windows PC
官方 Remote MCP 页面给出的流程同样是先在 ChatGPT 中安装 Desktop Commander,然后完成授权,再添加自己的 Device。
完成后,在 ChatGPT 里就可以直接:
@Remote Desktop Commander
例如:
@Remote Desktop Commander
列出 D:\release\mall 的目录结构
或者:
@Remote Desktop Commander
检查 D:\release\mall 后端项目能否正常编译
甚至:
@Remote Desktop Commander
在 D:\temp 创建一个 React 商城宣传首页
这时候命令实际是在:
自己的 Windows PC
执行,而不是 ChatGPT 的云端 Sandbox。
十八、DevSpace 和 Remote Desktop Commander 有什么区别
很多人第一次使用时会觉得两者功能重复。
实际上可以这样理解:
| 能力 | DevSpace | Remote Desktop Commander |
|---|---|---|
| 项目源码阅读 | ★★★★★ | ★★★★★ |
| AI Coding 工作流 | ★★★★★ | ★★★★ |
| Workspace 隔离 | ★★★★★ | ★★★ |
| Git Worktree | ★★★★★ | ★★★ |
| AGENTS.md | ★★★★★ | ★★★★ |
| 全磁盘文件访问 | 受 Allowed Root 限制 | ★★★★★ |
| Terminal | ★★★★★ | ★★★★★ |
| 系统管理 | ★★★ | ★★★★★ |
| 多项目开发 | ★★★★★ | ★★★★★ |
| Windows 运维 | ★★★ | ★★★★★ |
| Docker 管理 | ★★★★ | ★★★★★ |
我的使用方式是:
写代码
↓
DevSpace
机器管理 / 文件管理 / 环境配置
↓
Remote Desktop Commander
例如:
@mall
分析 mall 项目的 RabbitMQ 设计
比较适合 DevSpace。
而:
@Remote Desktop Commander
帮我检查 Node.js、Java、Maven、Docker 的版本
更适合 Remote Desktop Commander。
十九、两个工具可以同时使用吗?
完全可以。
甚至这是非常舒服的一种组合。
例如:
ChatGPT
│
├──── @mall
│ │
│ └── D:\release\mall
│
└──── @Remote Desktop Commander
│
└── Windows PC
DevSpace 专门负责:
Repository
Remote Desktop Commander 负责:
Machine
这样 ChatGPT 可以完成一条比较完整的链路:
读取项目
↓
分析问题
↓
修改源码
↓
运行 Maven
↓
启动 Docker
↓
检查日志
↓
验证端口
↓
重新修改
↓
再次测试
传统 ChatGPT 只能告诉你:
“请执行 mvn clean test”
接入这些 MCP 后,则有机会变成:
ChatGPT
↓
直接执行
mvn clean test
↓
读取错误
↓
分析错误
↓
修改代码
↓
重新测试
这也是 MCP 对开发流程真正有价值的地方。
二十、Windows 常见问题:npm EPERM
Windows 安装 DevSpace 时,还可能遇到:
npm error code EPERM
npm error syscall open
npm error path C:\Users\Administrator\.npmrc
例如:
EPERM: operation not permitted,
open 'C:\Users\Administrator\.npmrc'
先执行:
Get-Item C:\Users\Administrator\.npmrc |
Format-List FullName,Attributes,Length
如果看到:
Attributes : ReadOnly, Archive
说明:
.npmrc
被设置成只读。
解除只读:
attrib -R C:\Users\Administrator\.npmrc
或者:
Set-ItemProperty `
-Path C:\Users\Administrator\.npmrc `
-Name IsReadOnly `
-Value $false
之后重新执行 npm 命令即可。
如果仍然出现:
EPERM
再检查文件 ACL:
icacls C:\Users\Administrator\.npmrc
二十一、Remote Desktop Commander 的 Node 20 WebSocket 问题
Windows 环境还可能看到:
Device startup failed:
Node.js 20 detected without native WebSocket support
并提示:
import ws from "ws"
对于普通 Node.js 项目当然可以安装:
npm install ws
但对于:
npx @wonderwhy-er/desktop-commander@latest remote
这种 CLI 工具来说,直接升级 Node.js 通常更加干净。
推荐:
Node 22
或者:
Node 24
然后确认:
where node
node -v
防止 Windows 中存在:
Node 20
Node 24
两个版本,但 PATH 实际仍然指向 Node 20。
二十二、DevSpace 无法连接时怎么排查
最有效的排查方法不是不停删除重装,而是按链路逐层检查。
完整路径是:
ChatGPT
↓
公网 DNS
↓
HTTPS 443
↓
花生壳
↓
127.0.0.1:7676
↓
DevSpace
↓
Workspace
本机先执行:
devspace doctor
确认 DevSpace:
netstat -ano | findstr 7676
再测试:
curl.exe http://127.0.0.1:7676/mcp
然后测试公网:
curl.exe -vk https://你的域名/mcp
如果公网:
TCP Connection established
但是 MCP Scan 失败,那么重点检查:
publicBaseUrl
OAuth
Host
/mcp Path
如果公网根本连接不上,则应该先检查:
花生壳映射
Windows 网络
DevSpace 是否运行
而不是修改 MCP 配置。
二十三、推荐的最终配置
如果是在 Windows 上使用,我比较推荐这一套组合:
Windows 11
│
├── Node.js 24
├── Git for Windows
├── Git Bash
├── Java 21
├── Maven
├── Docker Desktop
│
├── DevSpace
│ └── 127.0.0.1:7676
│
├── 花生壳
│ └── HTTPS → 127.0.0.1:7676
│
└── Remote Desktop Commander
└── Remote Device
ChatGPT:
ChatGPT
│
├── @mall
│ └── DevSpace MCP
│
└── @Remote Desktop Commander
└── Windows Device
日常开发:
项目源码开发
↓
DevSpace
操作系统 / 环境 / Docker / 文件
↓
Remote Desktop Commander
这样的职责划分会非常清晰。
二十四、安全问题一定要注意
无论是 DevSpace 还是 Remote Desktop Commander,都不是普通的“聊天插件”。
它们拥有的实际上是:
文件读写权限
+
Shell 执行权限
Remote Desktop Commander 官方也明确说明,它是一个具有较高权限的本地自动化工具,连接的 AI Client 应被视为可信客户端,而不是把它看作安全沙箱。
因此不要把下面这些内容暴露给 AI Workspace:
SSH Private Key
生产环境数据库密码
云服务器 Secret Key
支付平台私钥
.env.production
浏览器 Cookie
密码管理器数据库
DevSpace 应尽量使用:
Allowed Roots
限制访问范围。
Remote Desktop Commander 不使用时则可以直接:
Ctrl + C
关闭 Remote Device。
官方也建议只连接自己拥有的设备,并在不需要时停止 Device Agent。
二十五、总结
完成这些配置之后,我们实际上搭建了一套:
ChatGPT + MCP + Local Development Environment
传统模式:
开发者
↓
复制代码
↓
ChatGPT
↓
复制回答
↓
IDE
↓
运行
↓
发现错误
↓
再次复制
现在则可以变成:
开发者
↓
ChatGPT
↓
MCP
↓
DevSpace / Remote Desktop Commander
↓
本地项目
↓
编译 / 测试 / Git / Docker
↓
结果返回 ChatGPT
其中:
DevSpace
负责把本地代码仓库变成 AI Workspace;
花生壳
负责解决 ChatGPT 无法直接访问局域网 MCP Server 的问题;
Remote Desktop Commander
则进一步把能力从“代码仓库”扩展到了:
整台开发电脑
对于 Java/Spring Boot、React、Node.js、Docker 等全栈开发场景,这套方案最大的价值并不是“AI 可以帮忙写几段代码”,而是让 AI 真正进入:
读取 → 分析 → 修改 → 构建 → 测试 → 验证
这一整套工程闭环。
当 MCP、AGENTS.md、DevSpace 和本地工具链真正组合起来以后,ChatGPT 才开始从传统的“编程问答助手”,逐渐变成能够参与真实项目开发流程的 Coding Agent。