Coding Tools MCP
Coding Tools MCP 是一个 Rust + Tauri 2 桌面应用。选择项目目录并启动服务后,AI Agent 就能通过 MCP 读取文件、修改代码、运行命令和测试、查看 Git 状态,并把关键进度保存为项目内的历史会话。它更接近“AI 打开一个会记住开发进度的 IDE 工作区”;普通开发工具不要求先创建 Task,历史会话则负责在新对话中恢复上下文。

一个桌面端同时管理工作区、MCP 服务、连接信息与会话恢复提示词。
30 秒看懂怎么用
下载安装桌面端
→ 添加项目目录
→ 启动 MCP 和公网隧道
→ 复制“公网 MCP 地址”
→ ChatGPT 开启开发人员模式
→ 新建 MCP 插件并粘贴地址
→ 完成授权,在新对话中开始开发第一次使用只需要记住两件事:桌面端负责把项目变成 MCP 工作区,ChatGPT 负责通过公网 /mcp 地址连接它。
五分钟开始使用
1. 安装桌面客户端与浏览器扩展
打开 Releases 并下载对应安装包:
系统 / 平台 | 安装包 / 产物 | 用途 |
Windows 10/11 x64 |
| 桌面端安装包 |
macOS Apple Silicon |
| 桌面端安装包 |
Chrome / Edge 浏览器 |
| ChatGPT Turn Observer 伴生浏览器扩展 |
macOS 安装包目前未签名。如果系统阻止首次打开,请在“系统设置 → 隐私与安全性”中确认打开。
浏览器扩展安装方式:下载 chatgpt-turn-observer.zip 并解压,打开 Chrome / Edge 的 chrome://extensions/ 开启“开发者模式”,点击“加载已解压的扩展程序”并选择解压目录即可。
2. 添加项目工作区
点击左侧的“添加工作区”。
选择项目根目录。
设置工作区名称、MCP 端口和认证方式。
保存后,工作区会长期保留在左侧列表中。
3. 配置公网隧道
如果 AI 客户端不在本机,需要把本地 MCP 暴露为 HTTPS 地址:
在“软件管理”中安装或识别
frpc/cloudflared。在“FRP 配置”中保存服务器、端口和 Token,或在工作区选择 Cloudflare。
每个工作区填写独立子域名。应用会统一管理 FRP 进程和多条代理线路。

FRP 服务器配置集中保存,各工作区只需选择配置并填写自己的子域名。
如果还没有可用的 FRPS 服务端,可以参考:FRPS 服务端安装教程(微信公众号)。安装完成后,把服务端地址、端口和 Token 填入客户端的“FRP 配置”即可。
4. 启动 MCP
进入工作区并点击 MCP 的“启动”。客户端会显示:
本地 MCP 地址,例如
http://127.0.0.1:28766/mcp;公网 HTTPS MCP 地址;
ChatGPT 连接所需的认证信息;
实时日志和健康检查结果。

启动后可以直接检查本地与公网端点、OAuth 元数据和 MCP 受保护资源:

健康检查会逐项显示连接和认证元数据是否可用。
遇到连接问题时,无需离开桌面端即可查看最近的 MCP 请求日志:

日志可快速确认工具列表、历史初始化和检查点调用是否真正到达服务端。
5. 连接 AI 客户端
支持 MCP 的客户端使用界面中的公网 MCP URL。使用 OAuth 时,客户端会通过服务端元数据进入授权流程;授权口令、Client ID 和 Secret 均可在桌面端集中生成和管理。当前版本使用预配置 OAuth 客户端,创建 ChatGPT 插件时应选择静态/手动 OAuth 凭据,不需要选择 CIMD。
首次连接建议先调用历史初始化,再检查工作区:
history_session_bootstrap
server_info
get_default_cwd
git_status
check_exec_environment这样 Agent 不需要依赖聊天上下文猜测当前项目、工作目录和执行能力。
ChatGPT 的两种接入方式
方式 | 适合场景 | 在客户端中使用什么 |
MCP Connector | ChatGPT 直接使用文件、命令和 Git 工具 | 工作区的公网 |
GPT Actions | 在自定义 GPT 中导入 OpenAPI 工具 | Actions 面板中的 |
MCP Connector
配置前请先确认:
工作区的 MCP 服务和公网隧道均处于运行状态。
“健康检查”中的公网 MCP 检查通过;如果使用 OAuth,再确认 OAuth 受保护资源和授权元数据检查通过。
从桌面端“GPT 配置”卡片复制“公网 MCP 地址”;如果使用 OAuth,同时准备 OAuth Client ID、OAuth Client Secret 和授权口令。
ChatGPT 必须使用公网 HTTPS
/mcp地址,不能使用http://127.0.0.1:28766/mcp之类的本地地址。ChatGPT 的菜单名称可能随版本和语言设置略有变化。
1. 开启 ChatGPT 开发人员模式
打开 ChatGPT 设置,进入“账户安全与登录”,开启“开发人员模式”。该开关允许添加未经验证的 MCP 连接器。

