coding-tools-mcp
让AI编程助手在你的代码库里安全读写文件和执行命令的MCP协议运行时
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让AI编程助手在你的代码库里安全读写文件和执行命令的MCP协议运行时
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你可能已经习惯了这样的场景:让 AI 助手帮你写代码,它确实写得不错,但当你想要让它实际操作你的项目——打开某个文件、改一行逻辑、跑一个测试、查看 Git 差异——它却只能说给你听,无法真正动手。Coding Tools MCP 正是来解决这个问题的:它是一个基于 MCP(Model Context Protocol)协议的本地编程工具运行时,能够将真实的本地编码能力暴露给任何支持 MCP 协议的 AI 编程工具或智能体,让 AI 从纸上谈兵进化到真枪实弹。
Coding Tools MCP 由独立开发者 xyTom 创建和维护,项目遵循 Apache-2.0 开源许可证,当前版本为 0.2.1。其核心理念是成为一个模型无关的编码智能体运行时——不绑定任何特定的 AI 模型,任何通过 MCP 协议连接的客户端(如 Cursor、Claude Code、OpenCode 等主流 AI 编程工具)都可以调用它提供的本地编码能力。 项目诞生于 2024 年中,随着 AI 编程工具的快速普及,一个核心矛盾浮现出来:AI 模型本身越来越强大,但它们与本地代码库的交互能力却始终受限于安全边界——没有好的沙箱、没有结构化的文件操作接口、没有可靠的命令执行机制。Coding Tools MCP 试图填补这个空白,提供一套标准化的、经过安全加固的本地编码工具集。
Coding Tools MCP 最大的特点是工具目录是固定的,版本 0.2 共包含 20 个精心设计的低层编码工具,分为以下几大类:
运行时上下文工具(4个):server_info(获取服务器信息)、check_exec_environment(检查执行环境)、get_default_cwd / set_default_cwd(管理工作目录)。这些工具让 AI 智能体在执行任务前能够充分了解当前的运行环境上下文,避免在错误的环境中执行错误的操作。
工作区检查工具(4个):read_file(读取文件内容)、list_dir(列出目录结构)、list_files(搜索文件)、search_text(全文搜索)。在真实项目开发中,理解代码结构往往是第一步,这些工具提供了完整的工作区探索能力。
变更工具(1个):apply_patch——这是项目中唯一的直接文件写入工具,它会分阶段写入所有文件、检查基线版本、保留文件模式/BOM/换行符,并在部分提交失败时自动回滚。这种设计比直接 edit_file 更安全,同时比发送整个文件减少了传输字节量。
进程交互工具(4个):exec_command(执行命令,默认 10 秒超时)、write_stdin / read_output(与运行中的进程交互 stdin/stdout)、kill_session(终止进程会话)。这些工具让 AI 能够在代码修改后主动验证:跑测试、构建项目、触发 linter,这些是 AI 编程工具从辅助走向实操的关键能力。
Git 操作工具(5个):git_status、git_diff、git_log、git_show、git_blame。Git 是现代代码协作的基石,AI 智能体需要能够理解当前代码状态、查看变更历史、评估修改影响,这些工具使 AI 具备完整的 Git 感知能力。
图像与权限工具(2个):request_permissions(权限请求)和 view_image(图像查看),后者可作为安装选项禁用。
整个工具集的设计哲学是最小化、原子化、稳定化:没有动态工具发现,没有配置文件,每次 MCP 协议握手时工具列表完全一致。这种确定性使得 AI 智能体在规划阶段就能准确评估自己的能力边界,避免运行时才发现缺少某个工具的尴尬。
在本地代码库上运行 AI 是一件需要谨慎的事情。Coding Tools MCP 提供了完整的安全边界设计: 三重权限模式:
safe(受限模式):命令执行受限,工作区严格隔离,适合处理来自不可信客户端的请求。trusted(信任模式):允许更多系统级操作,适合完全受控的内网环境。dangerous(危险模式):几乎无限制,仅用于完全受控的隔离测试环境。
多层隔离机制:工作区路径检查防止路径穿越,环境变量过滤只传递必要变量,进程组隔离防止子进程逃逸,输出大小限制防止日志炸弹,Linux Landlock 支持提供系统调用级别的沙箱约束。
项目还包含完整的安全边界文档(docs/security-boundary.md)和第三方安全审计报告(COMPLIANCE.md),并通过 SECURITY.md 披露了负责任的漏洞披露流程,体现了开发者对安全问题的重视。Coding Tools MCP 的部署极为灵活,提供了多种入场方式:
方式一:Docker 一键启动(推荐)
通过项目自带的 docker-compose.yml,一条命令即可启动带认证令牌的沙箱服务。Dockerfile 基于 python:3.12-slim-bookworm,多阶段构建集成了 Rust、Go、Node.js 等常见编程语言工具链,无需额外配置即可编译 Java (Maven)、C/C++、Go、Rust 等多语言项目。
方式二:pipx / uvx 免安装运行:uvx coding-tools-mcp --workspace /path/to/repo,无需安装,直接运行最新版本。
方式三:npm 启动器:npx coding-tools-mcp --stdio --workspace /path/to/repo,适合 Node.js 生态用户。
方式四:安装脚本一键安装:支持 --start 直接启动、--tunnel cloudflared 暴露到公网等高级选项,满足远程协作需求。
传输协议:支持 stdio(适合本地 Claude Code、Cursor 等)和 Streamable HTTP(适合远程部署),HTTP 模式下每个会话有独立的运行时实例,确保状态隔离。
项目包含两套自动化测试体系:
合规性狗粮测试(Compliance Dogfood):在项目自身的 CI/CD 流程中完整使用 coding-tools-mcp 执行仓库搜索、文件读写、补丁应用、测试运行、Git 检查、PTY 交互等全部操作,当前状态为 PASS。这意味着工具本身是在自己的生产环境中被使用和验证的——真正的 dogfood。
SWE-bench 冒烟测试:针对 SWE-bench 数据集的轻量级回归测试,验证在真实开源项目修复任务上的表现。版本对比数据(0.1.7 vs 0.2.0)显示,0.2.0 的中位数结果字节量减少了 37.3%,体现了工具效率的显著优化。
从 pyproject.toml 可以看出项目的核心依赖极简:主依赖只有 PyJWT>=2.8,用于 MCP 协议的认证。大量语言工具链(Rust、Go、Java)通过 Dockerfile 预装,但不作为 Python 直接依赖,保持了依赖树的精简。
代码组织采用 coding_tools_mcp + mcp_desktop_client 双包结构,前者是核心 MCP 服务器,后者是 PySide6 构建的桌面图形界面。架构保持了严格的关注点分离——核心服务器不依赖 GUI,桌面客户端通过标准 MCP 协议连接。
项目还提供了 Cloudflare Workers 部署方案(cloudflare/sandbox-control/),可以在边缘节点运行轻量级的沙箱控制服务,展示了对云原生部署场景的覆盖。
trusted 模式下仍需信任 MCP 客户端不会发送恶意请求,生产环境建议配合网络隔离。Coding Tools MCP 代表了 AI 编程工具发展的一个重要方向——工具层的标准化与安全化。
在 MCP 协议出现之前,每个 AI 编程工具都要自己实现文件读写、命令执行等能力,重复造轮子且质量参差不齐。MCP 协议的出现使得工具层可以解耦:Coding Tools MCP 专注做好本地编码工具的安全、可靠、标准实现,AI 编程工具(如 Claude Code、Cursor、OpenCode)则专注模型推理和用户体验。
这种分层架构的好处是:工具可以独立迭代,安全性可以集中审计,AI 模型可以无缝切换。目前该项目已在 SWE-bench 评测中得到验证,证明了其工具质量足以应对真实开源项目的代码修复任务。随着 AI Agent 概念的持续火热,提供可靠、安全、标准接口的本地工具运行时将成为基础设施层的重要组成部分。
图1:项目作者 xyTom 的 GitHub 头像
项目仓库:https://github.com/xyTom/coding-tools-mcp | 文档:https://coding-1afcb9be.mintlify.app