ChatGPT 网页端通过 OpenAI Secure MCP Tunnel 操控 Windows 11 本地电脑完整教程


ChatGPT 网页端通过 OpenAI Secure MCP Tunnel 操控 Windows 11 本地电脑完整教程

本文记录一套让 ChatGPT 网页端直接调用 Windows 11 本地 MCP 工具 的完整方案:使用 OpenAI 官方 Secure MCP Tunnel 作为传输层,在本机运行 tunnel-client,再通过 stdio 启动 Desktop Commander MCP。
最终链路如下:

ChatGPT 网页端
        │
        ▼
OpenAI Secure MCP Tunnel
        │
        ▼
Windows 本机 tunnel-client.exe
        │
        │ stdio
        ▼
Desktop Commander MCP
        │
        ├── 文件读写 / 搜索 / 编辑
        ├── PowerShell / CMD
        ├── Python / Node.js / Git
        ├── WSL
        └── 长进程与日志读取

这套方案最大的价值不是“完全不经过云”,而是本机只主动向 OpenAI 建立出站连接,不需要把本地 MCP Server 暴露到公网。因此不要求公网 IP、路由器端口映射、DDNS、VPS、ngrok 或 Cloudflare Tunnel。

注意:本文说的“操控本地电脑”主要指文件系统与命令行能力。Desktop Commander 不是传统远程桌面,也不会天然看到桌面画面、移动鼠标或点击任意 GUI 控件。

一、这套方案到底能做什么

连接成功后,ChatGPT 可以通过 Desktop Commander 调用本机工具,例如:

  • 列出和读取项目目录;
  • 新建、修改、移动、删除文件;
  • 搜索整个代码仓库;
  • 运行 PowerShell、CMD;
  • 调用 Python、Node.js、Git;
  • 调用 WSL 中的 Linux 命令;
  • 编译项目、运行测试、读取报错;
  • 启动长时间运行的程序并持续读取输出;
  • 继续通过本机 SSH 客户端管理远端服务器。

它非常适合把 ChatGPT 变成真正参与本地开发工作的 Agent:

看代码 → 修改 → 运行 → 看错误 → 再修改 → 测试

但如果目标是“打开微信并点击某个按钮”这类纯 GUI 自动化,还需要额外叠加浏览器自动化或 Windows UI Automation 工具。

二、为什么选择 OpenAI Tunnel + Desktop Commander stdio

Desktop Commander 自己也提供 Remote 模式,例如:

npx -y @wonderwhy-er/desktop-commander@latest remote

这种模式本身也能远程连接,但本文选择让 Desktop Commander 只负责本地 MCP 能力,把远程传输交给 OpenAI 官方 Tunnel:

OpenAI Secure MCP Tunnel
        +
Desktop Commander stdio MCP

本机 MCP Server 因而不需要直接监听公网端口。OpenAI Tunnel Client 由 Windows 主动向 OpenAI 建立 HTTPS 出站连接,再把 ChatGPT 发来的 MCP 请求转给本地 stdio Server。

这种结构的边界非常清晰:

OpenAI Tunnel:负责远程传输与连接
Desktop Commander:负责本地文件、Shell、进程等能力

三、开始前必须确认 ChatGPT 是否支持 Full MCP

截至 2026-08-09,OpenAI 官方文档列出的 ChatGPT Developer mode / 完整 MCP 支持范围是 Business、Enterprise、Edu 的 ChatGPT 网页版

因此如果你的设置中完全找不到 Developer mode、Apps 的 Create 入口或 Plugins 的开发入口,不要先怀疑 Windows 配置。

官方参考:

界面和套餐范围后续可能调整,所以真正部署前应再以 OpenAI 当前文档为准。

四、准备 Windows 11 环境

1. 检查 Node.js 与 npx

打开普通 PowerShell:

node --version
npx --version
where.exe node
where.exe npx.cmd

本文实际使用过 Node.js 22.x。只要 Desktop Commander 当前支持你的 Node.js 版本即可。

