CLI与MCP基准测试工具

比较CLI工具与MCP工具在Claude模型下的执行效率,展示输入令牌节省和工具定义大小的差异。

  • by AlexandrosGounis
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 AlexandrosGounis/mcp-vs-cli

使用说明

CLI与MCP基准测试

MCP服务器功能强大,但很难构建和维护。除此之外,随着更多工具的添加,输入令牌的使用量不成比例地增加。此基准测试将CLI工具执行与使用Claude的MCP工具执行进行比较。同样的型号,同样的提示,同样的天气API。唯一的区别是工具的呈现方式。

设置

npm install
cd cli && npx clifast generate get-weather.ts -y && cd ..
cp .env.example .env

将您的Anthropic API密钥添加到 .env:

ANTHROPIC_API_KEY=sk-ant-...

您可以从以下地址获取钥匙 console.anthropic.com 在...之下 设置>API密钥.

跑步

npm run dev

A. result-<timestamp>.json 每次运行时都会保存文件。

输出示例

claude-sonnet-4-6 |提示: “纽约的天气怎么样?” |5工具

度量 CLI MCP 节省
输入令牌 1,498 2,368 36.7%
输出令牌 228 230 0.9%
总令牌数 1,726 2,598 33.6%
延迟(毫秒) 7,303 7,086 -3.1%
刀具定义尺寸(B) 479 1,851 74.1%
API调用 2 2 0.0%

输入令牌减少37%。74%的工具定义较小。同样的答案。

CLI方法使用 clifast 将纯TypeScript导出转换为CLI,然后公开一个泛型 run_command 克劳德的工具。MCP在每个API调用上发送所有5个完整的JSON模式。谈话的每一个转折点都会带来象征性的节省。

备注:温度设置会导致幻觉的风险很小,因为代理可能会决定不使用指定的CLI工具,而不是强制代理调用工具的MCP方法。随着代理越来越善于理解提示意图,这种风险可以忽略不计,但是,如果需要,我们可以通过将CLI封装在函数/工具中或调整温度设置来降低这种风险。