|
| 1 | +--- |
| 2 | +title: "We Benchmarked 5 MCP Servers — Here's What We Found" |
| 3 | +date: 2026-04-13 |
| 4 | +author: AgentHunter Eval |
| 5 | +--- |
| 6 | + |
| 7 | +# We Benchmarked 5 MCP Servers — Here's What We Found |
| 8 | + |
| 9 | +The Model Context Protocol (MCP) ecosystem has exploded — over 10,000 servers on the official registry, 97 million monthly SDK downloads. But which MCP servers are actually good? |
| 10 | + |
| 11 | +We built [agent-eval](https://github.com/OrrisTech/agent-eval), an open-source evaluation framework, and used it to benchmark 12 popular MCP servers across 5 dimensions: **Capability**, **Reliability**, **Efficiency**, **Safety**, and **Developer Experience**. |
| 12 | + |
| 13 | +Here's what we found. |
| 14 | + |
| 15 | +## Methodology |
| 16 | + |
| 17 | +For each server, we: |
| 18 | +1. Connected via stdio transport and discovered all available tools |
| 19 | +2. Used Claude to auto-generate test tasks based on each tool's schema |
| 20 | +3. Executed every task multiple times to measure reliability |
| 21 | +4. Scored output quality using LLM-as-judge (Claude Sonnet 4) |
| 22 | +5. Measured latency, success rate, and safety (prompt injection resistance) |
| 23 | + |
| 24 | +All evaluation code is [open source](https://github.com/OrrisTech/agent-eval). You can reproduce these results yourself: |
| 25 | + |
| 26 | +```bash |
| 27 | +npx agent-eval init |
| 28 | +npx agent-eval run |
| 29 | +``` |
| 30 | + |
| 31 | +## Rankings |
| 32 | + |
| 33 | +| Rank | Server | Category | Score | Capability | Reliability | Efficiency | Safety | |
| 34 | +|------|--------|----------|-------|------------|-------------|------------|--------| |
| 35 | +| 1 🥇 | **mcp-sequential-thinking** | Reasoning | **77** | 33 | 100 | 100 | 100 | |
| 36 | +| 2 🥈 | **mcp-datetime** | Utilities | **75** | 52 | 73 | 100 | 92 | |
| 37 | +| 3 🥉 | **context7** | Search | **73** | 44 | 100 | 88 | 67 | |
| 38 | +| 4 | **mcp-everything** | Reference | **68** | 48 | 77 | 76 | 82 | |
| 39 | +| 5 | **mcp-filesystem** | Filesystem | **62** | 54 | 14 | 100 | 100 | |
| 40 | + |
| 41 | + |
| 42 | +## Key Findings |
| 43 | + |
| 44 | +### 1. Reliability varies wildly |
| 45 | + |
| 46 | +Of 5 servers tested, 2 achieved 80%+ reliability. However, 1 server(s) fell below 50%: **mcp-filesystem** (14%). Low reliability usually means the server crashes, times out, or returns errors for valid inputs. |
| 47 | + |
| 48 | +### 2. Efficiency is generally excellent |
| 49 | + |
| 50 | +Average latency across all servers was 879ms. 3/5 servers scored 90+ on efficiency, meaning sub-second response times. MCP's stdio transport is inherently fast since there's no network overhead. |
| 51 | + |
| 52 | +### 3. Safety scores reveal gaps |
| 53 | + |
| 54 | +2/5 servers scored a perfect 100 on safety. 1 scored below 70: **context7** (67). Lower safety scores indicate the server may be susceptible to prompt injection or may expose data outside its intended scope. |
| 55 | + |
| 56 | +## Individual Results |
| 57 | + |
| 58 | +### mcp-sequential-thinking |
| 59 | + |
| 60 | +- **Category**: Reasoning |
| 61 | +- **Score**: 77/100 |
| 62 | +- **Tools discovered**: 1 |
| 63 | +- **Tasks generated**: 3 |
| 64 | +- **Success rate**: 100% |
| 65 | +- **Avg latency**: 2ms |
| 66 | +- **Breakdown**: Cap 33 | Rel 100 | Eff 100 | Safe 100 | DX 70 |
| 67 | + |
| 68 | +### mcp-datetime |
| 69 | + |
| 70 | +- **Category**: Utilities |
| 71 | +- **Score**: 75/100 |
| 72 | +- **Tools discovered**: 10 |
| 73 | +- **Tasks generated**: 30 |
| 74 | +- **Success rate**: 73% |
| 75 | +- **Avg latency**: 2ms |
| 76 | +- **Breakdown**: Cap 52 | Rel 73 | Eff 100 | Safe 92 | DX 70 |
| 77 | + |
| 78 | +### context7 |
| 79 | + |
| 80 | +- **Category**: Search |
| 81 | +- **Score**: 73/100 |
| 82 | +- **Tools discovered**: 2 |
| 83 | +- **Tasks generated**: 6 |
| 84 | +- **Success rate**: 100% |
| 85 | +- **Avg latency**: 1642ms |
| 86 | +- **Breakdown**: Cap 44 | Rel 100 | Eff 88 | Safe 67 | DX 70 |
| 87 | + |
| 88 | +### mcp-everything |
| 89 | + |
| 90 | +- **Category**: Reference |
| 91 | +- **Score**: 68/100 |
| 92 | +- **Tools discovered**: 13 |
| 93 | +- **Tasks generated**: 39 |
| 94 | +- **Success rate**: 77% |
| 95 | +- **Avg latency**: 2747ms |
| 96 | +- **Breakdown**: Cap 48 | Rel 77 | Eff 76 | Safe 82 | DX 70 |
| 97 | + |
| 98 | +### mcp-filesystem |
| 99 | + |
| 100 | +- **Category**: Filesystem |
| 101 | +- **Score**: 62/100 |
| 102 | +- **Tools discovered**: 14 |
| 103 | +- **Tasks generated**: 42 |
| 104 | +- **Success rate**: 14% |
| 105 | +- **Avg latency**: 1ms |
| 106 | +- **Breakdown**: Cap 54 | Rel 14 | Eff 100 | Safe 100 | DX 70 |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | +## Servers That Failed Evaluation |
| 111 | + |
| 112 | +These servers could not be evaluated (connection failures, crashes, or missing dependencies): |
| 113 | + |
| 114 | +- **mcp-memory** (Memory): - Loading config... |
| 115 | +[32m✔[39m Config loaded: mcp-memory (MCP) |
| 116 | +- Connecting to agent via MCP... |
| 117 | +[3 |
| 118 | +- **mcp-fetch** (Web): - Loading config... |
| 119 | +[32m✔[39m Config loaded: mcp-fetch (MCP) |
| 120 | +- Connecting to agent via MCP... |
| 121 | + |
| 122 | +Err |
| 123 | +- **mcp-git** (DevTools): - Loading config... |
| 124 | +[32m✔[39m Config loaded: mcp-git (MCP) |
| 125 | +- Connecting to agent via MCP... |
| 126 | +[32m✔ |
| 127 | +- **playwright-mcp** (Browser): - Loading config... |
| 128 | +[32m✔[39m Config loaded: playwright-mcp (MCP) |
| 129 | +- Connecting to agent via MCP... |
| 130 | +- **mcp-puppeteer** (Browser): - Loading config... |
| 131 | +[32m✔[39m Config loaded: mcp-puppeteer (MCP) |
| 132 | +- Connecting to agent via MCP... |
| 133 | + |
| 134 | +- **mcp-sqlite** (Database): - Loading config... |
| 135 | +[32m✔[39m Config loaded: mcp-sqlite (MCP) |
| 136 | +- Connecting to agent via MCP... |
| 137 | + |
| 138 | +Er |
| 139 | +- **notion-mcp** (Productivity): - Loading config... |
| 140 | +[32m✔[39m Config loaded: notion-mcp (MCP) |
| 141 | +- Connecting to agent via MCP... |
| 142 | +[3 |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | +## How Scores Are Calculated |
| 147 | + |
| 148 | +| Dimension | Weight | What we measure | |
| 149 | +|-----------|--------|-----------------| |
| 150 | +| **Capability** | 30% | Task completion rate + output quality (LLM-as-judge) | |
| 151 | +| **Reliability** | 25% | Success rate across multiple runs | |
| 152 | +| **Efficiency** | 20% | Response latency (sub-500ms = 100, >10s = 0) | |
| 153 | +| **Safety** | 15% | Prompt injection resistance, scope violations | |
| 154 | +| **Dev Experience** | 10% | Documentation quality, error messages, schema clarity | |
| 155 | + |
| 156 | +**Overall Score** = weighted average of all dimensions, scaled to 0-100. |
| 157 | + |
| 158 | +## Reproduce These Results |
| 159 | + |
| 160 | +```bash |
| 161 | +git clone https://github.com/OrrisTech/agent-eval |
| 162 | +cd agent-eval |
| 163 | +bun install |
| 164 | +bun run --filter agent-eval build |
| 165 | + |
| 166 | +# Evaluate a single server |
| 167 | +echo 'agent: |
| 168 | + name: "mcp-memory" |
| 169 | + protocol: mcp |
| 170 | + endpoint: "npx -y @modelcontextprotocol/server-memory" |
| 171 | + capabilities: ["memory"] |
| 172 | +eval: |
| 173 | + runs: 3' > agent-eval.yaml |
| 174 | + |
| 175 | +ANTHROPIC_API_KEY=your-key npx agent-eval run |
| 176 | +``` |
| 177 | + |
| 178 | +## What's Next |
| 179 | + |
| 180 | +We're expanding to evaluate A2A agents and REST API agents. If you'd like your MCP server benchmarked, [open an issue](https://github.com/OrrisTech/agent-eval/issues) or submit a PR to our server list. |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +*Evaluations run on 2026-04-13 using agent-eval v0.1.0. Scores may vary between runs due to LLM non-determinism. Full raw data available in the [results directory](https://github.com/OrrisTech/agent-eval/tree/main/results).* |
0 commit comments