mcpmetricsmcpmetrics
← All posts
·4 min read

How we measure — and what we refuse to measure

We probe public MCP servers without asking permission. That puts an obligation on us. Here are the rules we hold ourselves to, and why.

Nobody installs anything for us to measure them. We connect to public MCP endpoints from the outside, the same way any client would. That is what makes ecosystem-wide coverage possible — and it is also why we have to be careful. A measurement that damages what it measures is not a measurement.

What we actually do

Every couple of hours we perform the protocol handshake, ask for the tool list, and record what came back: which revision was negotiated, how long it took, what failed. Every result is appended, never edited. Nothing is overwritten, so the history stays honest even when we are wrong.

We do call tools — but only some

To know whether a server merely answers or actually works, you have to call something. So we run a single smoke call, and we are strict about which tool is eligible: read-only, no required parameters, and the name must begin with something unambiguous — list, get, search, status, info, ping, health, read, describe.

Anything that might create, delete, send, pay or modify is never touched. If no eligible tool exists, we record that we skipped the test rather than guessing. We are not willing to change a system in order to measure it.

We slow ourselves down on purpose

Probes are spread across hosts rather than run alphabetically, so one provider does not receive a burst. Per host, we allow at most two concurrent requests and at least half a second between them. Thousands of servers sit behind a handful of platforms, and a naive scan would look a lot like an attack.

What we never collect

  • Tool results. We record that a call succeeded and how long it took, not what came back.
  • Anything behind an auth wall. If a server wants credentials, it stays unread. We do not hunt for keys.
  • Anything through a proxy. When a tool list is only reachable via a connector, we read the list and stop there — calling tools would spend someone else's quota.

And when we are wrong

We recently found 387 servers we had been marking as broken. They were fine; we were speaking the wrong transport. The honest part of measuring in public is that your own mistakes become part of the data — and correcting them publicly is the only thing that makes the rest of it trustworthy.

See the data for yourself
#methodology#ethics#mcp

More posts

How we measure — and what we refuse to measure | mcpmetrics