MCP-Atlas: A Large-Scale Benchmark for Tool-Use Competency with Real MCP Servers

Scale AI (主) + NUS · Bandi, Hertzberg, Boo, Polakam, Da, Hassaan, Sharma, Park, Hernandez, Rambado, Salazar, Cruz, Rane, Levin, Kenstler, Liu · v1 2026-01-31 · v2 2026-05-04
arXiv:2602.00933 · HTML v2 · GitHub: scaleapi/mcp-atlas · HF: ScaleAI/MCP-Atlas · Live leaderboard
关键词: MCP benchmark · tool-use · claims-based rubric · 36 servers / 220 tools / 1,000 tasks · containerized harness · Scale Labs leaderboard · 被 Claude Opus 4.7 model card 引用

速读卡片 (TL;DR)

一句话: MCP-Atlas 是 Scale AI 把真实公网 MCP server 工程化打包成 docker + 人工写 1,000 个跨 server 任务 + claims-based LLM-judge rubric 三件套做出来的 benchmark。它不是学术上最"巧"的设计,但是第一个被 Anthropic 官方写进 Claude Opus 4.7 model card 的 MCP benchmark (77.3%) —— 这是它和 MCPMark / Toolathlon / MCP-Bench 拉开身位的关键事实。和 #18 AWM 完全合成路线相反,Atlas 走"真服务器、真 API、真出 quota error"路线;和同期 MCPMark 比则规模大一个量级(36 vs 5 server, 1000 vs 127 task)。

36 / 220 / 1,000
真实 MCP server / 工具 / 任务,500 task 公开,500 task 留作 hold-out 防污染
77.3 → 79.1%
Claude Opus 4.7: model-card 静态报告 77.3 · Live leaderboard (2026-04-08) 79.1 (max);第 1 是 Scale 自家 Muse Spark 82.2%
Gemini 2.5 Pro
claims-based judge 模型,与多数人类投票 78% 一致;pass 阈值 0.75,sensitivity 在 0.65–0.85 稳定
MIT + CC-BY-4.0
repo MIT, dataset CC-BY-4.0; harness + 500 task + 5 数据 seed 全开;judge prompt 与 hold-out 500 task 未公开

立场: 论文方法侧没有 surprise (claims rubric + LLM judge 是 standard);真正的 contribution 是工程—— 把 36 个 server 用 docker 打包到可一键启动、把 API key 注入和速率限制做平、把 5 个 stateful server (Airtable / GCal / Notion / Mongo / Slack) 的初始数据集 dump 出来当 fixture。这套 infra 决定了别人能不能复现你的 score,也决定了 frontier lab 要不要采用。我的核心 hypothesis: Claude Opus 4.7 model card 选 MCP-Atlas 而不是 MCPMark / Toolathlon,首要原因是 (a) Scale AI 与 Anthropic 长期数据合作关系 + (b) Live leaderboard 长期维护承诺 + (c) 1,000 task 的 statistical power 让 ±2.5% CI 足以分辨相邻模型,这是 100-task 量级 benchmark 给不了的。


1 · 背景:为什么 MCP-Atlas 是第一个被 frontier 官方采用的 MCP benchmark

1.1 一个被低估的事实

2025 下半年到 2026 上半年,围绕 Model Context Protocol (MCP) 的 benchmark 至少有 6 篇 paper / repo:MCP-Universe (231 task / 11 server)、MCPEval (676 task, auto-gen)、MCP-Bench (104 task, Accenture)、Toolathlon (108 task / 32 app, HKUST-NLP)、MCPMark (127 task / 5 server, eval-sys)、LiveMCPBench (95 task / 70 server, mostly mock),还有这篇 MCP-Atlas (1000 task / 36 server, Scale AI)。它们的方法学差异其实并不悬殊 —— 都是"多 server 跨 tool 编排 + 某种自动化 verifier"。

