Views
No views yet
v0.15.0 (switched to Docker for version control), Notion MCP Server @1.9.1 (Notion released 2.0 but it has many bugs, not recommended). See #246.--compaction-token) to summarize long conversations and avoid context overflow during evaluation (#236).gemini-3-pro-preview (thinking: low): Pass@1 50.6% ± 2.3% — so close to gpt-5-high (51.6%)! Also deepseek-v3.2-thinking 36.8% and deepseek-v3.2-chat 29.7%qwen-3-coder-plus is the best open-source model! Kudos to Qwen team. X PostNotion, GitHub, Filesystem, Postgres, Playwright.1git clone https://github.com/eval-sys/mcpmark.git
2cd mcpmark.mcp_env at repo root)1# Example: OpenAI
2OPENAI_BASE_URL="https://api.openai.com/v1"
3OPENAI_API_KEY="sk-..."
4
5# Optional: Notion (only for Notion tasks)
6SOURCE_NOTION_API_KEY="your-source-notion-api-key"
7EVAL_NOTION_API_KEY="your-eval-notion-api-key"
8EVAL_PARENT_PAGE_TITLE="MCPMark Eval Hub"
9PLAYWRIGHT_BROWSER="chromium" # chromium | firefox
10PLAYWRIGHT_HEADLESS="True"
11
12# Optional: GitHub (only for GitHub tasks)
13GITHUB_TOKENS="token1,token2" # token pooling for rate limits
14GITHUB_EVAL_ORG="your-eval-org"
15
16# Optional: Postgres (only for Postgres tasks)
17POSTGRES_HOST="localhost"
18POSTGRES_PORT="5432"
19POSTGRES_USERNAME="postgres"
20POSTGRES_PASSWORD="password"docs/introduction.md and the service guides below for more details.1pip install -e .
2# If you'll use browser-based tasks, install Playwright browsers first
3playwright installMCPMarkAgent). To experiment with the ReAct-style agent, pass --agent react to pipeline.py (other settings stay the same)../build-docker.sh1python -m pipeline \
2 --mcp filesystem \
3 --k 1 \ # run once to quick start
4 --models gpt-5 \ # or any model you configured
5 --tasks file_property/size_classification
6# Add --task-suite easy to run the lightweight dataset (where available)./results/{exp_name}/{model}__{mcp}/run-*/... for the standard suite and ./results/{exp_name}/{model}__{mcp}-easy/run-*/... when you run --task-suite easy (e.g., ./results/test-run/gpt-5__filesystem/run-1/... or ./results/test-run/gpt-5__github-easy/run-1/...).tasks/<mcp>/<task_suite>/<category>/<task>/.standard (default) covers the full benchmark (127 tasks today).easy hosts 10 lightweight tasks per MCP, ideal for smoke tests and CI (GitHub’s are already available under tasks/github/easy).--task-suite easy (defaults to --task-suite standard).1# Run ALL tasks for a service
2python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL --k 1
3
4# Run a task group
5python -m pipeline --exp-name exp --mcp notion --tasks online_resume --models MODEL --k 1
6
7# Run a specific task
8python -m pipeline --exp-name exp --mcp notion --tasks online_resume/daily_itinerary_overview --models MODEL --k 1
9
10# Evaluate multiple models
11python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL1,MODEL2,MODEL3 --k 11# Run k=4 to compute stability metrics (requires --exp-name to aggregate final results)
2python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL
3
4# Aggregate results (pass@1 / pass@k / pass^k / avg@k)
5python -m src.aggregators.aggregate_results --exp-name exp1# Run all tasks for a service
2./run-task.sh --mcp notion --models MODEL --exp-name exp --tasks all
3
4# Cross-service benchmark
5./run-benchmark.sh --models MODEL --exp-name exp --dockerdocs/introduction.md for choices of MODEL.--compaction-token N to enable automatic context summarization when prompt tokens reach N (use 999999999 to disable).| Service | Setup summary | Docs |
|---|---|---|
| Notion | Environment isolation (Source Hub / Eval Hub), integration creation and grants, browser login verification. | Guide |
| GitHub | Multi-account token pooling recommended; import pre-exported repo state if needed. | Guide |
| Postgres | Start via Docker and import sample databases. | Setup |
| Playwright | Install browsers before first run; defaults to chromium. | Setup |
| Filesystem | Zero-configuration, run directly. | Config |
Please ensure your evaluation repositories are set to PRIVATE.
@username mentions of the original authors.@username mentions (e.g., @user becomes @user_x7k2) and implemented a safety check that prevents importing templates to public repositories../results/{exp_name}/{model}__{mcp}/run-*/ (JSON + CSV per task).1# Basic usage
2python -m src.aggregators.aggregate_results --exp-name exp
3
4# For k-run experiments with single-run models
5python -m src.aggregators.aggregate_results --exp-name exp --k 4 --single-run-models claude-opus-4-1LiteLLM Doc. For Anthropic (Claude) extended thinking mode (enabled via --reasoning-effort), we use Anthropic’s native API.docs/introduction.md for details and configuration of supported models in MCPMark.src/model_config.py. Before adding, check LiteLLM supported models/providers. See LiteLLM Doc.docs/datasets/task.md. Each task ships with an automated verify.py for objective, reproducible evaluation, see docs/task.md for details.tasks/<mcp>/<task_suite>/<category_id>/<task_id>/ with meta.json, description.md and verify.py.docs/contributing/make-contribution.md.1@misc{wu2025mcpmark,
2 title={MCPMark: A Benchmark for Stress-Testing Realistic and Comprehensive MCP Use},
3 author={Zijian Wu and Xiangyan Liu and Xinyuan Zhang and Lingjun Chen and Fanqing Meng and Lingxiao Du and Yiran Zhao and Fanshi Zhang and Yaoqi Ye and Jiawei Wang and Zirui Wang and Jinjie Ni and Yufan Yang and Arvin Xu and Michael Qizhe Shieh},
4 year={2025},
5 eprint={2509.24002},
6 archivePrefix={arXiv},
7 primaryClass={cs.CL},
8 url={https://arxiv.org/abs/2509.24002},
9}LICENSE.