MCP server de MCPMark
Evalúa modelos agénticos mediante pruebas de estrés de su capacidad para utilizar herramientas MCP en entornos reales como GitHub, Notion y Postgres.
También conocido como eval-sys/mcpmark
- Stars
- 473
- Herramientas
- —
- Descargas, 30 días
- —
- Última versión
- —
- Último commit
- 12 jun 2026
- Licencia
- Apache-2.0
¿Qué es MCPMark MCP?
MCPMark es un MCP server. Evalúa modelos agénticos mediante pruebas de estrés de su capacidad para utilizar herramientas MCP en entornos reales como GitHub, Notion y Postgres.
Resumen generado a partir del README del proyecto
Acerca del MCP server de MCPMark
Los investigadores e ingenieros que necesiten realizar pruebas de estrés a modelos agénticos pueden utilizar esta suite de evaluación para medir qué tan bien interactúan los agentes de IA con herramientas del mundo real. El sistema proporciona un benchmark reproducible en diversos entornos, incluyendo GitHub, Notion, Postgres, Playwright y el Filesystem local. Funciona de forma local o mediante Docker en macOS y Linux, utilizando LiteLLM para conectarse con varios modelos.
Los usuarios pueden ejecutar tareas con un solo comando dentro de sandboxes aislados para garantizar que los datos permanezcan seguros y los entornos se mantengan limpios. La suite incluye un conjunto estándar de 127 tareas y una suite ligera y sencilla para smoke tests rápidos o flujos de trabajo de CI. Cuenta con verificación automatizada, reanudación automática para tareas fallidas y compactación automática para gestionar los límites de contexto durante conversaciones largas. Los resultados se entregan mediante métricas unificadas como pass@k e informes agregados para ayudar a comparar la estabilidad y el rendimiento de los modelos.
Qué puedes hacer con él
- 1Realizar smoke testing rápidoUtiliza un conjunto más pequeño de tareas ligeras para verificar rápidamente las capacidades del agente en un pipeline de CI.
- 2Medir la estabilidad del agenteEjecuta múltiples iteraciones de la misma tarea para calcular métricas de estabilidad como pass@k.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Configuración
EVAL_NOTION_API_KEYEVAL_PARENT_PAGE_TITLEGITHUB_EVAL_ORGGITHUB_TOKENSOPENAI_API_KEYOPENAI_BASE_URLPLAYWRIGHT_BROWSERPLAYWRIGHT_HEADLESSPOSTGRES_HOSTPOSTGRES_PASSWORDPOSTGRES_PORTPOSTGRES_USERNAMESOURCE_NOTION_API_KEY
| Nombre | Descripción | Tipo |
|---|---|---|
| EVAL_NOTION_API_KEY | — | |
| EVAL_PARENT_PAGE_TITLE | — | |
| GITHUB_EVAL_ORG | — | |
| GITHUB_TOKENS | — | |
| OPENAI_API_KEY | — | |
| OPENAI_BASE_URL | — | |
| PLAYWRIGHT_BROWSER | — | |
| PLAYWRIGHT_HEADLESS | — | |
| POSTGRES_HOST | — | |
| POSTGRES_PASSWORD | — | |
| POSTGRES_PORT | — | |
| POSTGRES_USERNAME | — | |
| SOURCE_NOTION_API_KEY | — |
Verificaciones automáticas
Ejecutado 14 nov 2026Informe completo →Aún no verificado. Un servidor necesita una puntuación de 80, ningún hallazgo grave y suficientes datos para que podamos revisarlo. Cómo funcionan las verificaciones · Qué corregir para obtener más puntos
- Repositorio de origen vinculado y accesibleeval-sys/mcpmark is public and reachablegithub.com/eval-sys/mcpmark ↗Aprobado
- El paquete indica este repositorio como su origenNo verificado
- Procedencia de la compilación (atestación de Sigstore)No verificado
- Licencia de código abierto (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-06-12github.com/eval-sys/mcpmark ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo verificado
- No hay avisos críticos en el paquete ni en sus dependenciasNo verificado
- Sin instrucciones ocultas para el modelo0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo verificado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubMCPMark: Stress-Testing Comprehensive MCP Use
An evaluation suite for agentic models in real MCP tool environments (Notion / GitHub / Filesystem / Postgres / Playwright).
MCPMark provides a reproducible, extensible benchmark for researchers and engineers: one-command tasks, isolated sandboxes, auto-resume for failures, unified metrics, and aggregated reports.
🚀 MCPMark Verified is now the default. The standard tasks in this repository are the Verified set — every environment version-pinned and every verifier stabilized. Results from earlier task versions are deprecated and not directly comparable, so please report new numbers as MCPMark Verified. On the Verified set,
gpt-5.5(xhigh) leads at 92.9% andkimi-k2.7reaches 81.1%. See #264.
News
- 🚀 12 Jun — MCPMark Verified is now the default task set: every environment version-pinned and every verifier stabilized. Earlier task versions are deprecated; please report scores as MCPMark Verified. On the Verified set,
gpt-5.5(xhigh) leads at 92.9% andkimi-k2.7reaches 81.1%. See #264. - 📣 27 May — The previous Notion Source Hub page is deprecated; please use the new link: MCPMark Source Hub.
- 📌 21 Jan — Pinned MCP server versions for reproducible benchmarks: GitHub MCP Server
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. - 🔥 13 Dec — Added auto-compaction support (
--compaction-token) to summarize long conversations and avoid context overflow during evaluation (#236). - 🏅 02 Dec — Evaluated
gemini-3-pro-preview(thinking: low): Pass@1 50.6% ± 2.3% — so close togpt-5-high(51.6%)! Alsodeepseek-v3.2-thinking36.8% anddeepseek-v3.2-chat29.7% - 🔥 02 Dec — Obfuscate GitHub @mentions to prevent notification spam during evaluation (#229)
- 🏅 01 Dec — DeepSeek v3.2 uses MCPMark! Kudos on securing the best open-source model. X Post | Technical Report
- 🔥 17 Nov — Added 50 easy tasks (10 per MCP server) for smaller open-source models (#225)
- 🤝 31 Oct — Community PR from insforge: better MCP servers achieve better results with fewer tokens! (#214)
- 🔥 13 Oct — Added ReAct agent support. PRs for new agent scaffolds welcome! (#209)
- 🏅 10 Sep —
qwen-3-coder-plusis the best open-source model! Kudos to Qwen team. X Post
What you can do with MCPMark
- Evaluate real tool usage across multiple MCP services:
Notion,GitHub,Filesystem,Postgres,Playwright. - Use ready-to-run tasks covering practical workflows, each with strict automated verification.
- Reliable and reproducible: isolated environments that do not pollute your accounts/data; failed tasks auto-retry and resume.
- Unified metrics and aggregation: single/multi-run (pass@k, avg@k, etc.) with automated results aggregation.
- Flexible deployment: local or Docker; fully validated on macOS and Linux.
Quickstart (5 minutes)
1) Clone the repository
git clone https://github.com/eval-sys/mcpmark.git
cd mcpmark
2) Set environment variables (create .mcp_env at repo root)
Only set what you need. Add service credentials when running tasks for that service.
# Example: OpenAI
OPENAI_BASE_URL="https://api.openai.com/v1"
OPENAI_API_KEY="sk-..."
# Optional: Notion (only for Notion tasks)
SOURCE_NOTION_API_KEY="your-source-notion-api-key"
EVAL_NOTION_API_KEY="your-eval-notion-api-key"
EVAL_PARENT_PAGE_TITLE="MCPMark Eval Hub"
PLAYWRIGHT_BROWSER="chromium" # chromium | firefox
PLAYWRIGHT_HEADLESS="True"
# Optional: GitHub (only for GitHub tasks)
GITHUB_TOKENS="token1,token2" # token pooling for rate limits
GITHUB_EVAL_ORG="your-eval-org"
# Optional: Postgres (only for Postgres tasks)
POSTGRES_HOST="localhost"
POSTGRES_PORT="5432"
POSTGRES_USERNAME="postgres"
POSTGRES_PASSWORD="password"
See docs/introduction.md and the service guides below for more details.
3) Install and run a minimal example
Local (Recommended)
pip install -e .
# If you'll use browser-based tasks, install Playwright browsers first
playwright install
MCPMark defaults to the built-in orchestration agent (MCPMarkAgent). To experiment with the ReAct-style agent, pass --agent react to pipeline.py (other settings stay the same).
Docker
./build-docker.sh
Run a filesystem task (no external accounts required):
python -m pipeline \
--mcp filesystem \
--k 1 \ # run once to quick start
--models gpt-5 \ # or any model you configured
--tasks file_property/size_classification
# Add --task-suite easy to run the lightweight dataset (where available)
Results are saved to ./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/...).
Run your evaluations
Task suites (standard vs easy)
- Each MCP service now stores tasks under
tasks/<mcp>/<task_suite>/<category>/<task>/. standard(default) covers the full benchmark (127 tasks today).easyhosts 10 lightweight tasks per MCP, ideal for smoke tests and CI (GitHub’s are already available undertasks/github/easy).- Switch suites with
--task-suite easy(defaults to--task-suite standard).
Single run (k=1)
# Run ALL tasks for a service
python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL --k 1
# Run a task group
python -m pipeline --exp-name exp --mcp notion --tasks online_resume --models MODEL --k 1
# Run a specific task
python -m pipeline --exp-name exp --mcp notion --tasks online_resume/daily_itinerary_overview --models MODEL --k 1
# Evaluate multiple models
python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL1,MODEL2,MODEL3 --k 1
Multiple runs (k>1) for pass@k
# Run k=4 to compute stability metrics (requires --exp-name to aggregate final results)
python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL
# Aggregate results (pass@1 / pass@k / pass^k / avg@k)
python -m src.aggregators.aggregate_results --exp-name exp
Run with Docker
# Run all tasks for a service
./run-task.sh --mcp notion --models MODEL --exp-name exp --tasks all
# Cross-service benchmark
./run-benchmark.sh --models MODEL --exp-name exp --docker
Please visit docs/introduction.md for choices of MODEL.
Tip: MCPMark supports auto-resume. When re-running, only unfinished tasks will execute. Failures matching our retryable patterns (see RETRYABLE_PATTERNS) are retried automatically. Models may emit different error strings—if you encounter a new resumable error, please open a PR or issue.
Tip: MCPMark supports auto-compaction; pass --compaction-token N to enable automatic context summarization when prompt tokens reach N (use 999999999 to disable).
Service setup and authentication
| 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 |
You can also follow Quickstart for the shortest end-to-end path.
Important Notice: GitHub Repository Privacy
Please ensure your evaluation repositories are set to PRIVATE.
GitHub state templates are now automatically downloaded from our CDN during evaluation — no manual download is required. However, because these templates contain issues and pull requests from real open-source repositories, the recreation process includes @username mentions of the original authors.
We have received feedback from original GitHub authors who were inadvertently notified when evaluation repositories were created as public. To be a responsible member of the open-source community, we urge all users to:
- Always keep evaluation repositories private during the evaluation process.
- In the latest version, we have added random suffixes to all
@usernamementions (e.g.,@userbecomes@user_x7k2) and implemented a safety check that prevents importing templates to public repositories. - If you are using an older version of MCPMark, please either:
- Pull the latest code immediately, or
- Manually ensure all GitHub evaluation repositories are set to private.
Thank you for helping us maintain a respectful relationship with the open-source community.
Results and metrics
- Results are organized under
./results/{exp_name}/{model}__{mcp}/run-*/(JSON + CSV per task). - Generate a summary with:
# Basic usage
python -m src.aggregators.aggregate_results --exp-name exp
# For k-run experiments with single-run models
python -m src.aggregators.aggregate_results --exp-name exp --k 4 --single-run-models claude-opus-4-1
- Only models with complete results across all tasks and runs are included in the final summary.
- Includes multi-run metrics (pass@k, pass^k) for stability comparisons when k > 1.
Model and Tasks
- Model support: MCPMark calls models via LiteLLM — see the LiteLLM docs:
LiteLLM Doc. For Anthropic (Claude) extended thinking mode (enabled via--reasoning-effort), we use Anthropic’s native API. - See
docs/introduction.mdfor details and configuration of supported models in MCPMark. - To add a new model, edit
src/model_config.py. Before adding, check LiteLLM supported models/providers. SeeLiteLLM Doc. - Task design principles in
docs/datasets/task.md. Each task ships with an automatedverify.pyfor objective, reproducible evaluation, seedocs/task.mdfor details.
Contributing
Contributions are welcome:
- Add a new task under
tasks/<mcp>/<task_suite>/<category_id>/<task_id>/withmeta.json,description.mdandverify.py. - Ensure local checks pass and open a PR.
- See
docs/contributing/make-contribution.md.
Citation
If you find our works useful for your research, please consider citing:
@misc{wu2025mcpmark,
title={MCPMark: A Benchmark for Stress-Testing Realistic and Comprehensive MCP Use},
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},
year={2025},
eprint={2509.24002},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2509.24002},
}
License
This project is licensed under the Apache License 2.0 — see LICENSE.
Preguntas sobre MCPMark MCP
¿Cómo puedo asegurar que mis evaluaciones sean reproducibles?
MCPMark utiliza entornos con versiones fijas y verificadores estabilizados para garantizar que los resultados sean consistentes y reproducibles.
¿Qué debo hacer con la privacidad de los repositorios de GitHub durante las pruebas?
Siempre debes mantener los repositorios de evaluación en privado para evitar notificar inadvertidamente a los autores originales mediante @mentions.