MCP Registry Integrity Report · study · published 2026-09-29 · data to 2026-09-29 · all numbers as JSON
The state of the MCP registry, August 13 to September 29, 2026
Summary. We probed every public server in the Model Context Protocol registry every six hours for 47 days (20,285 probes, 2,073 servers that returned tools, 35,815 distinct tools). We hashed each tool's name, description and schema on every probe and ran eleven pattern detectors over the descriptions. Three findings matter to anyone who installs an MCP server from the registry:
The registry entry you vetted is not the server you run. 45.7% of all high or critical tool findings were not present when the server was first probed.
1. What the detectors found
A finding is a tool description containing text aimed at the model rather than the user. The critical detectors are instructions hidden from the user, explicit user concealment, exfiltration patterns (send data to an outside destination) and zero-width characters. High-severity detectors are references to secret material (keys, tokens, credentials), instructions directed at the model, mandatory-call directives and cross-tool references. Cross-tool references are often benign orchestration hints, which is why the headline numbers separate critical from high.
| detector | severity | servers | share of servers | tools | findings |
|---|---|---|---|---|---|
cross_tool_reference | high | 235 | 11.3% | 3,202 | 6,090 |
secret_material_reference | high | 123 | 5.9% | 1,110 | 1,729 |
user_concealment | critical | 55 | 2.7% | 142 | 364 |
model_directed_instruction | high | 53 | 2.6% | 337 | 454 |
url_in_description | low | 50 | 2.4% | 843 | 1,702 |
mandatory_call_directive | high | 31 | 1.5% | 38 | 38 |
oversized_description | low | 13 | 0.6% | 35 | 120 |
exfiltration_pattern | critical | 10 | 0.5% | 18 | 41 |
instruction_hidden_from_user | critical | 9 | 0.4% | 21 | 21 |
instruction_override | high | 2 | 0.1% | 5 | 5 |
zero_width | critical | 2 | 0.1% | 6 | 6 |
The two servers with zero-width characters are both from one publisher (com.makeupar/beauty, com.makeupar/creators); the characters sit inside tool descriptions where a human reviewer cannot see them.
2. Findings appear after listing
For every high or critical (server, tool, detector) triple we compared the first time the finding was seen with the first time the server was probed.
| when the finding first appeared | tool-detector pairs | servers |
|---|---|---|
| present at first probe | 2,635 | 235 |
| appeared within 7 days | 1,223 | 85 |
| appeared after 7+ days | 994 | 70 |
Examples of findings that appeared 45 days or more after the server was first listed (each links to the server's full history):
| server | tool | detector | first probe | first finding |
|---|---|---|---|---|
| co.lovie/company-formation | approval_session_get_approval_session_status | cross_tool_reference | 2026-08-13 | 2026-09-28 |
| co.lovie/company-formation | cap_table_get_list_cap_table_securities | model_directed_instruction | 2026-08-13 | 2026-09-28 |
| co.lovie/company-formation | commit_transfer | cross_tool_reference | 2026-08-13 | 2026-09-28 |
| co.lovie/company-formation | request_transfer_approval | cross_tool_reference | 2026-08-13 | 2026-09-28 |
| cloud.theprotocol/registry | theprotocol_disable2FASelf | secret_material_reference | 2026-08-13 | 2026-09-27 |
| cloud.theprotocol/registry | theprotocol_regenerateBackupCodes | secret_material_reference | 2026-08-13 | 2026-09-27 |
| cloud.theprotocol/registry | theprotocol_requestSelfRevocation | secret_material_reference | 2026-08-13 | 2026-09-27 |
| cloud.theprotocol/registry | theprotocol_setup2FA | secret_material_reference | 2026-08-13 | 2026-09-27 |
| com.meta-council/decision-intelligence | create_portfolio_report_share | cross_tool_reference | 2026-08-13 | 2026-09-28 |
| com.meta-council/decision-intelligence | get_portfolio_report_share_receipt | cross_tool_reference | 2026-08-13 | 2026-09-28 |
| com.meta-council/decision-intelligence | save_attention_notification_rule | secret_material_reference | 2026-08-13 | 2026-09-28 |
| com.meta-council/decision-intelligence | ticket_authority | cross_tool_reference | 2026-08-13 | 2026-09-28 |
3. How fast servers change
Of the 208 servers that changed an existing tool, 39 did so within a day of first being seen, 92 within a week, 75 within a month. Churn is concentrated: the ten most active servers account for 60.7% of all 37,597 change events, and 4,620 of them belong to io.github.Hlobo-dev/tengu-firm alone. Tool removals (18,286) come from just 19 servers that publish and withdraw large tool sets.
| kind | severity | events | servers |
|---|---|---|---|
| removed | info | 18,286 | 19 |
| mutated | medium | 8,707 | 186 |
| mutated | high | 4,930 | 169 |
| added | info | 3,492 | 150 |
| added | high | 1,781 | 135 |
| mutated | critical | 323 | 42 |
| added | critical | 78 | 25 |
| ISO week | change events | servers changing |
|---|---|---|
| 2026-32 | 4,397 | 191 |
| 2026-33 | 7,782 | 138 |
| 2026-34 | 2,756 | 40 |
| 2026-35 | 7,451 | 151 |
| 2026-36 | 3,709 | 40 |
| 2026-37 | 7,032 | 44 |
| 2026-38 | 3,624 | 42 |
| 2026-39 | 846 | 25 |
4. Registry health
| state at last probe | servers |
|---|---|
| reachable, tools listed | 2,043 |
| auth required | 25 |
| server error (5xx/52x) | 9 |
| other/timeout | 5 |
| reachable, zero tools | 4 |
| gone (404/410) | 4 |
11 servers that once listed tools have been failing for seven days or more. Servers average 17.3 tools; 131 expose 50 or more and the largest (io.github.davidmosiah/delx-mcp-a2a) exposes 1,082. 800 tool descriptions exceed 2,000 characters and the longest is 23,132 characters, which is where instructions hide. Only 2 servers answer with HTTP 402 (payment required).
5. Servers with the most critical and high findings
| server | critical | high | detectors | first | last |
|---|---|---|---|---|---|
| io.github.WellApp-ai/well-mcp | 93 | 347 | exfiltration_pattern,user_concealment,model_directed_instruction,cross_tool_reference,secret_material_reference | 2026-08-14 | 2026-09-28 |
| app.flaim/mcp | 52 | 474 | user_concealment,cross_tool_reference,secret_material_reference,model_directed_instruction | 2026-08-13 | 2026-09-29 |
| io.github.hermoso-ai/hermoso | 33 | 378 | user_concealment,exfiltration_pattern,secret_material_reference,cross_tool_reference,model_directed_instruction | 2026-08-18 | 2026-09-01 |
| com.gribstream/mcp | 26 | 22 | user_concealment,cross_tool_reference,model_directed_instruction | 2026-08-13 | 2026-08-20 |
| com.meta-council/decision-intelligence | 23 | 213 | user_concealment,cross_tool_reference,secret_material_reference | 2026-08-13 | 2026-09-28 |
| cloud.dchub/mcp-server | 16 | 832 | user_concealment,cross_tool_reference,secret_material_reference,model_directed_instruction | 2026-08-13 | 2026-09-29 |
| ing.crank/crank | 14 | 297 | user_concealment,cross_tool_reference,secret_material_reference,model_directed_instruction | 2026-08-14 | 2026-09-24 |
| dev.busymate/busymate-devtools | 12 | 49 | user_concealment,cross_tool_reference,secret_material_reference | 2026-08-14 | 2026-09-06 |
| io.github.cnghockey/sats4ai | 11 | 166 | user_concealment,cross_tool_reference,secret_material_reference,model_directed_instruction | 2026-08-15 | 2026-09-28 |
| ai.dreamlit/mcp | 11 | 0 | instruction_hidden_from_user | 2026-08-13 | 2026-08-13 |
| io.github.Hlobo-dev/tengu-firm | 9 | 175 | user_concealment,cross_tool_reference,model_directed_instruction,secret_material_reference | 2026-08-14 | 2026-09-14 |
| com.local-mcp/local-mcp | 9 | 173 | exfiltration_pattern,user_concealment,cross_tool_reference,secret_material_reference | 2026-08-13 | 2026-09-12 |
| dev.primitive/email | 9 | 58 | exfiltration_pattern,user_concealment,secret_material_reference,cross_tool_reference | 2026-08-14 | 2026-08-20 |
| io.github.BigRedCloud/red-mcp-server | 7 | 295 | user_concealment,exfiltration_pattern,secret_material_reference,cross_tool_reference,model_directed_instruction | 2026-08-14 | 2026-08-14 |
| app.railway.up.engine-production-3bdc/vhgengine | 7 | 180 | user_concealment,secret_material_reference,cross_tool_reference,model_directed_instruction | 2026-08-13 | 2026-09-18 |
| com.newscatcherapi/catchall | 6 | 175 | user_concealment,exfiltration_pattern,secret_material_reference,cross_tool_reference,model_directed_instruction | 2026-08-13 | 2026-09-22 |
| io.github.TotesMagotes/mcp-server-auth | 6 | 91 | user_concealment,cross_tool_reference,model_directed_instruction | 2026-08-14 | 2026-09-10 |
| io.github.DigbyO/colour-memory | 6 | 89 | user_concealment,cross_tool_reference,secret_material_reference | 2026-08-14 | 2026-09-29 |
| co.lovie/company-formation | 5 | 81 | instruction_hidden_from_user,user_concealment,cross_tool_reference,model_directed_instruction,secret_material_reference | 2026-08-13 | 2026-09-28 |
| com.a2awire/a2awire | 5 | 34 | user_concealment,secret_material_reference,cross_tool_reference | 2026-08-13 | 2026-09-26 |
Method and caveats
Sources: registry.modelcontextprotocol.io (server list), our six-hourly probes (raw counts at /v1/summary.json). Population: every server entry in the public MCP registry with a reachable remote endpoint (2,090 probed, 2,073 returned tools). Cadence: one tools/list call per server every six hours from 2026-08-13 to 2026-09-29. Fingerprint: SHA-256 over name, description and input/output schemas. Detectors are regular-expression and heuristic patterns; they flag text, not intent, so individual findings can be false positives and every row above links to its evidence. Servers requiring authentication (25) have no fingerprints and are excluded from prevalence rates. Counts are point-in-time as of 2026-09-29 03:18 UTC; the live report on the front page updates every six hours. Data and this text are CC BY 4.0; cite as "agentexchange.work, The state of the MCP registry, Aug 13 to Sep 29 2026, https://drift.agentexchange.work/study/2026-09".
https://drift.agentexchange.work/server/<name>.agentexchange.work · study JSON · live summary JSON · llms.txt