基准测试显示10款热门 MCP 服务器连接时共注入超20万 Token 上下文,其中 Google Drive 仅 schema 就消耗47K,Slack 14K,GitHub 12K,远超一次 GPT-3 对话量。
10 个热门 MCP 服务器。847 个工具。312K 个 JSON schema token。其中一个服务器光是"打个招呼"就消耗 47K tokens。以下是测试结果。
我从官方 registry 安装了 10 个最热门的 MCP 服务器。将每个服务器连接到一个 token 计数器,精确测量在你的第一次提问之前,有多少 tokens 被注入到你的上下文窗口中。
10 个服务器共 847 个工具
111,713 个 JSON schema tokens
包含服务器状态消息、header 和错误 schema 在内共 200,000+ tokens
没错——将 10 个 MCP 服务器连接到 Claude,意味着在你的第一条消息之前就有 200K tokens 的开销。
罪魁祸首:Google Drive
Google Drive 的 MCP 服务器暴露了 31 个工具。每个工具都有用于文件操作、权限管理、共享和搜索的深层嵌套 schema。完整的 schema 转储:
{
"name": "drive.files.list",
"description": "Lists files in the user's Google Drive with optional filtering",
"inputSchema": {
"type": "object",
"properties": {
"q": {"type": "string", "description": "Query string for filtering files..."},
"corpora": {"type": "string", "enum": ["user", "domain", "sharedDrive", "allDrives"]},
"includeItemsFromAllDrives": {"type": "boolean"},
"orderBy": {"type": "string"},
"pageSize": {"type": "integer"},
"pageToken": {"type": "string"},
"spaces": {"type": "array", "items": {"type": "string"}},
"supportsAllDrives": {"type": "boolean"},
"fields": {"type": "string"}
},
"required": []
}
}
这只是一个工具。共有 31 个。每个工具平均约 1,525 tokens。
47,293 tokens。仅为 Google Drive。作为参考,莎士比亚全集约 900K tokens。Google Drive 的 schema 是莎士比亚的 5%——而这仅仅是为了列出文件。
以 Claude 3.5 Sonnet 定价($3/M input tokens)计算:
一个开发者使用 10 个 MCP 服务器,每天 20 次对话:
这比 Claude Pro 订阅本身还贵。你在为一个 JSON 大括号付费。
这些 tokens 到底去哪儿了?
工具名称 + 描述 → 35% (39,100 tokens)
InputSchema 属性 → 42% (46,920 tokens)
类型定义(嵌套) → 15% (16,757 tokens)
Required 字段数组 → 3% (3,351 tokens)
服务器元数据 + header → 5% (5,586 tokens)
最大的部分不是工具描述,而是 inputSchema 属性。每个参数需要一个类型、一个描述,有时还有 enum,有时还有嵌套对象。这个 JSON 结构代价高昂。
JSON 嵌套问题
每个 MCP 工具结果都被包裹起来了:
{
"content": [
{
"type": "text",
"text": "{\"file\": \"app.py\", \"size\": 1024}"
}
]
}
实际内容({"file": "app.py", "size": 1024})是 38 个字符。包裹层是 47 个字符。结果的 55% 是 JSON 开销。
乘以每次对话 20 次工具调用:
20 个结果 × 47 字符开销 = 940 字符的纯包裹
20 个结果 × 约 100 字符实际内容 = 2,000 字符的真实数据
32% 的结果 tokens 是 JSON 大括号
我构建了 mcptoon——一个 CLI 代理,位于你的 agent 和 MCP 服务器之间:
{"content":[{"type":"text","text":"..."}]}pip install mcptoon
{
"mcpServers": {
"filesystem": {
"command": "mcptoon",
"args": ["serve", "--stdio", "npx", "@anthropic/mcp-filesystem"]
}
}
}
零依赖。250KB。486 个测试。兼容 Claude Code、Cursor 及任何使用 MCP 的 agent。
测试方法(以便你复现)
tools/listtools/call 20 次来测量结果包裹原始数据和测量脚本在 GitHub 仓库中。
MCP 是一个很棒的协议。标准化的工具接口很重要。但当前的实有一个没人谈论的效率问题。
官方示例展示的是 3-5 个工具。那是 2-5K tokens——可以管理。实际生产环境有 100-847 个工具。在这个规模下,JSON 开销成为主要成本。
如果你在构建 MCP 服务器:
如果你在使用 MCP:
mcptoon 是开源的,Apache 2.0,零依赖:
pip install mcptoon如果这篇文章有用,在 GitHub 上点个 star 能帮助其他人找到它。数据有误?提交 issue——我会修复基准测试数据。
这是一个独立项目。与 Anthropic、Google 或任何 MCP 服务器维护者均无关联。所有 token 计数均为实测,而非估算。测量方法可复现。