Claude Code 中的 MCP 工具速度提升 10 倍

BBetter Stack
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00Closco 团队刚刚修复了 MCP 最大的问题,
00:00:03他们添加了工具搜索功能,
00:00:05通过在使用工具前先搜索工具名称,
00:00:07而不是将所有可用工具预加载到上下文中,
00:00:10从而将上下文减少了高达 95%。要知道,
00:00:13预加载可能会占用数万个 token,
00:00:15甚至在你写第一个提示词之前就被消耗掉了。
00:00:18但为什么以前不是这样工作的呢?
00:00:21他们是从 Cloudflare 那里偷来的这个技术吗?
00:00:24点击订阅,让我们深入了解一下。
00:00:26MCP 服务器无处不在,
00:00:28有 GitHub 的、
00:00:29Docker 的、
00:00:30Notion 的,
00:00:31甚至还有一个 Better Stack 的,
00:00:34我听说它非常好用。
00:00:35随着人们在代码之外的所有事情上都使用 Claude Code 和大语言模型,看来 MCP 短期内不会消失。
00:00:43但它也有自己的问题:命名冲突、
00:00:46命令注入,
00:00:46以及最大的问题——token 效率低下,
00:00:50因为来自已连接服务器的所有工具通常都会被预加载到模型的上下文窗口中,
00:00:55以便让模型获得完整的可见性。
00:00:57包括工具名称、
00:00:58工具描述、
00:00:59完整的 JSON 模式文档(其中包含可选和必需参数、
00:01:03它们的类型、
00:01:04各种约束条件),
00:01:06基本上是大量数据。
00:01:07Redis 团队使用了来自四个不同服务器的 167 个工具,
00:01:11这在编写提示词之前就占用了超过 60,
00:01:14000 个 token。
00:01:15几乎占据了 Opus 20 万 token 上下文窗口的一半,而且这还不包括技能和插件。
00:01:21所以如果你有很多服务器,可能会占用相当多的 token。
00:01:25是的,
00:01:26我知道市面上有一些模型,
00:01:27比如 Gemini,
00:01:29拥有 100 万 token 的窗口,
00:01:31但模型往往会随着你向上下文中添加的内容越多而表现越差。
00:01:35那么解决这个问题的最佳方法是什么呢?
00:01:37我在网上看到了两种流行的路径:程序化方法,
00:01:39也就是 Cloudflare 所采用的方法,
00:01:42以及搜索方法,
00:01:43也就是 Claude Code 团队所采用的方法。
00:01:46我稍后会谈谈程序化方法,但首先,让我们来谈谈搜索流程,它的工作原理是这样的。
00:01:53首先,Claude 会检查预加载的 MCP 工具是否超过上下文的 10%。
00:01:59也就是说,如果上下文窗口是 20 万 token,那就是 2 万 token。
00:02:04如果没有超过,则不会发生任何变化,模型会正常使用 MCP 工具。
00:02:10但如果超过了,Claude 就会使用自然语言动态发现正确的工具,并根据提示词加载三到五个最相关的工具。
00:02:22它只会将这些工具完全加载到上下文中,供模型正常使用。
00:02:27这实际上是他们在 GitHub 上被请求最多的功能,
00:02:31它的工作方式类似于 AgentSkills,
00:02:35后者只将技能名称和描述加载到上下文中,
00:02:38当它发现一个它认为相关的技能或提示词中提到的技能时,
00:02:42就会将该特定技能的所有内容加载到上下文窗口中。
00:02:46简而言之,就是渐进式披露。
00:02:47Anthropic 和 Cursor 在对 MCP 工具使用这种方法时都看到了巨大的好处。
00:02:53但程序化方法又如何呢?
00:02:55这种方法是通过让模型通过代码来编排工具,而不是进行 API 调用。
00:03:01因此,
00:03:01对于这三个需要根据前一个响应依次工作的工具,
00:03:05Claude 可以编写一个 Python 脚本来完成所有这些编排,
00:03:11而不是进行单独的 API 工具调用,
00:03:14然后执行代码并将结果呈现给模型。
00:03:16Cloudflare 更进一步,
00:03:19让模型为所有可用工具编写 TypeScript 定义,
00:03:23然后在沙箱(通常是 Worker)中运行代码。
00:03:27Claude Code 团队实际上尝试过程序化方法,
00:03:31但发现搜索方法效果更好,
00:03:33考虑到 Claude 非常擅长编写代码,
00:03:36我发现这真的很难相信。
00:03:38而且,
00:03:38Vercel 发布的 Agent Browser CLI 无头 Chromium 工具在 Claude Code 中运行得非常好,
00:03:47我相信如果你能用类似 MCPorter 这样的工具把所有 MCP 工具转换成 CLI 命令,
00:03:54模型运行特定工具的 CLI 命令会比把东西加载到上下文中要简单得多,
00:03:59效率也更高,
00:04:00不过这只是我个人的看法。
00:04:01总的来说,我很高兴 MCP 服务器的问题正在被关注和解决,这也许能说服我安装不止一个服务器。

Key Takeaway

