Cloudflare Code Mode MCP:停止支付 100 万代币来描述您的工具
Cloudflare 通过让代理针对类型化 API 表面编写代码,将 MCP 工具定义从 117 万个令牌削减到 1K 个。 以下是该模式的工作原理以及何时使用它。
在用户输入单个字符之前,包含 49 个工具的 MCP 服务器会销毁大约 29,000 个输入令牌。 一台包含 2,500 个工具的服务器(大约是 Cloudflare 内部提供的)消耗了 117 万个工具。 那 Claude Opus 的完整输入窗口用于描述工具,而不是解决用户的问题。 每转一次,都要再次付账。 每次重试都会再次付费。 在规模上,行项目为 “工具定义”超出了“实际工作”的行项目。
2026 年 4 月 Cloudflare 发货 编码模式 MCP,一个崩溃的模式 117 万个代币足迹减少到约 1,000 个代币,减少了 99.9%。 秘诀很简单:停下来 向模型描述工具。 为模型提供一个类型化的 API 和一个沙箱,并让它编写 调用工具的代码。 以下是经典模式泄漏令牌的原因,代码模式如何修复它, 以及何时需要费心切换。
1.17M 代币问题
经典 MCP 在每次请求时发送工具定义作为系统上下文的一部分。 每个工具 包含名称、描述、输入模式,通常还包含输出模式。 一个紧凑的例子 天气查找工具如下所示:
一旦算上 JSON 结构开销,该模式就会运行大约 600 个令牌, 模型选择工具和枚举值所需的描述。 乘以 49 策划 botoi 的 MCP 服务器上的工具,每轮大约可获得 29,400 个代币。 一个10转 对话支付了 10 倍的费用,因为模型在回合和对话之间没有记忆 Orchestrator 每次都会发送整个包。 将工具数量扩展到 Cloudflare 的全部 内部 API 表面(约 2,500 个端点),每轮成本达到 117 万代币, 甚至溢出了 1M 代币 Opus 窗口。
在一次通话中计算您自己的足迹。 Botoi 的令牌计数器接受任何字符串; 喂它一个 工具模式,您将获得准确的 Anthropic 令牌计数:
代码模式 MCP 如何翻转模式
人们不会在每次调用之前读取 API 模式。 您阅读一次文档,打开编辑器,然后 编写导入函数的代码。 运行时处理调度。 代码模式为模型提供了 相同的设置。
该代理在 V8 隔离(Cloudflare 的 Workers 沙箱)内运行。 MCP 工具显示为键入的内容 导入对象上的函数。 该模型看到的是 TypeScript 类型声明,而不是 JSON 架构广播。 当用户询问“我居住的地方的空气质量如何”时,模型会写出 短节目:
// The agent writes this. The runtime compiles and executes it.
// Only the two functions it calls ever hit the wire.
import { botoi } from "@botoi/mcp";
export async function run(input: { city: string }) {
const weather = await botoi.weather.current({ city: input.city });
const air = await botoi.airQuality.check({
lat: weather.lat,
lon: weather.lon,
});
return {
city: input.city,
temp: weather.temp_c,
aqi: air.aqi,
advice: air.aqi > 100 ? "stay inside" : "go for a walk",
};
}
运行时编译该代码片段,在隔离内运行它,并且仅运行它的两个函数
实际上调用(botoi.weather.current 和 botoi.airQuality.check)
触摸网络。 该模型从未见过其他 47 个工具的架构,因为它从未见过
需要。 类型文件位于磁盘上一次并通知编译器,而不是上下文窗口。
代码模式更接近于针对 SDK 编写脚本的方式,而不是驱动表单的方式。 模型的输出是代码,运行时的工作是安全地执行代码,网络成本 映射到真实的调用而不是假设的调用。
botoi 的 49 个工具服务器上的数学
Botoi 的 MCP 服务器公开了 49 个精选工具,涵盖查找、文本、开发人员、图像和安全性 类别。 下表将典型工作负载的经典 MCP 与代码模式进行了比较: 10 轮对话,每月 10,000 次对话,Opus 输入定价。
| 公制 | 经典MCP | 编码模式 MCP |
|---|---|---|
| 每回合代币(工具说明) | 29,400 | 0(加载一次的类型文件) |
| 冷启动型-表面负载 | 0 | 约 1,000 个代币 |
| 描述中的 10 轮对话成本 | 294,000 个代币 | 1,000 个代币 |
| 主要失效模式 | 模型选择了错误的工具 | 生成的代码在运行时抛出 |
| 可调试性 | 工具调用跟踪 | 堆栈跟踪加上工具调用跟踪 |
| 最适合的用例 | <10 个工具、桌面客户端 | 50 多个工具,多步骤工作流程 |
| 增加了延迟 | 没有任何 | 10-50ms 编译 + 隔离启动 |
按照 Opus 输入费率(大约每百万代币 15 美元),经典模式的成本约为每百万代币 0.44 美元 仅工具描述标记中的 10 回合对话。 代码模式将其降低到a的分数 分。 通过每月 10,000 次对话,您可以节省约 4,400 美元并收回 29 亿美元 重要工作的背景预算标记。
在您采用任一模式之前,请立即测量您自己的服务器:
代码模式何时值得,何时不值得
代码模式不是免费的。 沙箱增加了 10 到 50 毫秒的编译和隔离启动时间 每回合。 生成的代码可能会抛出异常,这意味着您需要重试逻辑和后备路径。 调试从“模型选择了错误的工具”转变为“模型编写了错误的代码” 引用了未定义的符号。” 您的可观察性堆栈需要捕获源代码 该工具称其为已触发。
在以下情况下坚持使用经典 MCP:
- 您公开的工具少于 10 个,并且架构占用量低于 6,000 个令牌。
- 您的目标客户端是 Claude Desktop、Cursor 或 VS Code(它们只使用经典 MCP)。
- 代理循环是单次的:一条用户消息、一次工具调用、一次响应。
- 延迟预算很紧张,您不能花费 10-50 毫秒的编译开销。
在以下情况下切换到代码模式:
- 您公开了 50 个或更多工具,或者您的架构足迹超过 15,000 个令牌。
- 工作流链接 3 个以上的工具调用,因为代码模式避免了在每一跳上重新描述工具。
- 您拥有运行时(Cloudflare Agents、Mastra、LangGraph)并且可以编译代理输出。
- 人择法案最大的一行项目是“系统输入令牌”。
无需重写服务器的迁移路径
您不必选择一种模式。 大多数团队应该同时运营这两种业务,并根据能力来路由客户。 以下是避免重写 MCP 服务器的三步路径:
步骤一:测量。 获取您的 MCP 工具清单并通过令牌运行它 柜台。 如果您超过 15,000 个代币,代码模式将会带来回报。 如果您低于 6,000,请跳过 这篇文章的其余部分。
第 2 步:沿 MCP 暴露印刷表面。 您已经有一个 OpenAPI
规范(如果您运行 HTTP API)。 从中生成 TypeScript 类型(botoi 的 SDK 执行此操作;请参阅
packages/sdk-typescript)并托管结果 .d.ts 文件位于
稳定的网址。 代码模式运行时每个会话获取此文件一次并将其用作导入
目标。 您的 MCP 终端节点保持为经典客户端提供服务不变。
步骤3:按客户端路由。 Claude Desktop、Cursor 和 VS Code 持续火爆
/mcp 并接收经典工具模式。 代理框架(Cloudflare Agents、
Mastra、LangGraph)创下新纪录 /code-mode 返回类型定义的路由和
运行时句柄。 相同的服务器,相同的业务逻辑,两种协议。
Botoi 今天推出了这两种形状。 经典的 MCP 端点位于 api.botoi.com/mcp 为桌面客户端提供 49 个带有完整 JSON 架构的精选工具。 类型化的 SDK 位于 api.botoi.com/docs 为代理框架提供单文件导入表面。 免费套餐(5 个请求/分钟,无密钥)涵盖 探索; 开发人员层(每天 1,000 个请求,有免费密钥)涵盖生产代理循环。 如果 人择法案中最大的项目是工具描述,切换是值得的 第一周。
FAQ
- 当模型可能只调用一种工具时,为什么注入工具模式会浪费令牌?
- 经典 MCP 每次都会将每个工具的 JSON 模式传送到系统上下文中,因此无论模型调用一个工具还是不调用一个工具,都会支付全部成本。 除非你告诉它,并且用模式告诉它,否则模型无法知道存在哪些工具。 代码模式用单个类型定义替换该广播,运行时仅在生成的代码实际导入函数时才参考该类型定义。
- 代码模式现在可以与 Claude Desktop 或 Cursor 一起使用吗?
- 还没有。 Claude Desktop、Cursor 和 VS Code 的 MCP 集成都采用经典的 MCP 协议,因此它们仍然接收内联工具架构。 Cloudflare 的代码模式针对代理框架(Cloudflare Agents、Mastra、LangGraph),您可以在其中控制运行时,并可以在运行之前编译代理的输出。
- 安全性怎么样,让模型写代码不是有风险吗?
- 确实如此,这就是为什么代码模式在 V8 隔离内运行生成的代码,没有文件系统访问权限,在类型化 API 表面之外没有网络访问权限,也没有 CPU 预算。 沙箱与 Cloudflare 用于 Workers 的形状相同。 模型无法逃脱隔离,就像用户无法逃脱浏览器选项卡一样。
- 我可以在同一台服务器上使用经典 MCP 和代码模式吗?
- 是的,你应该这样做。 为需要零配置工具发现的桌面客户端和编辑器保留经典的 MCP 端点。 为运行代码模式的代理框架添加类型化表面(OpenAPI 或 TypeScript 类型)。 Botoi 今天做到了这一点:MCP 端点为 Claude Desktop 提供服务,OpenAPI 规范为代理框架作为类型定义导入的 SDK 提供支持。
- 这实际上为人类账单节省了多少?
- 对于 Anthropic Opus 输入速率下的 49 个工具服务器,每轮 29,400 个令牌的成本约为每 10 轮对话 0.44 美元(仅工具描述令牌)。 代码模式将其压缩为一次性 1K 令牌类型负载,将每次对话的描述成本削减至零点几分之一。 如果每月进行 10,000 次对话,则差异约为 4,400 美元。
开始使用 botoi 构建
150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。