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 devA. result-.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封装在函数/工具中或调整温度设置来降低这种风险。