到 2026 年 4 月 Anthropic 发布的 Claude Opus 4.7 system card 里,作为 "agentic tool use" 一档的代表性 benchmark 出现的只有 MCP-Atlas 一个,数字是 77.3%。同一张表里 MCPMark / Toolathlon / MCP-Bench 都没出现。这是一件值得追问的事情 —— 因为它直接决定了未来 6-12 个月哪个 benchmark 会被 community 当作"标准刻度"来衡量 agent 能力。

关键事实链:

1.2 这篇笔记和之前 MCP benchmark 笔记的关系

之前用户已经精读过的 MCP benchmark 系列:

笔记规模验证机制开源度frontier 采用?
MCPMark (eval-sys)127 task / 5 serverper-task verifier script (rule-based)全开
Toolathlon (HKUST-NLP)108 task / 32 app / 604 toolstate-based + custom verifier全开
Toolathlon-Gym (eigent-ai)503 task (RL 版)同上全开
MCP-Bench (Accenture)104 taskholistic LLM-as-judge全开
MCP-Atlas (Scale AI, 本文)1,000 task / 36 server / 220 toolclaims-based LLM judge (Gemini 2.5 Pro)半开(500/1000 task 公开,judge prompt 闭源)Claude Opus 4.7 ✓

这就是 §8 要回答的核心问题:规模上 Atlas ≈ Toolathlon-Gym × 2,验证设计上没有压倒性的新意 —— 那么 frontier lab 选它的真正原因在哪儿? 我的答案在 §8。


2 · 设计哲学:36 / 220 / 1,000 的规模为什么"刚好够"

2.1 三件事的 trade-off 几何

所有 MCP benchmark 都在 3 个轴上权衡:

真实性 (real APIs, 真出错) 规模 (#tasks) 可复现性 (state-reset) MCP-Atlas 36 srv · 1000 task · docker fixture MCPMark (5 srv · 127) Toolathlon (32 app · 108) MCP-Bench (104) LiveMCPBench (70 srv mock) 越靠近顶点 = 越偏向该维度
MCP-Atlas 在三角形里的位置:它不极端追求规模(比不上 MCPEval 676 auto-gen task)、不极端追求 reproducibility(比不上 AWM 的全合成),但同时给到 1000 task 真实 server 的中间点 —— 这恰好是 frontier model 评测最需要的:够多让 CI 不爆,够真让 score 有意义。

2.2 "为什么 36 而不是 5 或 70"

选择 36 个 server 而非 5 个 (MCPMark) 或 70 个 (LiveMCPBench) 的理由,paper 没有展开论证,但能从数据反推:

server bucket代表 server占比逻辑
Basic / searchbrave_search, ddg_search, exa, calculator, weather, google-maps"无 API key 也能跑"的入口
Analyticsairtable, mongodb, f1-mcp-server需要 stateful fixture
Productivityfilesystem, notion, slack, arxiv, google-workspace, pubmedSaaS + 学术
Financialtwelvedata, alchemyreal-money API 触感
Codinggit, github, mcp-code-executor, cli-mcp-server对照 SWE-bench 类工作
其他 (appendix H)oxylabs, wikipedia, national-parks, desktop-commander, clinicaltrialsgov-mcp-server, whois, fetch, memory, context7, ...长尾长度

36 这个数字的含义是: 每 bucket 5-7 个,既覆盖到了"工具组合性"(产生 cross-server task),又把每个 server 的 API key 管理 / 速率限制 / 数据初始化复杂度控制在 docker compose 能处理的级别。70 个 (LiveMCPBench) 的代价是必须 mock,5 个 (MCPMark) 的代价是没法构造跨域 task。

2.3 "为什么 1,000 task 不 over-fit"

1,000 task 的"够用感"来自两件事:

  1. 500 公开 + 500 hold-out: 这是 paper 明文写的反污染设计。MCPMark / Toolathlon 都没有 hold-out, 全部 task 都进了 HuggingFace,因此 long-term 上 train-on-eval 风险更高。Atlas 的 500 hold-out 由 Scale Labs 内部跑 → 这意味着 frontier lab 拿到的 leaderboard 分数会比自跑高 ~3%(因为公开 500 容易被 RL 训过)。
  2. CI 宽度: 在 leaderboard 上每条记录都标了 ±2.5 ~ ±3.1 的 95% CI —— 这正是 ≈500 个 binary task 的 1/(2√n) 的理论下限。换言之,Atlas 的设计假设是每相邻 2-3% 是一档显著差异。100-task 量级的 benchmark 给不了这个分辨率。

3 · 任务构造方法 — 怎么搞出 1,000 个 verifiable task

3.1 三层人工 + 一层 LLM 的 pipeline

这是 paper 里写得最朴素也最关键的部分: 1,000 个 task 是真的人写的,不是 LLM 生成的(对照 MCPEval 676 auto-gen)。流程:

domain SME 写 prompt + claims 第 2 层 review 自然语言审查 (避免 tool name 泄漏) LLM verifier claims 完整性 自动检查 QC sample 随机抽样 人工二次校 输出: 1 个 task = (PROMPT, ENABLED_TOOLS, GTFA_CLAIMS, TRAJECTORY) PROMPT: 84-601 字符 自然语言, 不提 tool 名 ENABLED_TOOLS: 10-25 个 tool (3-7 required + 5-10 distractor) GTFA_CLAIMS: 一组 atomic factual claims, 用作 rubric
任务构造 4 阶段流水线。Atlas 没有像 Toolathlon-Gym 那样做 LLM-generated 上规模,而是接受 1000 task 的"贵"(估算 ≥ 数千 SME 工时),换来分布更接近真实用户问题

3.2 task 的几个关键约束

3.3 HF dataset schema

{
  "TASK": "uuid-style-24char-id",
  "ENABLED_TOOLS": "tool1, tool2, ... (183-1.44k chars)",
  "PROMPT": "自然语言 user 请求 (84-601 chars)",
  "GTFA_CLAIMS": "claim_1; claim_2; ... (79-3.02k chars)",
  "TRAJECTORY": "完整 ground truth tool-call 序列 (2k-4.4M chars)"
}

TRAJECTORY 字段是个亮点 —— 它把人写的 reference trajectory 也开源了。这点 MCPMark 和 Toolathlon 都没做(只给 verifier 不给 reference traj)。对 SFT / behavior cloning 训练而言,这是个非平凡的资源。


4 · 评测 pipeline:harness + claims rubric + judge

4.1 三段式 pipeline

1) Completion phase
   uv run python mcp_completion_script.py \
       --model claude-opus-4-7 \
       --input tasks_500.jsonl \
       --output traj_opus47.jsonl
   ↓ 调用 localhost:1984 (MCP server 集群) + localhost:3000 (completion svc)
   ↓ agent 单轮 plan, 多次 tool call 直到吐出 final answer

