项目地址:
https://github.com/xyTom/coding-tools-mcp
简单介绍一下,这是一个给 AI / Coding Agent 用的 MCP coding runtime,把文件读写、搜索、patch、多文件修改、shell / PTY、git、workspace 权限控制这些能力统一通过 MCP 暴露出来。
Claude Desktop、Claude Code、Codex、Cursor、ChatGPT 等支持 MCP 的客户端都可以直接接。
这次 0.5.0 没有加太多新功能,主要是在处理 Agent 实际跑项目时的一些可靠性问题。
主要改动
- 新增 apply_changes
除了原来的 apply_patch,现在新增了一套基于 line + revision 的结构化修改方式。
Agent 先 read_file 获取文件 revision,再进行修改。
如果这期间文件被其他 Agent 或程序修改过,会直接返回:
REVISION_MISMATCH
避免把其他修改静默覆盖掉。
- apply_patch 做了一轮比较大的改动
现在 patch 成功以后会返回:
实际修改范围
新的文件 revision
如果失败,也会返回具体失败的 hunk、附近代码以及可能的匹配位置。
主要目的是让 Agent patch 失败以后可以根据返回信息修正,而不是继续盲目重试。
- 增加重复失败熔断
现在如果 Agent 对同一个确定性错误,用完全一样的参数连续调用,第三次会直接返回:
REPEATED_CALL_BLOCKED
实际跑 LLM 的时候经常能看到这种情况:一个工具调用失败以后,它会拿着一模一样的参数继续重试好几次。
现在这种无意义循环会直接被拦下来。
- apply_patch / apply_changes 支持 idempotency_key
主要是解决这种情况:
服务端实际上已经完成修改,但是返回结果时连接断了,客户端不知道上一次到底成功没有,只能重试。
现在同一个 idempotency_key + 相同参数再次调用时,不会重复执行修改,而是直接返回第一次的结果。
这样网络抖动、超时或者断线重连时可以安全重试。
- exec_command 默认 timeout 从 30 秒改成 300 秒
之前装依赖、build、跑测试稍微久一点,就可能因为默认 30 秒生命周期被强制结束。
现在默认改成 300 秒,Agent 也可以自己传参数修改,最大 600 秒。
目前 v0.5.0 registry 一共有 19 个 tools,默认 safe / trusted 模式暴露其中 18 个。
直接运行:
uvx coding-tools-mcp --stdio --workspace /path/to/repo
或者:
npx coding-tools-mcp --stdio --workspace /path/to/repo
这版主要不是堆工具数量,而是把 patch、并发修改、失败重试、命令生命周期这些容易让 Agent 翻车的地方重新整理了一遍。
有在折腾 MCP / Coding Agent 的可以试一下,问题和建议欢迎提 issue / PR。
一直在用,非常棒。只不过我现在用的CODING_TOOLS_MCP_TRACE=1 来强制开启日志,其实我想要的就是在打印请求的时候,可以打印出来请求的时间,这样方便通过mcp的请求时间,来知道是不是web的pro思考失败挂掉了,如果常规日志能打印一个请求时间的字段就好了