Claude Code 团队通过引入工具搜索功能解决了 MCP 最大的 token 效率问题,在工具超过上下文 10% 时动态加载相关工具,将上下文使用量减少高达 95%,显著提升了多服务器场景下的性能表现。

Highlights

Claude Code 团队通过工具搜索功能将 MCP 上下文使用量减少了高达 95%

传统 MCP 预加载方式会在编写提示词前消耗数万个 token,Redis 团队的 167 个工具占用了超过 6 万 token

当 MCP 工具超过上下文 10% 时,Claude 会动态加载 3-5 个最相关的工具而非全部预加载

解决 token 效率问题有两种方法:搜索方法(Claude Code 采用)和程序化方法(Cloudflare 采用)

程序化方法让模型通过编写代码来编排工具,而不是进行 API 调用,但 Claude Code 团队发现搜索方法效果更好

MCP 面临的主要问题包括命名冲突、命令注入和 token 效率低下

新的工具搜索功能采用渐进式披露原则,类似于 AgentSkills 的工作方式

Timeline

工具搜索功能的突破性改进

Claude Code 团队修复了 MCP(模型上下文协议)最大的问题,推出了工具搜索功能。新功能通过在使用工具前先搜索工具名称,而不是将所有可用工具预加载到上下文中,从而将上下文使用量减少了高达 95%。传统预加载方式可能会占用数万个 token,甚至在用户编写第一个提示词之前就被消耗掉。这个改进解决了困扰 MCP 已久的 token 效率问题,引发了关于技术来源和实现方式的讨论。

MCP 服务器的普及与核心问题

MCP 服务器已经被广泛应用,包括 GitHub、Docker、Notion 和 Better Stack 等各种平台的集成。随着 Claude Code 和大语言模型在编程之外的应用越来越广泛,MCP 短期内不会消失。然而 MCP 也面临诸多问题:命名冲突、命令注入,以及最严重的 token 效率低下问题。传统方式会将所有已连接服务器的工具完整预加载到模型上下文中,包括工具名称、描述、完整的 JSON 模式文档(参数、类型、约束条件)等大量数据。Redis 团队使用的 167 个工具(来自四个不同服务器)在编写提示词前就占用了超过 6 万个 token,几乎占据了 Opus 20 万 token 上下文窗口的一半,这还不包括技能和插件的消耗。

上下文窗口的局限性与解决方案

尽管市面上有像 Gemini 这样拥有 100 万 token 窗口的模型,但模型的表现往往会随着上下文中添加的内容越多而越差。因此需要寻找更好的解决方案来处理 token 效率问题。目前网上流行两种主要方法:程序化方法(Cloudflare 采用)和搜索方法(Claude Code 团队采用)。这两种方法代表了不同的技术路径,各有优劣,为解决 MCP 的 token 消耗问题提供了不同的思路。接下来的内容将详细探讨这两种方法的工作原理和实际效果。

搜索方法的工作原理详解

搜索方法的工作流程如下:首先,Claude 会检查预加载的 MCP 工具是否超过上下文的 10%(对于 20 万 token 的窗口,即 2 万 token)。如果没有超过,则不会发生任何变化,模型正常使用 MCP 工具。但如果超过了这个阈值,Claude 就会使用自然语言动态发现正确的工具,并根据提示词加载 3 到 5 个最相关的工具,只将这些工具完全加载到上下文中供模型使用。这实际上是 Claude Code 在 GitHub 上被请求最多的功能,其工作方式类似于 AgentSkills——只将技能名称和描述加载到上下文中,当发现相关技能或提示词中提到的技能时,才将该特定技能的所有内容加载到上下文窗口中。这种方法本质上是渐进式披露(progressive disclosure)的应用,Anthropic 和 Cursor 在使用这种方法时都看到了巨大的好处。

程序化方法的替代方案

程序化方法采用完全不同的思路,通过让模型编写代码来编排工具,而不是进行 API 调用。对于三个需要根据前一个响应依次工作的工具,Claude 可以编写一个 Python 脚本来完成所有编排工作,而不是进行单独的 API 工具调用,然后执行代码并将结果呈现给模型。Cloudflare 更进一步,让模型为所有可用工具编写 TypeScript 定义,然后在沙箱(通常是 Worker)中运行代码。有趣的是,Claude Code 团队实际上尝试过程序化方法,但发现搜索方法效果更好。考虑到 Claude 在编写代码方面的卓越表现,这个结论确实令人意外。

CLI 工具转换的潜力与总结

Vercel 发布的 Agent Browser CLI 无头 Chromium 工具在 Claude Code 中运行得非常好,这引发了一个想法:如果能用类似 MCPorter 这样的工具把所有 MCP 工具转换成 CLI 命令,模型运行特定工具的 CLI 命令会比把东西加载到上下文中要简单得多,效率也更高。不过这只是个人观点,尚未得到验证。总的来说,MCP 服务器的 token 效率问题正在被关注和解决,这些改进也许能说服更多开发者安装不止一个 MCP 服务器,推动 MCP 生态系统的进一步发展。新的工具搜索功能标志着 MCP 技术向更高效、更实用的方向迈进了重要一步。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video