开发人员模式具有较高权限,只应连接你自己部署或明确可信的 MCP 服务。
2. 创建 MCP 插件
在 ChatGPT 左侧进入“插件”,点击右上角的 + 新建插件,然后选择 MCP(测试版)并填写:
ChatGPT 字段 | 填写内容 |
名称 | 自定义一个容易识别的名称,例如 |
描述 | 简要说明它连接的项目或用途 |
连接 | 粘贴桌面端“GPT 配置”中的公网 MCP 地址,URL 应以 |
身份验证 | 与桌面端保持一致;截图以 OAuth 为例 |

使用 OAuth 时,展开“高级 OAuth 设置”,选择静态/手动 OAuth 凭据并填写桌面端提供的 Client ID 和 Client Secret,不需要选择 CIMD。保存或连接后,ChatGPT 会打开授权页面;输入桌面端“GPT 配置”卡片中的授权口令完成首次授权。
Client Secret、授权口令和 Bearer Token 都属于敏感信息,不要粘贴到对话、Issue 或公开截图中。若桌面端使用 Bearer 或不启用认证,请在 ChatGPT 中选择当前界面提供的对应认证方式。
3. 验证连接
创建一个启用了该插件的新对话,并发送:
请使用 Coding Tools MCP 调用 server_info、get_default_cwd 和 git_status,
告诉我当前连接的工作区、默认目录和 Git 状态。如果能够返回当前项目的信息,说明“桌面端 → 公网隧道 → OAuth → ChatGPT → MCP 工具”链路已经打通。首次正式开发时,再调用 history_session_bootstrap 初始化或恢复项目历史。
如果 ChatGPT 仍显示旧的工具列表,请断开并重新连接插件,或创建一个新对话后再次验证。
常见问题
现象 | 优先检查 |
ChatGPT 无法连接 | 是否使用公网 HTTPS |
OAuth 授权失败 | Client ID、Client Secret 和授权口令是否来自同一个工作区;OAuth 元数据检查是否通过 |
看不到新增工具 | 断开并重新连接插件,然后创建一个新对话 |
工具调用失败 | 打开桌面端“日志”和“健康检查”,确认请求是否到达 MCP 服务 |
GPT Actions
启动工作区的 Actions 服务。
复制 Actions 面板中的 OpenAPI URL。
在 GPT 编辑器的 Actions 页面导入该 URL。
根据桌面端配置选择 None、API Key 或 OAuth。
MCP 和 Actions 可以为同一个工作区同时运行,也可以分别使用不同端口和子域名。
为什么需要它
面向真实开发:文件、命令、Git、测试和长时间运行的进程都在同一个 Workspace 中。
跨会话持续开发:新对话可以读取全部历史摘要和最近一次完整交接,不必反复向 AI 解释项目背景和当前进度。
进度可追溯:每轮任务完成后可保存结构化检查点,决策、修改、测试结果和下一步都留在项目目录中。
多工作区管理:一个桌面客户端可以保存多个项目,并管理各自的 MCP、Actions 和公网地址。
连接 ChatGPT 更直接:内置 Streamable HTTP、OAuth、Bearer Token、OpenAPI、FRP 和 Cloudflare 隧道。
默认工具面保持简单:稳定的核心工具默认可用,高级 Harness 能力按需开启。
让项目记住每次对话
普通聊天记录适合回看交流内容,但不适合作为长期开发交接。Coding Tools MCP 将会话进度写入当前项目的 docs/history-session/,让上下文跟随项目,而不是困在某一个聊天窗口里。

