【免费下载链接】coding-tools-mcpGive any AI agent the ability to code项目地址https://gitcode.com/gh_mirrors/co/coding-tools-mcp点击查看免费下载coding-tools-mcp 是一个让任何 AI 聊天客户端都能安全读写代码仓库的 MCP 编程运行时。相比同类工具,它最独特的设计是「为上下文窗口精打细算」:每一次工具结果在返回给模型之前,都会经过摘要、分页与截断三重处理。官方在确定性 dogfood 基准上实测,序列化结果字节相比上一版本下降了37%,而任务完成率保持不变。下面拆解这套设计哲学的三个核心原则。上下文窗口正在被工具结果悄悄吃满先理解问题所在:AI agent 的每轮对话都在消耗上下文窗口,而工具调用结果是消耗大户。读一个大文件,可能一次性塞进几万行;跑一次pytest -v,输出动辄上千行;git log、构建日志、依赖树……每一轮都在叠加。上下文被噪音挤掉之后,模型会开始失忆——忘掉了任务目标、之前的约束,回答质量下降,token 费用也同步上涨。更隐蔽的是:这些浪费的字节,大部分是重复传输的(比如把完整 JSON 再镜像一份给模型看)或模型根本用不到的(比如一屏之外的日志)。coding-tools-mcp 的回答是:与其事后压缩,不如在设计上就让结果小而准。设计原则一:摘要优先,模型只读它需要的这个项目的每个工具返回都拆成两层(见 docs/tools-and-schemas.md):层给谁用形态content文本模型按工具定制的摘要,硬上限 16 KiBstructuredContent程序/客户端完整结构化数据,不做冗余镜像关键点在于:content不是 JSON 的镜像,而是每个工具单独设计的人话版摘要(渲染逻辑集中在 tool_results.py):read_file:返回Showing lines 1-2000 of 5832加实际内容,并附带revision版本号,模型无需重复读全文就能定位;exec_command:Status: exited | exit code 0 | 120 ms——决策关键字段(状态、退出码、耗时)前置,模型不用再从输出里猜成功与否;apply_patch:只回一句Patch applied to 3 files (12 -4),外加每个受影响文件的 revision,而不是把整份 diff 再发一遍;错误信息:带Retryable: yes/no和修复建议,避免模型反复重试一个注定失败的调用;view_image:图片 base64 在整个结果中只出现一次,结构化元数据里不再重复。一句话:重复传输的 JSON、diff、base64,一分钱上下文都不花。设计原则二:分页,让长内容按需续读截断不等于丢失。coding-tools-mcp 的每个被截断的结果,都附带一个下一页的现成调用参数,模型可以像翻书一样继续读:文件读到底了吗?结果里直接给出continue with read_file(path..., start_line4001)(见 tool_results.py);命令输出被截断?用返回的output_ref按字节偏移分页:read_output(output_refcommand:abc:stdout, offset...);搜索结果过多?返回… showing 50 of 327 matches; narrow the query or raise max_results,同时告诉模型收窄查询或提高上限两条路(见 tool_results.py);交互命令默认只等 10 秒就交还控制权,长任务带着command_id继续跑,模型用write_stdin跨轮次轮询,不会为了盯着看而空转上下文。分页的本质是把一次性倾倒变成取多少给多少,上下文窗口里永远只有当前这一页。设计原则三:截断是最后一道防线,且永不失控前两层依赖工具自觉,第三层是制度保障——双级上限,外加一道全局安全天花板:单次调用上限:文本输出默认按「2000 行 / 50 KB」截断(见 textutils.py),行、字节两个维度谁先到就按谁截,并如实报告truncated_by: lines/bytes;保头保尾策略:命令流保留最早的头段加滚动更新的尾部,中间超预算的字节被淘汰,并通过evicted_gap_bytes、omitted_bytes元数据如实报告丢失了多少,不假装数据完整(见 processes.py);全局安全天花板:任何工具发给模型的文本都有约 2 MiB 的兜底上限(见 tool_results.py),作为防御纵深存在——哪怕某个条目(比如一整行超长 minified 代码)意外巨大,也不会击穿窗口。配合 docs/tools-and-schemas.md 的建议:预期输出超预算时,把日志重定向到文件,再用read_file/search_text分页读——把流式盯梢换成检索式阅读。用数据说话:结果字节下降 37%这不是拍脑袋的优化,项目用确定性 dogfood 基准(同一 runner、同一任务集、同一机器,各跑 5 次)验证了效果(见 reports/benchmark/dogfood-v0.1-v0.2.md):指标0.1.70.2.0变化任务完成率100%100%0.0%工具调用次数18180.0%结果字节(中位)18,89811,853-37.28%端到端耗时(中位)1876 ms1881 ms0.30%结论很干净:任务没变少一步、没变慢一秒,模型每轮要吞的结果字节少了 37%。这正是省上下文窗口最直接的证据。三个原则一张表原则做什么对上下文窗口的收益摘要模型文本与完整 JSON 分离,按工具定制不重复传输 JSON / diff / base64分页每个截断处附带下一页参数长文件、长输出按需续读截断行/字节双上限 全局安全天花板任何单次结果都不会失控如何开始使用省上下文的优化是默认开启的,无需任何额外配置。一行命令即可启动,并接入 Claude Desktop、Cursor、VS Code 等任何 MCP 客户端(完整配置见 docs/quickstart.md 与 docs/mcp-client-config.md):uvx coding-tools-mcp --stdio --workspace /path/to/repo接入后对它说一句跑一下测试,把第一个失败修了——你会发现它读文件、打补丁、跑测试时,上下文窗口始终清爽。✨延伸阅读工具清单与结果信封规范:docs/tools-and-schemas.md运行时契约(规范性文档):docs/runtime-contract-v0.3.md结果渲染实现:coding_tools_mcp/tool_results.py文本截断实现:coding_tools_mcp/textutils.py已知限制(输出保留策略等):docs/limitations.md基准报告总览:reports/benchmark/赞分享【免费下载链接】coding-tools-mcpGive any AI agent the ability to code项目地址https://gitcode.com/gh_mirrors/co/coding-tools-mcp点击查看免费下载相关推荐Sandcastle 用量上报设计为什么只暴露原始 Token 计数而非上下文窗口百分比Sandcastle 用量上报设计为什么只暴露原始 Token 计数而非上下文窗口百分比 IterationResult.usage 是 Sandcastle为什么数据科学项目需要标准化结构Cookiecutter Data ScienceCCDS的设计哲学与实践解析为什么数据科学项目需要标准化结构Cookiecutter Data ScienceCCDS的设计哲学与实践解析 数据科学代码的质量归根结底只有两个词开发工具CLIgh_mirrors/to/tools代码格式化哲学为什么一致性如此重要gh_mirrors/to/tools代码格式化哲学为什么一致性如此重要 在现代软件开发中代码格式化往往被视为一种锦上添花的工作而非核心需求。然而对开发工具Lint格式化前端构建编译器代码质量编辑器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考