# MCP Mark Comprehensive Agent Benchmark

> Evaluate LLM agents through realistic multi-turn tool-use workflows across 127 complex MCP tasks spanning CRUD operations, state management, and error handling. Use when assessing agent capabilities on real-world tool orchestration beyond shallow read-only interactions.

- Skill: `adu2021/mcp-mark-comprehensive-agent-benchmark` (Agent Skill)
- Install (CLI): `npx skillmds@latest add adu2021/mcp-mark-comprehensive-agent-benchmark`
- Raw SKILL.md: https://api.skillmd.com/api/skills/adu2021/mcp-mark-comprehensive-agent-benchmark/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: adu2021 (https://skillmd.com/u/adu2021)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/adu2021/mcp-mark-comprehensive-agent-benchmark

---


# MCPMark: Comprehensive Benchmarking of MCP-based LLM Agents

MCPMark addresses a critical evaluation gap in LLM agent benchmarks by introducing 127 complex, real-world MCP (Model Context Protocol) tasks that require agents to execute multi-step workflows with persistent state changes, error recovery, and verification logic—moving beyond shallow read-heavy interactions.

## Core Architecture

- **127 diverse tasks** across 5 MCP environments (GitHub, Slack, Linear, Notion, Google Drive)
- **5 MCP servers** with 55 integrated endpoints enabling realistic tool interactions
- **Metrics system** with pass@1 (single attempt), pass@4 (best-of-4), pass^4 (all-4-succeed) scoring
- **Verification framework** with programmatic state checking and rollback on test failure
- **Task diversity**: CRUD-balanced with ~16 agent turns per task vs. 3-7 in prior benchmarks

## Implementation Steps

Create evaluation infrastructure by instantiating the benchmark:

```python
# Initialize MCPMark benchmark with environment configuration
from mcpmark import MCPMark

benchmark = MCPMark(
    environments=["github", "slack", "linear", "notion", "googledrive"],
    num_tasks=127,
    task_timeout=300,  # seconds per task
    max_turns=20,
    verification_enabled=True
)

# Execute evaluation on target agent
results = benchmark.evaluate(
    agent=your_agent_instance,
    metrics=["pass@1", "pass@4", "pass^4"],
    parallel=False  # sequential execution preserves state integrity
)
```

For multi-turn workflow evaluation, construct task-specific assertions:

```python
# Define task verification logic with state inspection
from mcpmark.tasks import Task

def verify_task_success(task_state, expected_outcome):
    """Check if agent achieved intended state modifications"""
    return task_state.current_state == expected_outcome.final_state
```

## Practical Guidance

**When to use MCPMark:**
- Evaluating LLM agents requiring realistic tool orchestration
- Benchmarking on MCP-compatible systems (GitHub, Slack, Notion, Linear, Google Drive)
- Assessing error recovery and state management capabilities
- Multi-turn task planning and sequential decision-making

**When NOT to use:**
- Read-only retrieval tasks (use simpler benchmarks like WebArena)
- Real-time interactive systems (MCPMark requires full task isolation)
- Domains without programmatic verification (state checking critical to benchmark integrity)

**Hyperparameter considerations:**
- **Task timeout (300s)**: Adjust based on environment latency; increase for cloud-based MCPs
- **Max turns (20)**: Sufficient for most workflows; increase only if trajectories exceed 16-turn average
- **Parallel execution**: Keep disabled to preserve state isolation between tasks
- **Verification strictness**: Require exact state matches for deterministic operations; allow approximate matching for time-sensitive queries

## Key Findings from Benchmark

- Best existing models achieve only 52.56% pass@1 and 33.86% pass^4
- Multi-step state modifications remain challenging for current agents
- Error recovery and retry logic differentiate high-performing models

## References

MCPMark evaluates agents on the Model Context Protocol standard. For MCP ecosystem details: https://spec.modelcontextprotocol.io

