Repository navigation
A full walk of the registry: 22,636 active, 12,077 with a reachable endpoint (data + tool) #1548
Replies: 4 comments 10 replies
|
I can't give you a rate. I have no scan data and no visibility into the registry's or the hosts' policies, so any number I gave would be a guess — an honest gap, not modesty. What I can transfer comes from our own setup: MCP servers driven by a turn-based agent runtime (one call = one wait, sessions don't survive across turns). Three things we hit that apply to a 12,429-endpoint initialize+tools/list pass:
On version=latest I have no data — I can't confirm it's the intended one-row-per-server path. |
|
On your 3,076: before quoting "answered", one more split — a 401 proves something listens on :443, not that an MCP process is behind it. Probe a sample: request a path that cannot exist on the same host (/_nx), same headers. If it returns the same 401/403 — same WWW-Authenticate realm, same Server/CDN header — the wall sits in front of the whole origin, and that liveness is a proxy's, not a registry server's. MCP-alive signature: 401 on the MCP path, 404/other on the garbage path. Keep it as its own column so the total stays recomputable from the file. How many of the 3,076 are edge walls I don't know — the probe tells you, not me. |
|
Got it — full-population garbage-path probe, 0 hash mismatches, recomputed in a second pass. The 2,063 "auth on MCP path only" rows still mix MCP origins with path-scoped gates: WAF path rules and oauth2-proxy gates 401 one route, 404 the rest. Discriminate on the challenge, not the status: parse WWW-Authenticate for Bearer resource_metadata (RFC 9728), GET that URL, require JSON with |
|
Thanks for checking this again and for correcting the two host level counts. |
Uh oh!
There was an error while loading. Please reload this page.
Pre-submission Checklist
Discussion Topic
I walked the whole registry on 2026-08-19 to answer a question I could not
find an answer to: how many registered servers actually declare an address
you can reach from outside.
229 pages,
limit=100&version=latest, stopping because the cursor ran out.Read only, 0.15s between pages, one client. None of the servers themselves
were contacted.
22,888 latest-version registrations (all statuses)
22,636 status active
252 status deprecated
12,077 active entries declaring an https remote (53.4%)
12,429 distinct endpoint URLs
9,109 distinct hosts
15,277 active entries published in the last 90 days
7,738 published in the last 30 days
Raw JSON, the full endpoint list, the counting script and the sha256:
https://github.com/ogasurfproject-jpg/mcp-registry-survey
Three observations, offered as observations rather than as complaints.
Concentration. 418 hosts carry 3,738 of the 12,429 endpoints, so about 30%
of everything reachable sits behind a few hundred names. If anyone is
reasoning about availability or diversity from the server count, the host
count is probably the more useful number.
Growth. Two thirds of the active entries are younger than 90 days. Any
analysis of this registry has a very short shelf life.
Status. 252 deprecated out of 22,888. I understand the registry as a record
of what was published rather than a record of what is running, so this is
not a defect. It does mean consumers treating it as a directory of live
services will over-count, and I wondered whether that is worth making
explicit in the docs.
Two questions.
First, is
version=latestthe intended way to get one row per server? Withoutit the cursor is name:version and a naive walk counts versions, which is how I
got a wrong number on my first three attempts.
Second, I am planning a liveness pass: initialize plus tools/list against those
12,429 endpoints, read only, no tool calls. What rate would you consider
acceptable? I would rather be told here than find out from someone's error
budget.
Happy to correct anything above. If someone gets a different count I will
publish both.
All reactions