mcptoon
MCP协议CLI客户端,Token消耗降低99.87%,零依赖设计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP协议CLI客户端,Token消耗降低99.87%,零依赖设计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你用过 Claude Code 或者 Cursor 吗?当它们连接了多个 MCP 服务器之后,第一次启动时总是特别慢——你有没有想过为什么?
答案藏在一个被大多数人忽视的细节里:每一次 MCP 工具调用之前,AI 必须先把这些工具的完整"说明书"(JSON Schema)全部加载到上下文窗口里。一个普通的 MCP 服务器包含 10-20 个工具,每个工具的 schema 少则几百字节,多则几 KB。10 个服务器,就是 50,000 到 100,000 个 Token。这意味着你花大价钱买来的 128K 上下文窗口,还没开始干活就先被"说明书"吃掉了 40% 到 80%。
而当你配置了 100 个 MCP 服务器呢?350,000+ Token,上下文窗口直接爆掉。所以很多用户的解决方案是:不用的时候就关掉服务器,要用的时候再重启——听起来像个笑话,但这就是 2024 年大多数 MCP 用户的日常。
mcptoon 的作者 cxh 显然也被这个问题折磨得不轻。2025 年他决定做点什么,目标是:让 MCP 工具的 schema 永远不进上下文窗口,同时保留所有工具的调用能力。
mcptoon 的思路极其聪明但又出奇简单。它本质上是一个命令行代理:AI 仍然通过 MCP 协议与工具通信,但通信过程被 mcptoon 接管了。
工作原理是这样的:
mcptoon add 命令添加 MCP 服务器(支持 npm/pip/HTTP 三种来源),服务器配置保存在本地,schema 不会发给 AImcptoon call <server> <tool> <params> 命令这个设计的关键在于:它不需要修改任何 AI 客户端的代码。Claude Code、Cursor、Codex,随便哪个——只要它能执行 shell 命令,就能用 mcptoon。
除了把 schema 隔离在上下文之外,mcptoon 还在输出端做了优化:它自研了一种叫 TOON(Token-Oriented Object Notation) 的数据格式,用于替代 JSON 序列化工具结果。
TOON 的核心思路是利用 BPE 分词器的特性来节省 Token。比如 JSON 中的 {"name": "search", "count": 3},在 cl100k_base 分词器下需要消耗若干个 Token;而 TOON 格式的等效表达 name: search\ncount: 3 因为移除了引号、花括号和逗号,Token 消耗显著降低。
根据项目 benchmark,在 255 个工具同时加载的场景下:
--compact 模式:仅需 117 个 Token(节省 99.87%)TOON 格式还支持 CSV 风格的数据压缩——当数组中所有对象字段相同时,用表头加行的方式替代 JSON 数组,进一步压缩体积。
mcptoon 另外一个让人印象深刻的设计是 Zero Dependencies。整个 CLI 打包后只有约 250KB,不依赖任何第三方 Python 库。这个数字在当今动不动就需要 pip install 一堆依赖的生态里,几乎像个异类。
作者在 devto-zero-deps.md 中详细解释了为什么坚持零依赖:隐私、安全、可移植性,以及——最重要的——你不需要信任任何第三方代码。当你的 AI agent 执行外部命令时,依赖越少,攻击面越小。
mcptoon 还内置了三层安全防护:
mcptoon 的上手流程非常顺畅,全程不需要碰任何 JSON 配置文件:
# 安装(约 250KB,零依赖)
pip install mcptoon
# 添加一个 MCP 服务器(支持 npx / pip / HTTP)
mcptoon add fetch --stdio npx -y @modelcontextprotocol/server-fetch
# 查看所有已添加的工具(255 工具仅消耗 117 Token)
mcptoon manifest --compact
# 调用工具(结果比 JSON 小 30-93%)
mcptoon call fetch fetch '{"url":"https://example.com"}' --toon
mcptoon quickstart 命令更是一步到位:自动发现系统上已有的 MCP 服务器,一键配置,并列出可用工具。
mcptoon 的定位是"MCP 工具管理器",但它并不解决 MCP 的所有问题:
它不提供图形界面:所有交互都在终端完成,对于习惯 GUI 的用户有门槛。
Schema 隔离有代价:AI 无法通过阅读 schema 来理解工具的能力边界,模型必须"盲调用"。虽然 mcptoon 通过 --compact 模式提供了极简的工具列表,但对于复杂工具链的场景,这种信息缺失可能影响调用准确性。
TOON 格式的生态接受度:TOON 是 mcptoon 主导的格式,AI 模型需要额外学习解析规则。JSON 虽然 Token 效率低,但胜在通用性——几乎所有 LLM 都原生理解 JSON。
Lazy-load 并非银弹:虽然 mcptoon 实现了"0 服务器常驻直到调用",但每次工具调用都涉及进程启动,对于高频短调用场景(如循环调用 1000 次),冷启动开销不可忽视。
mcptoon 出现在 2025 年并不是偶然。这正值 AI Agent 热潮,大量开发者在尝试构建"万能助手"——一个 Agent 连接几十个工具是常态,Token 消耗随之爆炸。
行业里出现了几种不同的解法:
mcptoon 属于第三类,它的独特价值在于架构层面的解法:不是压缩 schema,而是彻底不让它进上下文。这个思路干净利落,也让它成为了 Token 效率优化方向上最激进的选手。
从增长曲线来看,MCP 协议本身在 2025 年正处于爆发期(GitHub 上 MCP 相关项目数量同比增长超过 300%),而 mcptoon 作为这个生态里的"省钱工具",正好卡在了一个需求明确的细分市场。随着 AI Agent 部署规模扩大 Token 成本压力上升,这类工具的价值会越来越凸显。