11,127 MCP servers scanned today, 34,539 issues found
June 2026: state of MCPWorks in Claude. Broken in Cursor.
Every client calls your MCP server differently, and your customer finds out first. Free scan in 30 seconds, no code changes. Monitoring names which client is skipping your tools.
- 132+
- scanners
- 11,127
- MCP servers scanned today
- 34,539
- issues found in 24h
- 995.9K
- requests monitored in the last 30 days
It knows what broken looks like
Spanly analyzed 11,127 production MCP servers today. That's how it can tell you a tool name is why agents pick the wrong tool, or a schema is why they pass bad arguments, not just that p95 moved.
Scans
42
Manifest scans in the selected time range
Issues found
11
5 open now
Health score
82
Average across all scanners
- Prompt injection in tool output
web_searchmcp-prod-east21s ago
- Secrets returned in tool arguments
db_querymcp-prod-west4m ago - Oversized tool result
file_readmcp-prod-east18m ago
- Tool name confuses the agent
exec2mcp-staging1h ago - Schema accepts malformed arguments
create_invoicemcp-prod-east2h ago
- Unhelpful error messages
db_querymcp-prod-westresolved 1d ago
Patches tested on a slice of live sessions, then applied to every session until you ship them to your source.
In testing
| Status | Subject tools | Primary metric | Mode | Candidate share | Time to verdict |
|---|---|---|---|---|---|
Testing | Rename exec2 to run_shell_command exec2 | wrong tool rate | A/B | 20% | ~3 days left |
Testing | Tighten create_invoice schema create_invoice | invalid arguments | A/B | 10% | ~5 days left |
Applied
| Status | Subject tools | Primary metric | Mode | Candidate share | Time to verdict |
|---|---|---|---|---|---|
Applied | Trim oversized file_read output file_read | result size | Before/after | 100% | Awaiting upstream |
Not applied
| Status | Subject tools | Primary metric | Mode | Candidate share | Time to verdict |
|---|---|---|---|---|---|
Inconclusive | Reword db_query description db_query | wrong tool rate | A/B | 15% | Ended Feb 14 |
| User | Account | Sessions | Requests | Errors | Last seen |
|---|---|---|---|---|---|
| usr_8f3a91 | Acme Corp | 42 | 1,841 | 0 | just now |
| usr_72c1ed | Globex | 31 | 1,204 | 4 | 2m ago |
| usr_a14b09 | Initech | 28 | 982 | 0 | 7m ago |
| usr_61f8c7 | Umbrella | 19 | 641 | 2 | 14m ago |
| usr_d2e4a8 | Hooli | 12 | 318 | 0 | 42m ago |
Monitoring
Health monitors connect to your MCP servers on a schedule, list their tools, prompts and resources, and alert your channels when a server goes down.
Health monitors
3 of 10 monitors used across your organization.
| Monitor | Status | Uptime 24h | Uptime 7d | Interval | Inventory | Last checked |
|---|---|---|---|---|---|---|
| https://mcp.acme.com/sse | Up | 100% | 99.9% | Every 5m | 12 tools · 4 prompts · 9 resources | 38s ago |
| https://edge-eu.acme.com/mcp | Up | 100% | 99.7% | Every 5m | 9 tools · 3 prompts · 6 resources | 1m ago |
| https://staging.acme.com/mcp | Down | 92.4% | 98.1% | Every 15m | 9 tools · 3 prompts · 6 resources | 2m ago |
| 1 | Tool | code_exec | 982ms |
| 2 | Tool | web_search | 418ms |
| 3 | Resource | /users/{id} | 184ms |
| 4 | Tool | db_query | 88ms |
| 5 | initialize | - | 15ms |
-32603 | 18 | 21s ago |
-32602 | 7 | 2m ago |
-32001 | 4 | 12m ago |
| mcp-prod-east | 14,210requests | 18errors |
| mcp-prod-west | 9,842requests | 7errors |
| mcp-edge-eu | 6,521requests | 4errors |
| mcp-staging | 2,103requests | 28errors |
| mcp-dev | 184requests | 6errors |
Claude Code | 4,210requests | 82sessions |
Cursor | 2,841requests | 61sessions |
Codex CLI | 1,921requests | 34sessions |
Windsurf | 814requests | 22sessions |
Copilot | 312requests | 18sessions |
| Tool | Usage | Calls | Users | Issues | Patches | Last Used |
|---|---|---|---|---|---|---|
| web_search | 4,210 12 error(s) | 128 | Runtime security | — | 12s ago | |
| code_exec | 2,841 4 error(s) | 86 | Tool poisoning | — | 32s ago | |
| file_read | 1,921 | 64 | Manifest economics | Active patch | 1m ago | |
| create_invoice | 814 2 error(s) | 42 | Schema correctness | — | 4m ago | |
| db_query | 612 8 error(s) | 38 | Runtime security | — | 4m ago | |
| git_diff | 312 | 22 | Clean | — | 12m ago |
| Prompt | Usage | Requests | Users | Last Used |
|---|---|---|---|---|
| summarize | 1,840 | 96 | 22s ago | |
| extract_entities | 962 | 61 | 1m ago | |
| classify | 481 1 error(s) | 44 | 3m ago | |
| search | 318 | 28 | 8m ago |
| Resource | Usage | Requests | Users | Last Used |
|---|---|---|---|---|
| /docs/api | 2,104 | 142 | just now | |
| /schema/openapi.json | 1,382 | 88 | 12s ago | |
| /users/{id} | 712 3 error(s) | 54 | 38s ago | |
| /orders | 284 | 31 | 4m ago |
P95 168ms
36 error(s)
| Client | Activity | Connections | Requests | Sessions | Errors | Servers | P95 | Last Seen |
|---|---|---|---|---|---|---|---|---|
Claude Codev1.2.0 | 82 | 4,210 3,120 tool call(s) | 82 | 0.29% 12 error(s) | 4 | 142ms | just now | |
Cursorv0.42 | 61 | 2,841 1,980 tool call(s) | 61 | 0.63% 18 error(s) | 3 | 188ms | 1m ago | |
Codex CLIv0.8 | 34 | 1,921 1,440 tool call(s) | 34 | 0% | 2 | 92ms | 2m ago | |
Windsurfv1.1 | 22 | 814 560 tool call(s) | 22 | 0.49% 4 error(s) | 2 | 161ms | 7m ago | |
Copilotv1.0 | 18 | 612 410 tool call(s) | 18 | 0.33% 2 error(s) | 2 | 218ms | 14m ago | |
Zedv0.5 | 7 | 312 210 tool call(s) | 7 | 0% | 1 | 288ms | 42m ago |
P95 168ms
63 error(s)
| Server | Activity | Requests | Sessions | Tools | Prompts | Resources | Errors | P95 | Last Active |
|---|---|---|---|---|---|---|---|---|---|
mcp-prod-east2025-06-18 | 14,210 | 412 | 12 | 4 | 9 | 0.13% 18 error(s) | 142ms | just now | |
mcp-prod-west2025-06-18 | 9,842 | 288 | 12 | 4 | 9 | 0.07% 7 error(s) | 128ms | 38s ago | |
mcp-edge-eu2025-06-18 | 6,521 | 184 | 9 | 3 | 6 | 0.06% 4 error(s) | 168ms | 1m ago | |
mcp-staging2025-03-26 · pre-sessionless | 2,103 | 61 | 9 | 3 | 6 | 1.33% 28 error(s) | 241ms | 4m ago | |
mcp-dev2025-06-18 | 184 | 8 | 14 | 5 | 12 | 3.26% 6 error(s) | 92ms | 22m ago | |
mcp-internal2025-06-18 | 42 | 3 | 4 | 1 | 2 | 0% | 34ms | 2h ago |
Catch the drift. Ship the fix.
Agents don't file bug reports. Attackers don't ask permission. Spanly reads every production tool call and turns it into security findings, drafted patches, per-tool analytics, and a morning brief.
Your data stays in your region
Pick US or EU when you create a project. Telemetry stays there. GDPR-friendly by design, with full data residency.
Live in minutes. Keep your stack.
One line of code, or wrap your server with the CLI, no code changes at all. No new agent process, no rebuild, no rip-and-replace of your observability setup.
$ npm install @spanly/sdkimport express from "express";
import { spanly } from "@spanly/sdk";
const app = express();
app.use(spanly({ apiKey: process.env.SPANLY_API_KEY }));Query Spanly from your editor
Spanly ships its own MCP server. Point any client at it to search traces and triage errors without leaving your IDE. Pick yours.
$ claude mcp add --transport http spanly https://mcp.spanly.comGet your first faults in 30 seconds.
Scan free, no signup. If the report surprises you, continuous review of your live traffic takes five minutes to add.