2) Scoring phase
   uv run mcp_evals_scores.py \
       --input-file traj_opus47.jsonl \
       --model-label opus47
   ↓ 拿 Gemini 2.5 Pro 当 judge
   ↓ 对每个 claim 打 {fulfilled=1, partially=0.5, not_fulfilled=0}
   ↓ coverage = Σ claim_score / |claims|

3) Pass/fail
   pass if coverage ≥ 0.75 else fail
   pass_rate = #pass / #tasks

4.2 关键设计决策

决策选择对照
verifier 类型LLM judge (Gemini 2.5 Pro) on final answer claimsvs MCPMark 的 rule-based per-task script · vs Toolathlon 的 state-based diff
judge ground truth100 task 上的多数人类投票,judge 与之 78% agreementvs MCP-Bench 的 holistic-only(有 style bias)
pass 阈值0.75,sensitivity 在 [0.65, 0.85] 验证稳定
tool list 暴露每 task 10-25 tool(混 distractor),agent 看得到 schemavs MCPMark 全 5 server 都暴露
tool 调用格式server-declared JSON schema,严格类型 + required/optional check
execution budget有限制(具体数字 paper 未明说)
multi-turn? — single user promptvs Toolathlon multi-turn

4.3 失败模式分析(诊断的真正贡献)

paper §6 / appendix 给了一张 frontier model 失败原因占比表,这是它比 MCPMark / Toolathlon 更有 "model-card 友好度"的关键 —— Anthropic / OpenAI 可以拿这张表直接讨论"我的模型短板在哪一档":

