
每接一个 MCP 服务器,Claude Code 就要把这台服务器上所有工具的描述塞进上下文,工具一多,开局还没说话就先烧掉几万 token。Claude Code 有个叫工具搜索(tool search)的懒加载机制:工具定义先不加载,等任务真需要时再取。AI Parabellum 在 11 月 13 日实测了一回:Claude Code v2.1.322、macOS,接了 3 台不用登录的真实服务器——Apollo GraphQL、Compiler Explorer、Microsoft Learn 文档,共 58 个工具,开着和关掉工具搜索各跑一遍,用 /context 看开局花了多少 token。
结果很直观:开着工具搜索,会话开局 32k token;关掉,同样的配置开局 94.7k token,差了 62.7k。其中 MCP 工具本身占 32.4k,Claude Code 自己的内置工具也被推迟加载,又省了约 30.5k。真正调用工具时也只加载用到的那一个定义——实测里 Claude 从 58 个工具中找到 godbolt 的查指令工具,只花了 75 token。不过要注意:工具搜索只省定义的钱,不省返回结果的钱,一次调用返回的语言列表就让消息涨了 15.9k token。
这功能默认就是开着的,不用特意去开。想自己调,用环境变量 ENABLE_TOOL_SEARCH:false 是全部提前加载,auto 是工具总量不到上下文 10% 时提前加载,auto:N 可以自己定百分比。实测提醒:窗口是 100 万 token 时,auto 反而把 58 个工具全加载了,因为总量只占约 3%,没到 10% 的线。某个小服务器想常驻、每次都免搜索,在配置里给它加 “alwaysLoad”: true 就行。检查自己现在的状态:进会话跑 /context,MCP tools 一行写着 loaded on-demand 就是懒加载在工作。相关阅读:AntV Chart MCP 实测、Claude Code 多任务并行实测。
来源:AI Parabellum,原文


没有回复内容