MCP服务器评估框架

MCPBench是一个用于评估MCP服务器的框架,支持Web搜索、数据库查询和GAIA三种类型服务器的评估,兼容本地和远程MCP服务器,主要评估任务完成准确性、延迟和令牌消耗。

  • by modelscope
  • Python
  • 本地部署
  • 251 星标
  • 更新于
在 GitHub 查看 modelscope/MCPBench

使用说明

🦊 MCPBench: A Benchmark for Evaluating MCP Servers

中文 | 英语

MCPBench是MCP服务器的评估框架。它支持评估三种类型的服务器:Web搜索、数据库查询和GAIA,并与本地和远程MCP服务器兼容。该框架主要评估不同的MCP服务器(如Brave Search、DuckDuckGo等)在相同LLM和代理配置下的任务完成准确性、延迟和令牌消耗。这是 评估报告.

实施涉及 LangProBe:语言程序基准.
非常感谢傅清旭的初步实施!


📋 目录

🔥 新闻

  • Sep. 1, 2025 🌟 Modelscope AI黑客马拉松将于9月23日举行,参考:https://modelscope.cn/active/aihackathon-mcp-agent
  • Apr. 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服务器的类型:

  • 如果是远程主机(通过访问 上海证券交易所,例如 魔搭, 铁匠铺,或localhost),您可以直接执行 评估.
  • 如果它是在本地启动的(通过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服务器在WebSearch任务上的性能:

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

数据集和实验结果

我们的框架提供了两个数据集用于评估。对于WebSearch任务,数据集位于 MCPBench/langProBe/WebSearch/data/websearch_600.jsonl,每个包含200个QA对 框架新闻和技术领域。我们用于自动构建评估数据集的框架稍后将开源。

对于数据库查询任务,数据集位于 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}
}