失败类平均占比典型 sub-error
Tool Usage (主要)56.7% (47.5-68.5%)"no tools called" 36.0%; "incorrect parameters" 14.2%
Task Understanding30.3%"partial completion" 25.8%
Response Quality8.5%tool call 成功但 final synthesis 错
Logical Errors4.5%对输出推理错误(最少见)

注意"no tools called"在所有模型上都占主导 —— 包括 frontier model。这说明"决定调用 tool"本身就是个非 trivial 决策,模型在不确定时倾向于直接幻觉答案。


5 · 🔍 开源现状 — repo 实地清点 (CRITICAL)

这一节是用户最关心的。把 github + huggingface + paper 三处对照后,清单如下:

资源状态位置license
500 公开 task (PROMPT + ENABLED_TOOLS + GTFA_CLAIMS + reference TRAJECTORY)✓ 全开HF: ScaleAI/MCP-Atlas (15.6 MB parquet)CC-BY-4.0
另外 500 hold-out task✗ 闭源 (Scale Labs 内部用于 leaderboard)未公开
36 MCP server 的 docker 化封装✓ 全开repo services/MIT
completion service (agent harness, port 3000)✓ 全开services/ + mcp_completion_script.pyMIT
scoring script (含 judge 调用)✓ 开mcp_evals_scores.pyMIT
judge prompt (Gemini 2.5 Pro 用的 system + few-shot)⚠ paper 描述了规则但 prompt 全文 未公开嵌入 scoring 脚本里可能能反推
stateful server 的 fixture data (5 个 server: Airtable / GCal / Notion / Mongo / Slack)✓ 全开repo data_exports/ (~1.5 MB)MIT
per-task diagnostic flags (tool usage / understanding / response / logical)✗ 未公开paper 给了汇总数字
Live leaderboard✓ 公网labs.scale.com
提交新模型上 leaderboard 的流程⚠ paper / repo 未明示;需通过 Scale Labs 联系

5.1 self-host 跑通 500 task 需要什么

依赖: Docker, UV (python pkg manager), jq, Python 3.10+
.env 里两个 key: LLM_API_KEY (待测模型), EVAL_LLM_API_KEY (Gemini 2.5 Pro judge)
端口: 1984 (MCP servers 容器), 3000 (completion svc)

额外需要的 API key (运行全 500 task 时):
- brave_search, exa, oxylabs, twelvedata, alchemy, ...
- 部分 server (notion / slack / airtable / gcal / mongo) 需要 OAuth + 恢复 fixture

跑通 10 个 sample task 的 minimum 路径不需要付费 key — 这一点比 MCPMark 友好(MCPMark 的 5 个 server 几乎都要 paid key)。

5.2 与同期 benchmark 的开源度对比

