关于 🦊 MCPBench: A Benchmark for Evaluating MCP Servers
MCPBench 是用于评测 MCP 服务表现的评测框架,覆盖 Web 搜索、数据库查询和 GAIA 三类任务,兼容本地与远程 MCP 服务。它在相同的 LLM 与 Agent 配置下,比较各服务的任务完成准确率、延迟和 token 消耗。
主要功能
- 01支持 Web 搜索、数据库查询和 GAIA 评测
- 02兼容本地 STDIO 与远程 SSE 类型服务
- 03比较任务完成准确率、延迟与 token 消耗
- 04提供 WebSearch 与 DB 数据集,支持自定义数据集
适用场景
- 01比较不同 Web 搜索 MCP 服务的效果
- 02评估数据库查询类 MCP 服务的准确性
- 03对同一模型配置下的 MCP 服务做横向基准测试
MCP 相关
MCPBench 对 MCP 服务进行评测,并自动检测服务中的工具及其参数,无需手动配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🦊 MCPBench:用于评估 MCP 服务的基准测试
MCPBench 是一个用于评估 MCP 服务的框架。它支持评估三种类型的服务:网页搜索、数据库查询和 GAIA,并兼容本地和远程 MCP 服务。该框架主要在相同的大模型和 Agent 配置下,从任务完成准确率、延迟和 Token 消耗等方面评估不同的 MCP 服务(例如 Brave Search、DuckDuckGo 等)。这是评估报告。
实现参考了 LangProBe:语言程序基准测试。
特别感谢 Qingxu Fu 完成初始实现!
📋 目录
🔥 新闻
Sep. 1, 2025🌟 Modelscope AI 黑客松将于 Sep. 23rd 举办,参考:https://modelscope.cn/active/aihackathon-mcp-agentApr. 29, 2025🌟 更新了在 GAIA 中评估 MCP 服务包的代码。Apr. 14, 2025🌟 我们很高兴地宣布,MCPBench 现已开源。
🛠️ 安装
该框架需要 Python 版本 >= 3.11、nodejs 和 jq。
conda create -n mcpbench python=3.11 -y
conda activate mcpbench
pip install -r requirements.txt
🚀 快速开始
请先确定要使用的 MCP 服务类型:
- 如果是远程主机(通过 SSE 访问,例如 ModelScope、Smithery 或 localhost),可以直接进行评估。
- 如果是在本地启动(通过 STDIO 使用 npx 访问),则需要先启动服务。
启动 MCP 服务(STDIO 可选)
首先,需要编写以下配置:
{
"mcp_pool": [
{
"name": "firecrawl",
"run_config": [
{
"command": "npx -y firecrawl-mcp",
"args": "FIRECRAWL_API_KEY=xxx",
"port": 8005
}
]
}
]
}
将此配置文件保存在 configs 文件夹中,然后使用以下命令启动:
sh launch_mcps_as_sse.sh YOUR_CONFIG_FILE
例如,将上述配置保存在 configs/firecrawl.json 文件中,然后使用以下命令启动:
sh launch_mcps_as_sse.sh firecrawl.json
启动评估
要评估 MCP 服务的性能,需要设置必要的 MCP 服务信息。代码会自动检测服务中的工具和参数,因此无需手动配置,例如:
{
"mcp_pool": [
{
"name": "Remote MCP example",
"url": "url from https://modelscope.cn/mcp or https://smithery.ai"
},
{
"name": "firecrawl (Local run example)",
"run_config": [
{
"command": "npx -y firecrawl-mcp",
"args": "FIRECRAWL_API_KEY=xxx",
"port": 8005
}
]
}
]
}
要评估 MCP 服务在网页搜索任务中的表现:
sh evaluation_websearch.sh YOUR_CONFIG_FILE
要评估 MCP 服务在数据库查询任务中的表现:
sh evaluation_db.sh YOUR_CONFIG_FILE
要评估 MCP 服务在 GAIA 任务中的表现:
sh evaluation_gaia.sh YOUR_CONFIG_FILE
例如,将上述配置保存在 configs/firecrawl.json 文件中,然后使用以下命令启动:
sh evaluation_websearch.sh firecrawl.json
数据集和实验结果
我们的框架提供两个用于评估的数据集。对于网页搜索任务,数据集位于 MCPBench/langProBe/WebSearch/data/websearch_600.jsonl,其中包含来自 Frames、新闻和科技领域的各 200 组问答。我们用于自动构建评估数据集的框架将在之后开源。
对于数据库查询任务,数据集位于 MCPBench/langProBe/DB/data/car_bi.jsonl。你可以按以下格式添加自己的数据集:
{
"unique_id": "",
"Prompt": "",
"Answer": ""
}
我们已在这两项任务上评估了主流 MCP 服务。详细实验结果请参阅文档
🚰 引用
如果您觉得这项工作有帮助,请考虑引用我们的项目或给我们一个 🌟:
@misc{mcpbench,
title={MCPBench: A Benchmark for Evaluating MCP Servers},
author={Zhiling Luo, Xiaorong Shi, Xuanrui Lin, Jinyang Gao},
howpublished = {\url{https://github.com/modelscope/MCPBench}},
year={2025}
}
或者,您也可以引用我们的报告。
@article{mcpbench_report,
title={Evaluation Report on MCP Servers},
author={Zhiling Luo, Xiaorong Shi, Xuanrui Lin, Jinyang Gao},
year={2025},
journal={arXiv preprint arXiv:2504.11094},
url={https://arxiv.org/abs/2504.11094},
primaryClass={cs.AI}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。