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 |
|
macOS 安装包目前未签名。如果系统阻止首次打开,请在“系统设置 → 隐私与安全性”中确认打开。
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 返回的稳定目标追加结构化进度,并保存逐字的 |
| 检查历史编号、文件和会话映射;必要时重建派生索引,不删除已有历史 |
| 按确定性关键词搜索长期 Markdown 档案,返回有界的命中位置和短片段 |
| 按编号或搜索结果位置,无损、UTF-8 安全地分页读取一份原始 Markdown 档案;默认每页 |
典型效果:
对话 1:分析项目 → 修改代码 → 运行测试 → 保存检查点
↓
对话 2:读取有界当前状态 → 搜索并精读需要的旧档案 → 从上次进度继续 → 保存新检查点历史档案使用可读的 Markdown 格式,可以随项目备份或纳入 Git,也方便开发者直接审阅和修订。memory/state.json 是有界当前状态投影,memory/manifest.json 只保存位置、哈希与关键词,不复制正文;Markdown 才是长期、无损的事实来源。首次输入和每轮输入必须由 ChatGPT 作为 initial_user_input、raw_user_input 工具参数传入,服务端无法读取未传入的远程聊天文本。检查点采用幂等追加,同一 turn_id 内容变化时保留 revision 与 supersedes 证据,并要求返回 ok=true 且会话目标一致后才确认保存成功。
历史持久化由 AI 调用 MCP 工具完成,并非桌面端在后台录制聊天内容。若客户端未触发工具调用,服务端无法凭空感知新的对话或任务进度。
Agent 可以做什么
默认 core profile 提供一组稳定、可组合的开发工具:
类别 | 主要工具 |
文件读取 |
|
文件修改 |
|
命令执行 |
|
Git |
|
环境 |
|
历史会话 |
|
典型开发过程:
打开 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 build
cd src-tauri && cargo test
cd src-tauri && cargo clippy --all-targets -- -D warningsWindows 也可以双击 dev-desktop.cmd。不要只用 npm run dev 验证桌面应用,它只启动 Vite,不会启动 Tauri 外壳。
项目结构
路径 | 作用 |
| 文件、Patch、Exec、Git 等共享工具内核 |
| MCP Streamable HTTP 服务 |
| ChatGPT Actions OpenAPI 网关 |
| FRP / Cloudflare 隧道和进程管理 |
| SvelteKit 桌面界面 |
| Python 参考实现和兼容性基线 |
致谢
感谢 Linux.do 社区对项目推广与反馈的支持。