复制完整提示词到新会话,即可初始化或恢复历史;每轮任务完成后再保存检查点。
它提供三个互相配合的历史工具:
工具 | 作用 |
| 新对话开始时初始化或恢复项目会话;新文件会固化前序会话的压缩摘要,并返回稳定的 |
| 每轮任务完成后按 bootstrap 返回的稳定目标保存结构化进度;目标不一致时拒绝写入,避免串到其他历史文件 |
| 检查历史编号、文件和会话映射;必要时重建派生索引,不删除已有历史 |
典型效果:
对话 1:分析项目 → 修改代码 → 运行测试 → 保存检查点
↓
对话 2:读取历史摘要和最新交接 → 从上次进度继续 → 保存新检查点历史文件使用可读的 Markdown 格式,可以随项目备份或纳入 Git,也方便开发者直接审阅和修订。每个新文件顶部都带有有长度上限的“继承的历史摘要”,旧摘要不会递归复制;检查点采用幂等写入,并要求返回 ok=true 且会话目标一致后才确认保存成功。
历史持久化由 AI 调用 MCP 工具完成,并非桌面端在后台录制聊天内容。若客户端未触发工具调用,服务端无法凭空感知新的对话或任务进度。
Agent 可以做什么
默认 core profile 提供一组稳定、可组合的开发工具:
类别 | 主要工具 |
文件读取 |
|
文件修改 |
|
命令执行 |
|
Git |
|
环境 |
|
历史会话 |
|
外部 MCP | 聚合外部 stdio MCP(如 |
外部 stdio MCP 聚合 (代码语义检索 fast-context)
Coding Tools MCP 负责启动和管理本机已有的 stdio MCP 服务,将其工具以命名空间形式 ({server_name}__{tool_name}) 合并暴露给网页端 Agent。应用不会自动下载或安装任何第三方 MCP。
接入 fast-context-mcp 支持三种启动方式:
本地已全局安装 (默认推荐):
启动命令:
fast-context-mcp参数列表:
[]
指定本地入口文件:
启动命令:
node参数列表:
["D:/Tools/fast-context-mcp/dist/index.js"]
通过 npx 运行 (兼容方式):
启动命令:
npx参数列表:
["-y", "--prefer-offline", "fast-context-mcp@1.3.0"]注:仅在用户主动选择 npx 兼容模式且本地无缓存时,可能产生 npm 下载等待。
配置步骤:
打开工作区,在 MCP → 配置 中找到“外部 stdio MCP 聚合”。
点击 + 导入 fast-context 模板,根据本机环境选择上述对应的启动方式。
点击 测试连接(会自动检测本地命令或文件是否存在),确认无误后保存配置。
网页端 Agent 连接后将在
tools/list中看到fast-context__fast_context_search工具,即可直接进行中大型代码库的自然语言语义搜索。
Agent Turn Budget(单轮执行预算与超时保护)
ChatGPT 网页端对话存在大约 30 分钟的单轮回复超时上限。若 Agent 在单轮内长时间发散调用工具(如大量搜索代码、死循环排查),会导致整轮回复在 30 分钟时被网页端硬性中断丢弃,从而丢失当前轮次的所有代码修改与进展记录。
Coding Tools MCP 内置了 Agent Turn Budget 状态机,根据服务端单调时钟与浏览器感知事件进行分级预算约束:
0m 25m 27m 28m 28m55s+
├──────────────────┼─────────────────┼───────────────┼──────────────┤
NORMAL 阶段 WARNING 阶段 WRAP_UP 阶段 FINALIZATION HARD STOP
(全工具正常开放) (提示加快任务收尾) (禁止探索发散, (仅允许只读确认 (彻底阻断工具,
限完成修改验证) 和环境清理) 强制输出答复)0 ~ 25m (NORMAL):所有文件、代码、命令工具完全正常放行;
25m ~ 27m (WARNING):在工具调用元数据
_meta.coding-tools/agentTurnBudget中附加告警提示,引导 Agent 规划收尾;27m ~ 28m (WRAP_UP / SoftWrap):立即禁止所有探索/发散型工具(
search_text、grep、list_files等),仅允许执行最后修改(apply_patch)和安全只读验证(git_status、git_diff、验证类exec_command);28m ~ 28m55s (FINALIZATION):进入最后确认期,禁止任何修改和复杂命令,仅允许只读事实确认与资源清理;
28m55s+ (HARD STOP):彻底阻断一切后续工具调用,返回结构化强制答复指令,迫使 Agent 立即向用户提交已完成工作与交接,确保任务进度安全落盘。
当未配置扩展或缺少会话标识时,系统将自动进入工作区保守预算(WorkspaceFallback),同一工作区多次无会话调用累计计算预算,不同工作区物理隔离。
ChatGPT Turn Observer(伴生浏览器扩展)
为了提供毫米级高精度的 Turn 生命期感知,项目配套提供了开源 Chrome / Edge 伴生扩展 ChatGPT Turn Observer(位于 browser-extension/chatgpt-turn-observer)。

核心能力与优势
精准感知用户发送与生成流:
监听用户真正点击发送或新建 Turn(严格校验 user 角色与动作白名单,自动过滤复制打点、历史消息回放和翻页等非 Turn 请求);
通过流式 SSE 与 WebSocket 解析提取实际生效模型(如
o3-mini,gpt-4o,gpt-5.6等);
网页端与桌面端双向联动:
在 ChatGPT 网页端提供轻量可拖拽、可折叠的 实时状态悬浮窗 (Overlay),实时显示当前轮次计时、生效模型、本地/公网同步状态;
通过本地 HTTP / 远程公网 HTTPS Bridge 将
turn_started、turn_updated、stream_completed、turn_closed事件安全推送到桌面端 MCP 引擎;
高可靠与安全架构:
Outbox 退避重试队列:网络抖动或跨网通信异常时在队头按指数退避(500ms~10s)自动重试,保证事件单调严格有序;
工作区握手前置:在握手成功前自动挂起事件投递,避免向错误工作区投递事件;
完全 DOM 安全:密钥仅在独立扩展 Options 选项页中安全存储,绝不暴露给 ChatGPT 网页 DOM,消除页面脚本窃取风险。
典型开发过程
打开 Workspace
→ 理解项目和 Git 状态
→ 搜索并读取代码
→ 事务化应用 Patch
→ 运行命令和测试
→ 检查 diff 并提交高级 profile 还保留项目状态、操作记录等 Harness 能力,但普通文件修改和命令执行不要求先创建 Task。
权限与恢复模型
项目采用 Workspace-first 权限模型:
Workspace 内普通文件可以读取、创建、修改、删除和执行。
Workspace 外允许完整只读:
read_file、list_dir、list_files、search_text、view_image。Workspace 外写入、删除和执行会被阻止。
.git和.github不能被普通文件工具、Patch 或解释器命令破坏。Patch 在单次操作内进行预检和失败恢复;长期恢复统一使用 Git,不创建全量 Workspace Snapshot。
Windows 子进程目前仍是
policy_only执行边界,返回中的sandbox_enforced: false是真实状态。静态命令策略不能等同于完整的操作系统文件系统沙箱。
本地开发
环境要求:Node.js 20+、Rust stable,以及当前系统的 Tauri 2 prerequisites。
npm install
npm run desktop常用验证命令:
npm run check # 桌面端前端检查
npm run extension:check # 浏览器扩展类型检查
npm run extension:test # 浏览器扩展自动化测试
npm run extension:build # 浏览器扩展打包
cd src-tauri && cargo test # 运行 Rust 核心测试
cd src-tauri && cargo clippy --all-targets -- -D warningsWindows 也可以双击 dev-desktop.cmd。不要只用 npm run dev 验证桌面应用,它只启动 Vite,不会启动 Tauri 外壳。
项目结构
路径 | 作用 |
| 文件、Patch、Exec、Git 等共享工具内核 |
| MCP Streamable HTTP 服务与 Turn Budget 状态机 |
| ChatGPT Actions OpenAPI 网关 |
| FRP / Cloudflare 隧道和进程管理 |
| ChatGPT Turn Observer Chrome / Edge 伴生浏览器扩展 |
| SvelteKit 桌面界面 |
| Python 参考实现和兼容性基线 |
致谢
感谢 Linux.do 社区对项目推广与反馈的支持。
License
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZGMFX01A/coding-tools-mcp-expand'
If you have feedback or need assistance with the MCP directory API, please join our Discord server