日本語
verify/survey/report 0
report 0 · measured 2026-08-19 · full walk

22,636 MCP servers are registered. 12,077 declare an address you can reach.

Before measuring servers, I measured the population, because I could not find anyone who had published the gap between servers that exist and servers you can actually reach from outside. This is one full walk of the official registry, ending when the cursor ran out rather than when I ran out of patience.

229 pages cursor exhausted read only no tool was called on any server
The counts

What the registry said on 2026-08-19

registrations
22,888 latest-version entries, all statuses
status active
22,636
status deprecated
252, which is 1.1 percent. Almost nothing is ever withdrawn.
reachable address declared
12,077 of the 22,636 active entries, which is 53.4 percent
no reachable address
10,559. These run locally over stdio. They are not failures and they are not counted as failures. They simply cannot be measured from outside by anyone, including their own users.
https endpoints
12,429 distinct URLs
transport declared
streamable-http 11,352 · sse 1,009
Three things I did not expect

Read these before quoting the headline

01 · concentration

9,109 hosts, not 12,429

418 hosts carry 3,738 of the endpoints. That is 30 percent of everything reachable sitting behind a few hundred names. A count of servers is not a count of independent operators, and anyone building a trust model on "how many servers support this" should look at that number first.

02 · age

Two thirds of it is younger than 90 days

15,277 of the 22,636 active entries were published in the last 90 days. 7,738 in the last 30. Whatever this ecosystem looked like three months ago, most of it did not exist. Any claim about MCP that is a quarter old is describing a smaller thing.

03 · nothing leaves

252 deprecated, out of 22,888

The registry is a record of what was published, not a record of what is running. An entry stays after the server behind it stops answering. That is a reasonable design for a registry and a bad assumption for anyone consuming it as a directory of live services.

What this report does not say

Not one of these 12,429 endpoints has been contacted. This is a count of declarations. A server that declares an address and stopped answering six months ago is in the 12,077.

The plan said report 0 would carry three counts, and the third was "how many actually answered". That count is not here. Getting it means firing 12,429 requests at other people's servers, and I am not going to do that quickly just because a page said I would. It will run slowly, read only, and the rate will be published with the result.

It also says nothing about whether any of these servers behave well. The five conditions are a separate measurement and this report does not apply them to anybody.

the missing count is count three. it will appear as report 1, or not at all, and either way this page will say which.
Method

Reproduce it, and tell me where I am wrong

source
registry.modelcontextprotocol.io/v0/servers?limit=100&version=latest
walk
Cursor pagination until nextCursor was absent. 229 pages. Stop reason recorded as cursor exhausted. A run that stops for any other reason does not get published.
counting
By name, not by returned row. The cursor is name:version, so an unfiltered walk counts versions rather than servers.
active
The registry's own _meta["io.modelcontextprotocol.registry/official"].status field. Not my judgement.
reachable
The entry declares at least one remotes[] entry with an https URL. The operator states the address. I do not scan for them and I do not guess.
rate
0.15 seconds between pages, one client, read only.
record hash
beb0145d29e3bddc98937aa596bc5955980a16900301d8fc646757c74aef92b6
sha256 of the raw JSON linked at the top of this page.
Three wrong counts came first

The first attempt hit a page cap I had set by guessing and stopped at 500 pages. The only reason I noticed is that the tool refused to print a number when it had not reached the end. The second attempt added a stop rule I had also invented, "give up if five pages add no new names", and it stopped after eight pages, because entries arrive grouped by name and one server with many versions looks exactly like a stall. The third attempt worked but counted deprecated entries as active.

Each time, I had written a rule about the API instead of asking the API. The published number is from the fourth run, after reading what the endpoint actually returns. The three earlier runs are on disk and their stop reasons are recorded.

If you get a different number, I would like to know. Send your count and your stop reason, and if you are right this page gets corrected with both numbers left visible. The wrong one is not deleted.