We are going to measure servers that nobody asked us to measure.
The check is read only. It reads an endpoint, reads a card, and hashes what it saw. You can point it at a server you do not own, and so can we. Until now we have only ever pointed it at servers that volunteered. That was the mistake.
Measured 2026-08-19, one full walk of the official registry, 229 pages, stopping because the cursor ran out rather than because I ran out of patience. Raw JSON, the full endpoint list and the record hash are on the report.
Not one of those endpoints was contacted. This is a count of declarations. Whether they answer is a separate measurement and it is not in report 0.
It is left here on purpose. The claim this whole page rests on is that the method was published before the result existed. That claim is only checkable if the earlier text is still visible, so it is not edited and it is not deleted.
There is no number on this page yet. A survey that publishes its method after its results can choose the method that produced the results. So the method is here first, in public, with nothing measured. If the numbers turn out to be boring, they get published boring. If they make us look bad, they get published anyway. Our own servers are in the same population and are measured by the same machine on the same day.
We had a bigger number. We stopped using it after reading a text file.
The plan was to take the list from a public catalogue that indexes tens of thousands of open source MCP servers, and measure whatever had an address. Then we read its robots.txt.
glama.ai/robots.txt · read 2026-08-19
User-agent: *
Disallow: /api/
Disallow: /*/endpoints
Content-Signal: ai-train=no, search=yes, ai-input=yes
So we did not. One of the five rules we set for ourselves below is that we respect robots.txt. Breaking it on day one, to collect the list for a survey about disclosure, would have settled the question of whether this survey is worth reading.
The population comes from the official registry instead, which publishes a JSON API for exactly this and requires no account.
Naming a server that failed is a serious thing to do
These are not aspirations. If one of them is broken, the report that broke it gets withdrawn and the withdrawal stays published.
Never write "it went down"
held means we could not measure it. pending means we measured it and a condition was not met. These are different sentences and they never get collapsed into one. An instrument failure is not a statement about the thing it failed to measure.
State the measurement, not a character judgement
Not "this server is dishonest". "On 2026-08-19 the agent card carried no compensation disclosure." The first is an opinion we are not qualified to hold. The second is a fact anyone can check.
Ship the recipe and the hash with every claim
Every verdict carries a record_sha256 and a public procedure to recompute it. A claim about somebody else that cannot be reproduced by the person it is about should not be published.
Keep a door open for corrections
If you think a measurement of your server is wrong, ask and it is measured again. Both measurements stay published. The old one is not deleted, because deleting it would make the new one unverifiable. The desk exists before the naming does: corrections, free, no account, and you do not have to own the server.
Respect robots.txt and keep the load low
Read only, weekly at most, and never a tool call. The moment this survey becomes a nuisance to the servers it measures, it stops being a survey.
Three counts, and a list
The interesting part is probably count 2. Most people talking about the size of this ecosystem are quoting a number that includes tens of thousands of servers that cannot be reached from anywhere. We do not know the gap yet. Nobody has published it.
This page exists because the opt-in version of this project did not work. We built a machine, asked people to volunteer their servers, and nobody outside our own customers did. The machine was never the problem. Waiting to be asked was.