如果你使用 nvm-windows,where.exe npx.cmd 很重要,因为 Tunnel 启动子进程时拿到的 PATH 可能与交互式 PowerShell 不完全一致。

例如可能看到:

C:\nvm4w\npx.cmd

后面可以直接把这个绝对路径写进启动脚本。

2. 创建 Tunnel 和工作目录

建议把运行文件和 ChatGPT 工作区分开:

New-Item -ItemType Directory -Force "E:\OpenAI-Tunnel"
New-Item -ItemType Directory -Force "E:\ChatGPT-Workspace"

其中:

E:\OpenAI-Tunnel

用于保存 tunnel-client.exe、启动脚本和辅助配置;

E:\ChatGPT-Workspace

作为 ChatGPT 的默认本地工作目录。

不建议第一次就把 C:\D:\E:\ 整个盘符开放给 Agent。

五、在 OpenAI Platform 创建 Secure MCP Tunnel

进入 OpenAI Platform 的 Organization / Tunnels 页面,新建一个 Tunnel,例如:

win11-desktop-commander

创建后会得到类似:

tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

也就是后面要使用的 tunnel_id

OpenAI Secure MCP Tunnel 当前支持把后端连接到 stdio MCP 或 HTTP MCP;本文选择 stdio,因为 Desktop Commander 本来就可以作为本机 stdio MCP Server 运行。

Tunnel 权限不要配错

OpenAI 当前把 Tunnel 权限分成:

Tunnels Read
Tunnels Use
Tunnels Manage

创建和修改 Tunnel 需要 Read + Manage;真正运行 tunnel-client、让 ChatGPT 使用 Tunnel,则需要 Read + Use

建议专门创建一个 Runtime API Key 给长期运行的 Tunnel Client,而不要让常驻进程长期持有 Admin API Key。

另外,Tunnel 还必须关联到目标 ChatGPT Workspace。只在 Platform Organization 中创建成功,并不代表 ChatGPT Workspace 一定能看到它。

官方参考:

六、下载 tunnel-client

优先从 OpenAI Platform 的 Tunnel 页面获取当前支持的 Windows Tunnel Client,或使用 OpenAI 官方 openai/tunnel-client Release。

不要在长期教程中硬编码某一个旧 Release 的下载地址,因为客户端版本会更新。

把下载后的程序放到:

E:\OpenAI-Tunnel\tunnel-client.exe

然后检查:

cd "E:\OpenAI-Tunnel"
.\tunnel-client.exe --version
.\tunnel-client.exe help quickstart

七、创建 Desktop Commander 启动脚本

创建:

E:\OpenAI-Tunnel\start-desktop-commander.cmd

内容:

@echo off
cd /d E:\ChatGPT-Workspace
call npx.cmd -y @wonderwhy-er/desktop-commander@0.2.46 --no-onboarding

这里固定 0.2.46 是因为这个版本在本文方案中做过完整端到端验证。后续确认新版正常后,可以再切换到:

call npx.cmd -y @wonderwhy-er/desktop-commander@latest --no-onboarding

如果使用 nvm-windows,并且 where.exe npx.cmd 返回 C:\nvm4w\npx.cmd,建议直接写绝对路径:

@echo off
cd /d E:\ChatGPT-Workspace
call "C:\nvm4w\npx.cmd" -y @wonderwhy-er/desktop-commander@0.2.46 --no-onboarding

先单独测试脚本:

cmd.exe /d /c E:/OpenAI-Tunnel/start-desktop-commander.cmd

如果没有报错,并且程序保持运行,看起来像“卡住”,通常反而是正常的:stdio MCP Server 正在等待 MCP Client 发请求。按 Ctrl+C 退出测试即可。

八、设置 Runtime API Key

当前 PowerShell 会话中:

$env:CONTROL_PLANE_API_KEY = "sk-REPLACE_WITH_YOUR_RUNTIME_KEY"

真实 Key 不要截图、提交 Git、写入博客或发到聊天记录。

九、初始化 Tunnel Profile

进入:

cd "E:\OpenAI-Tunnel"

初始化 stdio Profile:

.\tunnel-client.exe init `
  --sample sample_mcp_stdio_local `
  --profile desktop-commander `
  --tunnel-id tunnel_REPLACE_WITH_YOUR_TUNNEL_ID `
  --mcp-command "cmd.exe /d /c E:/OpenAI-Tunnel/start-desktop-commander.cmd"

这里使用 E:/OpenAI-Tunnel/... 的正斜杠写法非常重要。

本文实际调试时,Windows 反斜杠路径曾被二次解析,导致:

'E:OpenAI-Tunnelstart-desktop-commander.cmd'
不是内部或外部命令

因此如果命令要经过 YAML、JSON、CMD 或其他多层解析,Windows 路径优先使用正斜杠通常更稳。

十、运行 doctor,但不要把 PASS 当成最终成功

.\tunnel-client.exe doctor `
  --profile desktop-commander `
  --explain

如果看到 RESULT ok,说明本地预检没有发现明显问题。
但必须注意:doctor 只是本地 preflight,并不能证明 Runtime API Key 一定能成功轮询目标 Tunnel,也不能代替真正的端到端调用。

OpenAI 官方 Troubleshooting 也明确区分了本地预检和真正运行阶段。

因此正确理解是:

doctor PASS = 本地配置看起来可用
不等于 = ChatGPT 已经能操作本机

十一、正式启动 Tunnel

.\tunnel-client.exe run `
  --profile desktop-commander

这个 PowerShell 窗口需要保持运行。

运行链路是:

Windows tunnel-client
        │
        ├── 主动连接 OpenAI
        ├── 接收目标 Tunnel 的 MCP 请求
        ├── 转给 Desktop Commander stdio
        └── 把结果返回 ChatGPT

如果这里出现 401/403,优先检查 Runtime API Key、Tunnel ID、Organization、Tunnels ReadTunnels Use 权限,以及目标 ChatGPT Workspace 是否已经正确关联。

十二、检查 Tunnel Client 健康状态

另开一个 PowerShell:

(Invoke-WebRequest `
  "http://127.0.0.1:8080/healthz" `
  -UseBasicParsing).StatusCode

(Invoke-WebRequest `
  "http://127.0.0.1:8080/readyz" `
  -UseBasicParsing).StatusCode

正常目标是:

200
200

还可以打开本地状态页面:

Start-Process "http://127.0.0.1:8080/ui"

这里要区分:

/healthz = 进程活着
/readyz  = 已准备好真正处理 Tunnel 工作

排错时 /readyz 通常比单看 /healthz 更有价值。

十三、在 ChatGPT 中启用 Developer Mode

根据 Workspace 当前界面,入口可能显示在 Settings / Security and login / Developer mode,或者 Workspace Settings / Apps 中。

启用后,在 Apps / Plugins 的开发入口创建一个新的 MCP App,连接方式选择:

Tunnel

然后选择刚才创建的 Tunnel,或输入对应 tunnel_id

如果 ChatGPT 中完全看不到 Tunnel,检查:

  1. Tunnel 是否关联了当前 ChatGPT Workspace;
  2. 当前用户是否具备相应 Workspace 权限;
  3. Runtime Key 是否有 Tunnels Read + Use
  4. tunnel-client run 是否正在运行;
  5. /readyz 是否返回 200。

身份验证怎么选

本文的后端是本地 Desktop Commander stdio MCP,它本身没有额外 OAuth 登录流程,因此这一层通常使用:

Authentication: None

不要把 Runtime API Key 填到 MCP App 的用户认证栏。Runtime Key 是 Tunnel Client 访问 OpenAI 控制面的凭据,不是 Desktop Commander 的用户登录密码。

十四、扫描 Desktop Commander Tools

创建 App 时扫描 Tools,正常会看到类似:

get_config
set_config_value
list_directory
read_file
read_multiple_files
write_file
edit_block
start_search
get_more_search_results
start_process
interact_with_process
read_process_output
force_terminate

具体工具数量和名称会随着 Desktop Commander 版本变化,不要把某个固定数量当成成功标准。

十五、第一次端到端测试

不要一开始就让 ChatGPT 操作真实项目,先用:

E:\ChatGPT-Workspace

做最小闭环。

测试 1:列目录

使用 Desktop Commander 列出 E:\ChatGPT-Workspace 中的文件,只读取,不修改。

测试 2:创建并读取文件

在 E:\ChatGPT-Workspace 创建 tunnel-test.txt,内容为:
OpenAI Secure MCP Tunnel connected successfully.
不要操作其他目录。

然后再让 ChatGPT 读取这个文件,确认写入与读取都正常。

测试 3:PowerShell

执行:
powershell.exe -NoProfile -Command "Get-Date"
不要运行其他命令。

测试 4:长进程

执行:
powershell.exe -NoProfile -Command "Start-Sleep 3; Write-Output 'finished'"
等待结束,并告诉我输出和退出码。

如果目录读取、文件写入、文件重新读取、PowerShell 和长进程输出都通过,才算真正完成了 ChatGPT → OpenAI Tunnel → Windows 的端到端闭环。

十六、连通后第一件事:限制 allowedDirectories

调用 Desktop Commander 的 get_config,重点检查:

allowedDirectories
blockedCommands
defaultShell
telemetryEnabled

一个非常容易误解的配置是:

"allowedDirectories": []

它并不是“禁止访问任何目录”,而是允许 Desktop Commander 文件工具访问整个文件系统

因此建议显式设置为:

[
  "E:\\ChatGPT-Workspace"
]

然后再次调用 get_config 确认。

但是必须继续注意:allowedDirectories 不是完整安全沙箱。它主要限制 Desktop Commander 自己的文件类工具,而 PowerShell、CMD、Python、Node.js 或其他命令仍可能访问白名单以外的位置。

因此真正的安全边界应该是:

Windows 普通用户权限 + 工作目录隔离 + Git/备份 + MCP 配置护栏

十七、安全建议

不要让 Tunnel Runtime 默认使用管理员账户。建议使用普通 Windows 用户,并只把必要项目放进工作区。

以下内容不要放进 Agent 默认可访问目录:

  • SSH 私钥;
  • 浏览器 Profile;
  • 密码库;
  • 钱包私钥;
  • 生产环境密钥;
  • API Key 明文文件;
  • 重要个人隐私资料。

对于下面这些操作,最好要求 Agent 在执行前先向你确认:

  • 批量删除或覆盖文件;
  • 修改注册表;
  • 安装系统组件;
  • 改防火墙;
  • git push
  • 上传本地文件;
  • 部署生产环境;
  • 关闭安全软件。

如果不需要 Desktop Commander 遥测,可以把 telemetryEnabled 设置为 false

另外不要把 Tunnel Client 的本地 Admin UI 从 127.0.0.1 随意改成 0.0.0.0 暴露到局域网。

十八、常见报错与排错顺序

1. Windows 路径被吃掉

如果出现:

'E:OpenAI-Tunnelstart-desktop-commander.cmd'
不是内部或外部命令

把 Tunnel Profile 中的路径改成:

E:/OpenAI-Tunnel/start-desktop-commander.cmd

2. 找不到 npx.cmd

where.exe npx.cmd

然后在 start-desktop-commander.cmd 中写入实际绝对路径。

3. doctor PASS,但 ChatGPT 仍不能用

继续检查:

/readyz
/ui 日志
Runtime API Key
Tunnels Read + Use
Workspace association
真正的 ChatGPT Tool 调用

不要把 doctor 当作端到端验收。

4. 401 / 403

重点确认:

  • Runtime API Key 是否正确;
  • Tunnel ID 是否正确;
  • Runtime Key 是否有 Tunnels Read + Use
  • Tunnel 是否属于正确的 Platform Organization;
  • Tunnel 是否关联目标 ChatGPT Workspace。

5. /readyz = 503

通常继续检查 Desktop Commander 子进程是否退出、npx.cmd 是否存在、Node.js 是否正常、MCP 初始化是否失败,以及 Tunnel 配置是否写错。

6. UNDICI-EHPA / punycode Warning

运行 Desktop Commander Remote 模式时可能看到 Node.js 的实验性或弃用警告,例如 UNDICI-EHPA、punycode DeprecationWarning。它们本身不一定代表 MCP 启动失败。

本文方案并不依赖 desktop-commander remote,而是使用 Desktop Commander stdio + OpenAI Tunnel,因此优先看 stdio 子进程和 Tunnel Client 日志。

十九、日常启动流程

首次部署完成后,不需要每天重新创建 Tunnel。通常只需:

cd "E:\OpenAI-Tunnel"
$env:CONTROL_PLANE_API_KEY = "sk-YOUR_RUNTIME_KEY"
.\tunnel-client.exe run --profile desktop-commander

保持这个窗口运行,然后打开 ChatGPT 使用已经创建好的 MCP App 即可。

二十、最终验收清单

不要只以“命令没报错”为标准,完整成功至少应该满足:

[✓] Desktop Commander 单独可以启动
[✓] tunnel-client doctor 正常
[✓] /healthz = 200
[✓] /readyz = 200
[✓] ChatGPT 能扫描到 Desktop Commander Tools
[✓] ChatGPT 能读取测试目录
[✓] ChatGPT 能创建并重新读取测试文件
[✓] ChatGPT 能运行 PowerShell
[✓] ChatGPT 能读取长进程输出

做到这里,下面这条链路才算真正闭环:

ChatGPT
   ↓
OpenAI Secure MCP Tunnel
   ↓
tunnel-client
   ↓
Desktop Commander stdio MCP
   ↓
Windows 11

二十一、官方资料

总结

OpenAI Secure MCP Tunnel + Desktop Commander 的重点不是把电脑变成公网服务器,而是让 Windows 主动连接 OpenAI,再由 ChatGPT 通过这条私有 Tunnel 调用本地 MCP。这样既保留了文件、Shell、Python、Git、WSL 等强大的开发能力,又避免了直接暴露 MCP 入站端口。

真正需要谨慎的是权限:一旦 Agent 拿到 Shell,allowedDirectories 就不能被当成真正的安全沙箱。更可靠的做法是使用普通 Windows 账户、独立工作目录、Git/备份和明确的高风险操作确认规则,然后再逐步开放能力。

如果目标是让 ChatGPT 真正参与本地开发,这套架构已经足够完成“读代码 → 修改 → 执行 → 看报错 → 继续修复 → 测试”的完整 Agent 工作流。


文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
 上一篇
数字证书体系大全:从公私钥、PKI 到 TLS、SSH、代码签名与设备证书 数字证书体系大全:从公私钥、PKI 到 TLS、SSH、代码签名与设备证书
从“公钥为什么需要身份证”开始,系统讲清数字签名、X.509、CA/PKI、证书链、PEM/DER/PFX/JKS、TLS/mTLS、SSH Certificate、代码签名、S/MIME、VPN、802.1X、设备证书、Cloudflare Edge/Origin/AOP 证书体系以及 OpenSSL 实战与排错。
2026-08-10
下一篇 
SSH 完整工作流程:从安装、密钥认证到 Config、隧道与排错 SSH 完整工作流程:从安装、密钥认证到 Config、隧道与排错
从 SSH 客户端与服务端安装开始,完整讲清 Host Key、用户密钥、ssh-agent、~/.ssh/config、文件传输、VS Code Remote SSH、端口转发、跳板机、安全加固与系统化排错。
2026-08-09
  目录