真正有用的问题不是「MCP 贵不贵」,而是:这个客户端在这次模型请求里放了多少常驻工具信息?工具数量、JSON 字节、Tokenizer Token、Provider 计费、延迟与任务质量是不同指标,本实验分别记录。
隐藏的固定成本
直接 MCP 客户端可以把每个远端工具注册成模型可见函数。目录很小时,这条路径简单直接;但目录达到 1000 个工具后,即使当前任务只需要一个工具,模型仍可能收到 1000 份名称、描述与输入 Schema。
这不是所有工作负载都会遇到的问题。少量高频工具通常适合直接暴露;多 Server、大目录、长尾能力则不同:绝大多数 Schema 在大多数轮次无关,却会持续进入请求,除非 Harness 提供按需披露。
两个稳定入口,按需返回准确 Schema
MCP Lens 是一个 DeepSeek Harness 插件,把远端 MCP 目录放在两个模型入口后:
mcp_search(query)在本地排序候选,只返回命中工具的准确inputSchema。mcp_call(server, tool, arguments)调用明确指定的远端 Server 与工具。
远端工具没有消失,Schema 也没有被概括或改写。变化的是时机:完整目录留在本地,准确 Schema 只在搜索命中后进入模型上下文。
实验固定了什么
- DeepSeek Harness
0.1.0-rc.6与 DeepSeek V4 Flash。 - 同一个生成的 1000 工具本地 stdio MCP Server。
- 同样三项任务:客户查询、订单查询、GitHub 查询。
- 两组共用相同的 25 个非 MCP Harness 工具。
- Provider 返回的 Usage;费用按 2026-08-14 抓取的 DeepSeek 价格重算。
因此完整工具数量是 1025 和 27:两组都含 25 个 Harness 工具。只看 MCP 工具面,则是 1000 份远端 Schema 对比 mcp_search 与 mcp_call。
| 测量项 | 直接 MCP 客户端 | MCP Lens | 如何理解 |
|---|---|---|---|
| 完整模型可见工具 | 1,025 | 27 | 包含 25 个共用非 MCP 工具 |
| MCP 模型入口 | 1,000 | 2 | 远端目录仍可调用 |
request/header.tools JSON | 674,249 B | 27,401 B | 准确 UTF-8 字节,不是 Token |
| 任务完成 | 3/3 | 3/3 | 三项任务,不是通用质量分数 |
| 预估 API 费用 | $0.0307204 | $0.0034707 | 使用注明日期的价格 |
| 输出 Token | 491 | 794 | Lens 增加搜索和更多输出 |
它不是「免费压缩」
Lens 会增加一次明确搜索。这组三项任务中,输出 Token 从 491 增到 794,增加 61.711%;首次冷发现也包含连接和目录工作。此次实验里,输入侧的减少超过了新增开销,但小目录或高频固定工具未必受益。
这项实验不能推出通用延迟结论,也不能推出所有工作负载都省钱:模型价格会变,缓存行为会改变账单,不同任务也可能需要更多搜索轮次。
什么场景值得尝试
适合尝试
- 几十到几千个工具
- 多个 MCP Server
- 大量长尾能力
- 工具 Schema 占据大量常驻输入
直接工具可能更简单
- 只有几个固定工具
- 大部分工具每轮都会使用
- 最看重首次调用延迟
- 模型当前只收到很小的工具面
先测量,再决定安装
本地目录测量页支持脱敏后的工具数组、{"tools":[...]}、{"schemas":[...]} 或记录的 request.header.tools。页面只在浏览器里计算标准 JSON.stringify(...) 的 UTF-8 字节,不上传粘贴内容。
curl -fL -o dsh-mcp-lens-0.1.0-rc.8.tgz https://github.com/labmimors/dsh-mcp-lens/releases/download/v0.1.0-rc.8/dsh-mcp-lens-0.1.0-rc.8.tgz
dsh plugin --profile web add ./dsh-mcp-lens-0.1.0-rc.8.tgz
dsh --profile web
仓库包含可复现的组件 Benchmark Runner、带日期的真模型实验方法与聚合 Usage 计算、测试与安全限制。如果真实工具没有被搜索命中,可以在 MCP 目录挑战中提交脱敏案例;可复现反例比一句「好用」更有价值。