English · 中文
你装了一个 MCP 服务器,又装一个,然后装了十个。现在助手五分钟前说的话都记不住了。 问题不在模型,而在工具发现:每个工具的完整 JSON Schema,在你敲第一个字之前就已经塞给了模型。
同一批 255 个 MCP 工具。左边是完整 Schema,右边是紧凑的名字索引。用 tiktoken
cl100k_base 实测。发现成本砍掉 99.2%,而每个工具都还在。
MCP 按设计是无状态的。客户端无法预知你会用哪个工具,于是每一次请求都把所有已连接工具的 完整入参 Schema 一起发给模型。一个写得清楚点的工具,光 JSON 就 300–600 token。几十个服务器、上百个 工具乘起来,光「工具清单」这一项,就能在对话还没开始前吃掉几万 token。
这笔钱每一轮都要付。它挤占你真正的上下文窗口——代码、文档、前面的对话——而且你每加一个 服务器,它都悄悄变大。
用免费的 MCP Token 计算器 30 秒算出你自己的数字——它完全在你 浏览器里跑,不上传任何东西。
| 做法 | 效果 | 代价 |
|---|---|---|
| 删掉「用不上」的工具 | 很小,且短暂 | 丢了能力,下周又得加回来 |
| 按项目开关服务器 | 手动、易错 | 得记着重新开,容易打断流程 |
| 按名字建索引,用时再取 Schema | 砍 ~90–99% | 多一次查询,由工具自己处理 |
mcptoon 让你所有工具都保持安装,但只把一份紧凑的名字索引发给模型。当模型真的要用某个 工具时,再去取那一个工具的真实 Schema 并调用。工具一个不少,模型不再为没用到的工具付费。
pip install mcptoon mcptoon manifest # 模型看到的紧凑名字索引 mcptoon inspect <server> <tool> # 只在需要时取完整 Schema mcptoon call <server> <tool> '{...}' mcptoon usage # 实际省了多少
零依赖、纯标准库 Python,覆盖 103+ 款桌面与终端 Agent,还能用同一套索引管理你的 Agent技能。 数据不出本机。
GitHub 上看 mcptoon 算算你的 token 成本
MCP 工具数量有硬上限吗?
没有固定数字——上限是你的上下文窗口。每个工具的 Schema 每轮都计费,所以实际天花板是「多少份 Schema 塞得下、又不挤掉你真正要干的活」。
减少 MCP token 一定要删工具吗?
不用。这正是索引的意义:工具全留着,只为真正调用的那一个付 Schema 的钱。删工具是那种「下周还得 加回来」的临时办法。
Claude Code、Cursor、Codex、opencode 都能用吗?
能。mcptoon 面向 103+ 款桌面与终端 Agent,零配置安装。当前清单见 README。