π¦ MCPBench: A Benchmark for Evaluating MCP Servers
LocalAbout π¦ MCPBench: A Benchmark for Evaluating MCP Servers
MCPBench is an evaluation framework for MCP servers covering web search, database query and GAIA tasks. It works with both local and remote servers and compares task accuracy, latency and token use under the same LLM and agent setup. It is aimed at researchers and developers who need to benchmark servers.
Key features
- 01Evaluates web search, database query and GAIA tasks
- 02Supports local STDIO and remote SSE servers
- 03Measures accuracy, latency and token consumption
- 04Includes WebSearch and DB datasets with custom dataset support
Use cases
- 01Comparing the performance of web search MCP servers
- 02Assessing the accuracy of database query MCP servers
- 03Running side-by-side benchmarks under a fixed LLM and agent configuration
MCP support
MCPBench evaluates MCP servers and automatically detects their tools and parameters from the server, so no manual tool configuration is needed.
Configuration
Local server config is the same for every client. Copy it into your clientβs MCP config file.
We havenβt collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEπ¦ MCPBench: A Benchmark for Evaluating MCP Servers
MCPBench is an evaluation framework for MCP Servers. It supports the evaluation of three types of servers: Web Search, Database Query and GAIA, and is compatible with both local and remote MCP Servers. The framework primarily evaluates different MCP Servers (such as Brave Search, DuckDuckGo, etc.) in terms of task completion accuracy, latency, and token consumption under the same LLM and Agent configurations. Here is the evaluation report.
The implementation refers to LangProBe: a Language Programs Benchmark.
Big thanks to Qingxu Fu for the initial implementation!
π Table of Contents
π₯ News
Sep. 1, 2025π Modelscope AI hackathon will be hold on Sep. 23rd, ref: https://modelscope.cn/active/aihackathon-mcp-agentApr. 29, 2025π Update the code for evaluating the MCP Server Package within GAIA.Apr. 14, 2025π We are proud to announce that MCPBench is now open-sourced.
π οΈ Installation
The framework requires Python version >= 3.11, nodejs and jq.
conda create -n mcpbench python=3.11 -y
conda activate mcpbench
pip install -r requirements.txt
π Quick Start
Please first determine the type of MCP server you want to use:
- If it is a remote host (accessed via SSE, such as ModelScope, Smithery, or localhost), you can directly conduct the evaluation.
- If it is started locally (accessed via npx using STDIO), you need to launch it.
Launch MCP Server (optional for stdio)
First, you need to write the following configuration:
{
"mcp_pool": [
{
"name": "firecrawl",
"run_config": [
{
"command": "npx -y firecrawl-mcp",
"args": "FIRECRAWL_API_KEY=xxx",
"port": 8005
}
]
}
]
}
Save this config file in the configs folder and launch it using:
sh launch_mcps_as_sse.sh YOUR_CONFIG_FILE
For example, save the above configuration in the configs/firecrawl.json file and launch it using:
sh launch_mcps_as_sse.sh firecrawl.json
Launch Evaluation
To evaluate the MCP Server's performance, you need to set up the necessary MCP Server information. the code will automatically detect the tools and parameters in the Server, so you don't need to configure them manually, like:
{
"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
}
]
}
]
}
To evaluate the MCP Server's performance on WebSearch tasks:
sh evaluation_websearch.sh YOUR_CONFIG_FILE
To evaluate the MCP Server's performance on Database Query tasks:
sh evaluation_db.sh YOUR_CONFIG_FILE
To evaluate the MCP Server's performance on GAIA tasks:
sh evaluation_gaia.sh YOUR_CONFIG_FILE
For example, save the above configuration in the configs/firecrawl.json file and launch it using:
sh evaluation_websearch.sh firecrawl.json
Datasets and Experimental Results
Our framework provides two datasets for evaluation. For the WebSearch task, the dataset is located at MCPBench/langProBe/WebSearch/data/websearch_600.jsonl, containing 200 QA pairs each from Frames, news, and technology domains. Our framework for automatically constructing evaluation datasets will be open-sourced later.
For the Database Query task, the dataset is located at MCPBench/langProBe/DB/data/car_bi.jsonl. You can add your own dataset in the following format:
{
"unique_id": "",
"Prompt": "",
"Answer": ""
}
We have evaluated mainstream MCP Servers on both tasks. For detailed experimental results, please refer to Documentation
π° Cite
If you find this work useful, please consider citing our project or giving us a π:
@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}
}
Alternatively, you may reference our report.
@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}
}
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.