← 开源
Accenture

mcp-bench

MCP-Bench: Benchmarking Tool-Using LLM Agents with Complex Real-World Tasks via MCP Servers

AI EngineeringTest & guardPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
511
Star
69
Fork
+0
本周
1
贡献者
创建于 2025-08-27 · 更新于 2026-10-07 · 今日第 18055 名
主要开发者
ZhentingWang

Accenture/mcp-bench 排名第 18,055,有 511 个星标。

同类别比较

Accenture/mcp-bench 排名第 18,055,此处有 8 个同类条目;seratch/ChatGPT-in-Slack 排名第 18,052。

同类别比较
名称排名指标
jshchnz/claude-code-scheduler18,024
语言:
TypeScript
星标数:
513
分叉数:
38
简介:
Put Claude on autopilot
brandonstarxel/chunking_evaluation18,043
语言:
Python
星标数:
512
分叉数:
94
简介:
This package, developed as part of our research detailed in the Chroma Technical Report, provides tools for text chunking and evaluation. It allows users to compare different chunking methods and includes implementations of several novel chunking strategies.
itbench-hub/ITBench18,047
语言:
Python
星标数:
512
分叉数:
51
简介:
An open source benchmarking framework for IT automation
seratch/ChatGPT-in-Slack18,052
语言:
Python
星标数:
512
分叉数:
178
简介:
Swift demonstration of how to build a Slack app that enables end-users to interact with a ChatGPT bot
Undertone0809/promptulate18,061
语言:
Python
星标数:
511
分叉数:
43
简介:
🚀Lightweight Large language model automation and Autonomous Language Agents development framework. Build your LLM Agent Application in a pythonic way!
gkonovalov/android-vad18,067
语言:
C
星标数:
511
分叉数:
101
简介:
Android Voice Activity Detection (VAD) library. Supports WebRTC VAD GMM, Silero VAD DNN, Yamnet VAD DNN models.
tryproduck/produck-skills18,076
语言:
HTML
星标数:
511
分叉数:
10
简介:
Agent skills to help you build products your users love.
GraphRAG-Bench/GraphRAG-Benchmark18,080
语言:
Python
星标数:
510
分叉数:
58
简介:
The official repo of GraphRAG-Bench for evaluating GraphRAG models. "When to use Graphs in RAG: A Comprehensive Analysis for Graph Retrieval-Augmented Generation". (ICLR'26)
关键参数与规格
关键参数与规格
参数值
语言Python
类别AI Engineering
子类别Test & guard
关键词Benchmarks, Evals, MCP, Tool use
星标数511
分叉数69
贡献者1
创建日期2025-08-27
更新日期2026-10-07
1 天星标数0
7 天星标数0
排名18,055
上次排名17,824
排名变化-231
7 天星标排名16,439
上次 7 天星标排名16,452
7 天星标排名变化13
总星标排名19,034
上次总星标排名19,010
总星标排名变化-24
国家Ireland
README 摘录

MCP-Bench: Benchmarking Tool-Using LLM Agents with Complex Real-World Tasks via MCP Servers Overview MCP-Bench is a comprehensive evaluation framework designed to assess Large Language Models' (LLMs) capabilities in tool-use scenarios through the Model Context Protocol (MCP). This benchmark provides an end-to-end pipeline for evaluating how effectively different LLMs can discover, select, and utilize tools to solve real-world tasks. News [2025-09] MCP-Bench is accepted to NeurIPS 2025 Workshop on Scaling Environments

for Agents. 629 | | 10 | qwen3-30b-a3b-instruct-2507 | 0. 582 | | 14 | llama-3-3-70b-instruct | 0. 530 | | 17 | llama-3-1-70b-instruct | 0. 508 | | 19 | llama-3-2-90b-vision-instruct | 0. 428 | *Overall Score represents the average performance across all evaluation dimensions including rule-based schema understanding, LLM-judged (o4-mini as judge model) task completion, tool usage, and planning effectiveness. Scores are averaged across single-server and multi-server settings. **Configure MCP Server API Keys

** Some MCP servers require external API keys to function properly. These keys are automatically loaded from . You should set these keys by yourself in file : Required API keys include (These API keys are free and easy to get. You can get all of them within 10 mins): : National Park Service API key (for nationalparks server) - Get API key : NASA Open Data API key (for nasa-mcp server) - Get API key : Hugging Face token (for huggingface-mcp-server) - Get token : Google

Maps API key (for mcp-google-map server) - Get API key : National Cancer Institute API key (for biomcp server) - Get API key This api key registration website might require US IP to open, see Issue #10 if you have difficulies for getting this api key. Basic Usage Optional: Add other model providers To add new models from OpenRouter: 1. **Find your model on OpenRouter** Visit OpenRouter Models to browse available models Copy the model ID (e. **Add the model configuration

** Edit and add your model in the OpenRouter section (around line 152) Follow this pattern: 3. **Run benchmark with your model** Optional: Using only OpenRouter API If you only want to use OpenRouter without Azure: 1. **Modify the code to access Azure models through OpenRouter:** Edit and comment out the Azure section (lines 69-101), then add Azure models through OpenRouter instead: This way all models will be accessed through OpenRouter's unified API. MCP Servers MCP-Bench includes 28 diverse

MCP servers: BioMCP - Biomedical research data, clinical trials, and health information Bibliomantic - I Ching divination, hexagrams, and mystical guidance Call for Papers - Academic conference submissions and call announcements Car Price Evaluator - Vehicle valuation and automotive market analysis Context7 - Project context management and documentation services DEX Paprika - Cryptocurrency DeFi analytics and decentralized exchange data FruityVice - Comprehensive fruit nutrition information and dietary data Game Trends - Gaming industry statistics and trend analysis Google Maps - Location services, geocoding, and mapping functionality Huge Icons - Icon

search, management, and design resources Hugging Face - Machine learning models, datasets, and AI capabilities Math MCP - Mathematical calculations and computational

常见问题

记录了多少星标和分叉?

Accenture/mcp-bench 有 511 个星标和 69 个分叉。

仓库排名是多少?

Accenture/mcp-bench 排名第 18,055。

记录的语言和类别是什么?

Accenture/mcp-bench 有 511 个星标,语言为 Python,类别为 AI Engineering。

哪个仓库排名最接近?

Accenture/mcp-bench 与 seratch/ChatGPT-in-Slack 比较,后者排名第 18,052,有 512 个星标。

README

MCP-Bench: Benchmarking Tool-Using LLM Agents with Complex Real-World Tasks via MCP Servers

Overview

MCP-Bench is a comprehensive evaluation framework designed to assess Large Language Models' (LLMs) capabilities in tool-use scenarios through the Model Context Protocol (MCP). This benchmark provides an end-to-end pipeline for evaluating how effectively different LLMs can discover, select, and utilize tools to solve real-world tasks.

News

  • [2025-09] MCP-Bench is accepted to NeurIPS 2025 Workshop on Scaling Environments for Agents.

Leaderboard

Rank Model Overall Score
1 gpt-5 0.749
2 o3 0.715
3 gpt-oss-120b 0.692
4 gemini-2.5-pro 0.690
5 claude-sonnet-4 0.681
6 qwen3-235b-a22b-2507 0.678
7 glm-4.5 0.668
8 gpt-oss-20b 0.654
9 kimi-k2 0.629
10 qwen3-30b-a3b-instruct-2507 0.627
11 gemini-2.5-flash-lite 0.598
12 gpt-4o 0.595
13 gemma-3-27b-it 0.582
14 llama-3-3-70b-instruct 0.558
15 gpt-4o-mini 0.557
16 mistral-small-2503 0.530
17 llama-3-1-70b-instruct 0.510
18 nova-micro-v1 0.508
19 llama-3-2-90b-vision-instruct 0.495
20 llama-3-1-8b-instruct 0.428

Overall Score represents the average performance across all evaluation dimensions including rule-based schema understanding, LLM-judged (o4-mini as judge model) task completion, tool usage, and planning effectiveness. Scores are averaged across single-server and multi-server settings.

Quick Start

Installation

  1. Clone the repository
git clone https://github.com/accenture/mcp-bench.git
cd mcp-bench
  1. Install dependencies
conda create -n mcpbench python=3.10
conda activate mcpbench
cd mcp_servers
# Install MCP server dependencies
bash ./install.sh
cd ..
  1. Set up environment variables
# Create .env file with API keys
# Default setup uses both OpenRouter and Azure OpenAI
# For Azure OpenAI, you also need to set your API version in file benchmark_config.yaml (line205)
# For OpenRouter-only setup, see "Optional: Using only OpenRouter API" section below
cat > .env << EOF
export OPENROUTER_API_KEY="your_openrouterkey_here"
export AZURE_OPENAI_API_KEY="your_azureopenai_apikey_here"
export AZURE_OPENAI_ENDPOINT="your_azureopenai_endpoint_here"
EOF
  1. Configure MCP Server API Keys

Some MCP servers require external API keys to function properly. These keys are automatically loaded from ./mcp_servers/api_key. You should set these keys by yourself in file ./mcp_servers/api_key:

# View configured API keys
cat ./mcp_servers/api_key

Required API keys include (These API keys are free and easy to get. You can get all of them within 10 mins):

  • NPS_API_KEY: National Park Service API key (for nationalparks server) - Get API key
  • NASA_API_KEY: NASA Open Data API key (for nasa-mcp server) - Get API key
  • HF_TOKEN: Hugging Face token (for huggingface-mcp-server) - Get token
  • GOOGLE_MAPS_API_KEY: Google Maps API key (for mcp-google-map server) - Get API key
  • NCI_API_KEY: National Cancer Institute API key (for biomcp server) - Get API key This api key registration website might require US IP to open, see Issue #10 if you have difficulies for getting this api key.

Basic Usage

# 1. Verify all MCP servers can be connected
##You should see "28/28 servers connected" 
##and "All successfully connected servers returned tools!" after running this
python ./utils/collect_mcp_info.py


# 2. List available models
source .env
python run_benchmark.py --list-models 

# 3. Run benchmark (gpt-oss-20b as an example)
##Must use o4-mini as judge model (hard-coded in line 429-436 in ./benchmark/runner.py) to reproduce the results.
## run all tasks
source .env
python run_benchmark.py --models gpt-oss-20b

## single server tasks
source .env
python run_benchmark.py --models gpt-oss-20b \
--tasks-file tasks/mcpbench_tasks_single_runner_format.json

## two server tasks
source .env
python run_benchmark.py --models gpt-oss-20b \
--tasks-file tasks/mcpbench_tasks_multi_2server_runner_format.json

## three server tasks
source .env
python run_benchmark.py --models gpt-oss-20b \
--tasks-file tasks/mcpbench_tasks_multi_3server_runner_format.json

Optional: Add other model providers

To add new models from OpenRouter:

  1. Find your model on OpenRouter

    • Visit OpenRouter Models to browse available models
    • Copy the model ID (e.g., anthropic/claude-sonnet-4 or meta-llama/llama-3.3-70b-instruct)
  2. Add the model configuration

    • Edit llm/factory.py and add your model in the OpenRouter section (around line 152)
    • Follow this pattern:
    configs["your-model-name"] = ModelConfig(
        name="your-model-name",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="provider/model-id"  # The exact model ID from OpenRouter
    )
    
  3. Verify the model is available

    source .env
    python run_benchmark.py --list-models
    # Your new model should appear in the list
    
  4. Run benchmark with your model

    source .env
    python run_benchmark.py --models your-model-name
    

Optional: Using only OpenRouter API

If you only want to use OpenRouter without Azure:

  1. Set up .env file with only OpenRouter:
cat > .env << EOF
OPENROUTER_API_KEY=your_openrouterkey_here
EOF
  1. Modify the code to access Azure models through OpenRouter:

Edit llm/factory.py and comment out the Azure section (lines 69-101), then add Azure models through OpenRouter instead:

# Comment out or remove the Azure section (lines 69-109)
# if os.getenv("AZURE_OPENAI_API_KEY") and os.getenv("AZURE_OPENAI_ENDPOINT"):
#     configs["o4-mini"] = ModelConfig(...)
#     ...

# Add Azure models through OpenRouter (in the OpenRouter section around line 106)
if os.getenv("OPENROUTER_API_KEY"):
    # Add OpenAI models via OpenRouter
    configs["gpt-4o"] = ModelConfig(
        name="gpt-4o",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="openai/gpt-4o"
    )
    
    configs["gpt-4o-mini"] = ModelConfig(
        name="gpt-4o-mini",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="openai/gpt-4o-mini"
    )
    
    configs["o3"] = ModelConfig(
        name="o3",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="openai/o3"
    )
    
    configs["o4-mini"] = ModelConfig(
        name="o4-mini",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="openai/o4-mini"
    )

    configs["gpt-5"] = ModelConfig(
        name="gpt-5",
        provider_type="openrouter",
        api_key=os.getenv("OPENROUTER_API_KEY"),
        base_url="https://openrouter.ai/api/v1",
        model_name="openai/gpt-5"
    )
    
    
    # Keep existing OpenRouter models...

This way all models will be accessed through OpenRouter's unified API.

MCP Servers

MCP-Bench includes 28 diverse MCP servers:

  • BioMCP - Biomedical research data, clinical trials, and health information
  • Bibliomantic - I Ching divination, hexagrams, and mystical guidance
  • Call for Papers - Academic conference submissions and call announcements
  • Car Price Evaluator - Vehicle valuation and automotive market analysis
  • Context7 - Project context management and documentation services
  • DEX Paprika - Cryptocurrency DeFi analytics and decentralized exchange data
  • FruityVice - Comprehensive fruit nutrition information and dietary data
  • Game Trends - Gaming industry statistics and trend analysis
  • Google Maps - Location services, geocoding, and mapping functionality
  • Huge Icons - Icon search, management, and design resources
  • Hugging Face - Machine learning models, datasets, and AI capabilities
  • Math MCP - Mathematical calculations and computational operations
  • Medical Calculator - Clinical calculation tools and medical formulas
  • Metropolitan Museum - Art collection database and museum information
  • Movie Recommender - Film recommendations and movie metadata
  • NASA Data - Space mission data and astronomical information
  • National Parks - US National Parks information and visitor services
  • NixOS - Package management and system configuration tools
  • OKX Exchange - Cryptocurrency trading data and market information
  • OpenAPI Explorer - API specification exploration and testing tools
  • OSINT Intelligence - Open source intelligence gathering and analysis
  • Paper Search - Academic paper search across multiple research databases
  • Reddit - Social media content and community discussions
  • Scientific Computing - Advanced mathematical computations and data analysis
  • Time MCP - Date, time utilities, and timezone conversions
  • Unit Converter - Measurement conversions across different unit systems
  • Weather Data - Weather forecasts and meteorological information
  • Wikipedia - Encyclopedia content search and retrieval

Project Structure

mcp-bench/
├── agent/                     # Task execution agents
│   ├── __init__.py
│   ├── executor.py           # Multi-round task executor with retry logic
│   └── execution_context.py  # Execution context management
├── benchmark/                 # Evaluation framework
│   ├── __init__.py
│   ├── evaluator.py          # LLM-as-judge evaluation metrics
│   ├── runner.py             # Benchmark orchestrator
│   ├── results_aggregator.py # Results aggregation and statistics
│   └── results_formatter.py  # Results formatting and display
├── config/                    # Configuration management
│   ├── __init__.py
│   ├── benchmark_config.yaml # Benchmark configuration
│   └── config_loader.py      # Configuration loader
├── llm/                       # LLM provider abstractions
│   ├── __init__.py
│   ├── factory.py            # Model factory for multiple providers
│   └── provider.py           # Unified provider interface
├── mcp_modules/              # MCP server management
│   ├── __init__.py
│   ├── connector.py          # Server connection handling
│   ├── server_manager.py     # Multi-server orchestration
│   ├── server_manager_persistent.py # Persistent connection manager
│   └── tool_cache.py         # Tool call caching mechanism
├── synthesis/                # Task generation
│   ├── __init__.py
│   ├── task_synthesis.py     # Task generation with fuzzy conversion
│   ├── generate_benchmark_tasks.py # Batch task generation script
│   ├── benchmark_generator.py # Unified benchmark task generator
│   ├── README.md             # Task synthesis documentation
│   └── split_combinations/   # Server combination splits
│       ├── mcp_2server_combinations.json
│       └── mcp_3server_combinations.json
├── utils/                    # Utilities
│   ├── __init__.py
│   ├── collect_mcp_info.py  # Server discovery and tool collection
│   ├── local_server_config.py # Local server configuration
│   └── error_handler.py     # Error handling utilities
├── tasks/                    # Benchmark task files
│   ├── mcpbench_tasks_single_runner_format.json
│   ├── mcpbench_tasks_multi_2server_runner_format.json
│   └── mcpbench_tasks_multi_3server_runner_format.json
├── mcp_servers/             # MCP server implementations (28 servers)
│   ├── api_key              # API keys configuration file
│   ├── commands.json        # Server command configurations
│   ├── install.sh          # Installation script for all servers
│   ├── requirements.txt    # Python dependencies
│   └── [28 server directories]
├── cache/                   # Tool call cache directory (auto-created)
├── run_benchmark.py         # Main benchmark runner script
├── README.md               # Project documentation
├── .gitignore              # Git ignore configuration
└── .gitmodules             # Git submodules configuration

Citation

If you use MCP-Bench in your research, please cite:

@article{wang2025mcpbench,
  title={MCP-Bench: Benchmarking Tool-Using LLM Agents with Complex Real-World Tasks via MCP Servers},
  author={Wang, Zhenting and Chang, Qi and Patel, Hemani and Biju, Shashank and Wu, Cheng-En and Liu, Quan and Ding, Aolin and Rezazadeh, Alireza and Shah, Ankit and Bao, Yujia and Siow, Eugene},
  journal={arXiv preprint arXiv:2508.20453},
  year={2025}
}

Star History

Acknowledgments

排名相邻
同类项目