返回市场
MCP基准测试

MCP基准测试

作者:modelscope225 星标更新:2025-09-03

项目介绍

<h1 align="center"> 🦊 MCPBench:用于评估MCP服务器的基准测试框架 </h1> <div align="center">

文档 包许可证

</div> <div align="center"> <h4 align="center">

中文 | English

</h4> </div>

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

<img src="assets/figure1.png" alt="MCPBench概览" width="600"/>

实现参考了LangProBe:一种语言程序基准测试
感谢Fu Qingxu的初始实现!

<hr>

📋 目录

🔥 新闻

  • 2025年9月1日 🌟 Modelscope AI黑客马拉松将于9月23日举行,详情参见:https://modelscope.cn/active/aihackathon-mcp-agent
  • 2025年4月29日 🌟 更新了GAIA内MCP服务器包的评估代码。
  • 2025年4月14日 🌟 我们自豪地宣布MCPBench现已开源。

🛠️ 安装

该框架需要Python版本>=3.11,nodejs和jq。

conda create -n mcpbench python=3.11 -y
conda activate mcpbench
pip install -r requirements.txt

🚀 快速开始

请首先确定您想要使用的MCP服务器类型:

  • 如果是远程主机(通过SSE访问,例如ModelScopeSmithery,或localhost),您可以直接进行评估
  • 如果是在本地启动(通过npx使用STDIO访问),您需要先启动它。

启动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": "远程MCP示例",
            "url": "从https://modelscope.cn/mcp或https://smithery.ai获取的URL"
        },
        {
            "name": "firecrawl(本地运行示例)",
            "run_config": [
                {
                    "command": "npx -y firecrawl-mcp",
                    "args": "FIRECRAWL_API_KEY=xxx",
                    "port": 8005
                }
            ]
        }  
    ]
}

要评估MCP服务器在Web搜索任务上的性能:

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

数据集和实验结果

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

对于数据库查询任务,数据集位于MCPBench/langProBe/DB/data/car_bi.jsonl。您可以按照以下格式添加自己的数据集:

{
  "unique_id": "",
  "Prompt": "",
  "Answer": ""
}

我们已经在两项任务上评估了主流的MCP服务器。详细的实验结果,请参阅文档

🚰 引用

如果您发现这项工作有用,请考虑引用我们的项目或给我们一个🌟:

@misc{mcpbench,
  title={MCPBench:用于评估MCP服务器的基准测试框架},
  author={Zhiling Luo, Xiaorong Shi, Xuanrui Lin, Jinyang Gao},
  howpublished = {\url{https://github.com/modelscope/MCPBench}},
  year={2025}
}

或者,您可以引用我们的报告。

@article{mcpbench_report,
      title={MCP服务器评估报告}, 
      author={Zhiling Luo, Xiaorong Shi, Xuanrui Lin, Jinyang Gao},
      year={2205},
      journal={arXiv预印本 arXiv:2504.11094},
      url={https://arxiv.org/abs/2504.11094},
      primaryClass={cs.AI}
}