benchmarktask 全开?harness 全开?verifier 全开?reference traj?hold-out?live leaderboard?
MCPMark✓ 127✓ rule-based scripts 全开
Toolathlon✓ 108
Toolathlon-Gym✓ 503
MCP-Bench✓ 104✓ holistic prompt 开
MCP-Atlas⚠ 500/1000⚠ 代码开, judge prompt 闭✓ 500 hold-out
AWM (#18)✓ 10k✓ code-driven
诚实评价: 在"纯开源度"这个轴上 MCP-Atlas 反而不是最开放的 —— 它故意保留 500 hold-out + 闭 judge prompt。但这恰恰是它能被 frontier 引用的设计:有 hold-out 的 benchmark 才能维持 leaderboard 的长期可信度。MCPMark / Toolathlon 一旦数据全开,就失去了"做出官方榜单"的资格 — 因为对手可以训过。

6 · 实验结果 + 当前 leaderboard 全表

6.1 paper v2 (2026-05-04) 报告的分数

ModelPass RateMean Coverage
Claude Opus 4.562.30%78.5%
Gemini 3 Pro54.10%73.2%
GPT-544.50%61.7%
Claude Sonnet 4.543.80%62.1%
o3 Pro (high)43.60%66.9%
Claude Opus 4.140.90%64.9%
Claude Sonnet 435.60%57.3%
GLM-4.5 Air34.00%60.5%
Kimi K2 Instruct23.90%50.4%
Qwen3-235B-A22B12.00%29.0%
Gemini 2.5 Pro8.80%30.7%
GPT-4o7.20%28.5%
Gemini 2.5 Flash3.40%17.8%

paper 自己的话: "Top frontier models achieve pass rates exceeding 50%, with primary failure modes related to inadequate tool usage and task comprehension."

6.2 Live leaderboard (Scale Labs, 截至 2026-04-08)

#ModelPass±95%CI
1Muse Spark (Scale 自家)82.2%2.30
2Claude Opus 4.7 (max)79.1%2.50
3Gemini 3.1 Pro Preview (high)78.2%2.50
4Claude Opus 4.6 (max)76.8%2.70
5GLM-5p175.6%2.70
6GPT-5.5 (xhigh)75.3%2.70
7GPT-5.4 (xhigh)70.6%2.80
8Gemini 3 Pro Preview70.3%2.80
9Claude Opus 4.5 (high)69.8%2.90
10Claude Sonnet 4.669.5%2.90
11-20GPT-5.2 / Kimi-K2p5 / Gemini 3 Flash / Sonnet 4.5 / GLM-4p7 / Gemini 3.1 Flash Lite / GPT-5.4 Mini / GPT-5.1 / O3-Pro / Haiku 4.567.6 → 40.2%~3.0
注意 model-card vs live leaderboard 的 ~2% gap: Anthropic Opus 4.7 system card (2026-04-16) 引用 77.3%, leaderboard 同期显示 79.1%。原因可能是:(a) max 是 best-of-N / 推理 budget 更高的设置, system card 报告的是标准 setting;(b) Scale 表态 "Opus 4.6 score has been updated to reflect revised grading methodology",说明 judge 在迭代,数字随之变。引用时务必标 snapshot 日期。

6.3 几个有意思的观察


7 · 与 MCPMark / Toolathlon / MCP-Bench 的并排对比

维度MCPMarkToolathlonMCP-BenchMCP-Atlas
团队eval-sysHKUST-NLPAccentureScale AI + NUS
规模127 task / 5 server108 task / 32 app / 604 tool104 task1,000 task / 36 server / 220 tool
task 来源人工人工人工 + LLM人工 (3-layer review)
verifierper-task script (规则)state diff + 自定义 verifierholistic LLM judgeclaims-based LLM judge
metricpass^ksuccess rateholistic scorepass rate (coverage≥0.75)
multi-turn?视 task 而定multi-turnsingle-turnsingle-turn
真实 server?5 个真真 (但需挂载 OAuth)真 + dockerized
hold-out500/1000
live leaderboardScale Labs 维护
reference trajectory
frontier 官方采用?Claude Opus 4.7 ✓
licenseMIT (全开)MIT (全开)MIT (全开)MIT + CC-BY-4.0 (data 500 task)
RL training forkToolathlon-Gym (eigent-ai)

关键差异化(按重要性排序):

  1. Live leaderboard + hold-out — 唯一一个有"非数据集化"承诺的
  2. 规模 10× — 让 CI ≤ 3%,是 frontier 模型间分辨可行的最低要求
  3. reference trajectory 也开源 — 给后续 SFT 喂料
  4. Scale AI 的销售/数据网络 — 不在 paper 内,但是隐含 distribution advantage

8 · 为什么这篇被 frontier 采用 — 我的假设

把所有证据放在一起,我对 "为什么 Anthropic 把 MCP-Atlas 而不是 MCPMark / Toolathlon / MCP-Bench 写进 Claude Opus 4.7 model card" 的最佳猜测,按可信度排序:

H1 (最强): leaderboard infra + hold-out 让数字 "可被定期更新"

Anthropic / OpenAI / Google 在写 model card 时需要的不是一个静态 paper 数字,而是一个未来发新模型时能继续 quote 的 benchmark。MCPMark / Toolathlon 都是"paper-and-go"模式 — 一旦 paper 发了,数据集 freeze 在 HuggingFace 上,leaderboard 就要靠社区 cobble 起来,容易污染。Atlas 的 Scale Labs leaderboard 是第一个 by-design 持续运营的 MCP benchmark。这对 frontier lab 来说是基础设施 lock-in。

H2 (次强): Scale AI 与 Anthropic 的长期 data 合作关系

Scale AI 是 Anthropic 最主要的 RLHF data partner 之一(以及 OpenAI 的)。当 Scale 推出一个 benchmark 时,商务通道上 Anthropic 团队拿到这个 benchmark 的时间会早于其他 academic 团队 — 一个 frontier lab 内部已经用了几个月的 benchmark,自然会出现在 model card 里。MCPMark/Toolathlon 是学术 / 创业团队,没有这条快车道。这是个 "Scale AI 卖通道" 的故事,不是技术故事。

H3 (中等): 规模够大让 CI 够窄

1000 task → 500 公开测试上 95% CI ≈ ±2.5%。Anthropic 报 Opus 4.7 = 77.3% 时 vs Opus 4.6 = 75.8%,这 1.5% 在 100-task benchmark 上根本不显著 (±5% CI),在 500-task 上才勉强 statistical claim。Model card 写代际 incremental improvement,必须有低 CI benchmark

H4 (弱): claims-based rubric 的可解释性

Atlas 的 claims rubric 给了 fine-grained 失败诊断("no tool called" 占 36%, "incorrect parameter" 占 14% 这种)。这种 breakdown 是 model card 写"我们改进了 X 的能力"时需要的素材。MCPMark 的 binary pass/fail 给不了这种叙事。

H5 (诚实承认): Claude 在 Atlas 上分数最好看

从 leaderboard 看,Claude 系列在 Atlas 上的相对排名比在 SWE-bench / τ-bench 上更靠前(Opus 4.7 第 2,只输给 Scale 自家)。不能排除 "Anthropic 选这个 benchmark 因为这个 benchmark 上他们赢得最漂亮"。这是 model card benchmark 选择的公开秘密。

组合假设: 大概率是 H1 + H2 主导(infra + 商务通道),H3 + H4 + H5 是技术/叙事上的合理化。如果只是 H3-H5 的话,Toolathlon-Gym (503 task) 也满足规模和 fine-grained 指标,但它没被 quote — 这反过来印证 H1 + H2 是决定性的。

9 · 局限 / 个人 take

9.1 论文方法学的真实局限

9.2 我的判断

MCP-Atlas 不是技术上最聪明的 MCP benchmark — 它是产品化做得最好的那个。Scale AI 把它当一个持续运营的 leaderboard product(类似 LMSys Chatbot Arena 的位置),而不是单次发布的 paper artifact。这就是它和 MCPMark / Toolathlon 的根本差别,也是 frontier lab 需要的差别。

对用户(szhang967)的实际建议:

用途推荐 benchmark
纯学术发 paper, 想要 verifier 完全可控MCPMark (5 server, rule-based)
训 agent (RL/SFT), 要规模Toolathlon-Gym 503 task 或 AWM 10k 合成
对标 frontier model 数字, 写 paper 时给读者熟悉的刻度MCP-Atlas(quote Opus 4.7 = 77.3 已经是标准刻度)
验证 self-host model 的 tool-use 能力10-task sample + 500 公开 task — 但准备好 ≥ $200 API 预算
研究 multi-turn dialog agentAtlas 不适合 → 改用 Toolathlon

9.3 一个 counterintuitive finding

看 §6.3 的失败模式表,"no tools called" 占了 frontier model 36% 的失败原因 —— 即第一档 failure mode 不是 "tool 用错",而是 "完全不调用 tool"。这与"模型越强越倾向于直接幻觉答案而不 ground"这个老观察对上了。对 prompt engineer 的 actionable insight:在系统提示里强制要求 "for any factual question, you must call at least one tool" 可能直接消除 1/3 的 failure。这是从 Atlas 中提炼出的最有用的工程经验,paper 没有显式 highlight 但数据明摆着。


速查总结: