我的角色隧道接入、托盘管理与 Commander 定制

当前阶段本地持续使用与改进

技术与方法MCP / OpenAI Tunnel / MCP Apps / TypeScript / C#

AI 生成的云端网页与本地工具协同概念图
AI 生成的云端网页与本地工具协同概念图

让网页 AI 也能参与本地工作

我希望云端的网页 AI 可以协同看到本地内容:阅读我的资料,了解项目当前状态,继续修改文件,或者执行命令、查看运行结果。

这样在网页里讨论一个项目时,AI 可以通过工具直接读取相关文件,在本来的目录中继续工作。我也可以结合它看到的资料和实际执行结果,与它一起分析问题。

这个项目首先解决的是云端网页 AI 与本地设备之间的协同。在接入的基础上,我再增加界面和文件修改能力,让这个过程便于查看和控制。

通过隧道接入本地工具

我目前使用的是网页 ChatGPT,通过 OpenAI Secure MCP Tunnel,连接到本机运行的官方 tunnel-client,再调用本地 Desktop Commander MCP。

通信关系可以简写为:

网页 ChatGPT → OpenAI Secure MCP Tunnel → 本机 tunnel-client → 本地 Commander MCP → 文件、命令和进程。

Commander 提供本地工具能力,隧道负责接入。我还接入了独立的 Filesystem MCP,并开发 C# 托盘程序,统一管理服务启停、连接状态和日志。

云端 AI 因此可以按授权接触本地工作所需的资料与操作。对于其他支持远程 MCP 的网页 AI,同样可以考虑这类接入方式;具体连接和界面能力取决于宿主支持。目前我的实际使用主要在 ChatGPT 上。

用 MCP Apps 增加网页里的交互

接入之后,我继续通过 MCP Apps 增加了一些 UI,让工具结果可以在对话里以适合查看的方式呈现:

  • Terminal:查看命令及运行输出,继续获取长任务的结果。
  • File Preview:直接预览文件内容。
  • Diff:查看修改后的文件,需要时切换前后差异,多文件之间可以选择。

这些界面服务于同一个协同过程:AI 调用工具,我在网页里看到结果,再决定怎样继续。

下图是早期的双栏差异设计稿,用来说明界面想解决的问题。

双栏差异设计稿,示意数据
双栏差异设计稿,示意数据

再增强文件修改

有了查看界面,文件修改本身也需要继续改进。我增加了批量编辑预检、共享路径锁、调用级快照,以及逐文件的条件撤销。

比如,一次修改涉及A、B两个文件,之后A又被继续编辑。这时撤销原来那次操作,需要检查A的当前内容,避免覆盖后来的改动;B仍可以独立撤销。

批量修改会先按顺序在内存中预检。不同路径实际指向同一个文件时,也使用同一把路径锁。界面默认展示修改后的内容,需要时再看差异、选择文件和撤销。

我还增加了原文件返回,便于网页 AI 接收本地图片、PDF 等材料,与文本读取配合使用。

继续与本地上下文配合

和本地 Agent 上下文系统配合后,网页 AI 可以先读入口,了解当前项目,再按索引定位相关资料和工具。阅读讨论、开发修改、执行调试因此可以围绕同一份本地内容继续。

OpenAI 隧道和 Desktop Commander 的基础能力来自上游。我的工作集中在接入、日常运行管理、MCP Apps 界面,以及按自己的使用需要增强文件操作。这个定制分支也在持续使用和改进。