A definition, and then the part documentation cannot give you: what 19 896 real MCP servers actually expose, which transport they really use, and how often each way of failing happens. Every number here comes from our own handshake with every registered endpoint, repeated every 15 minutes.
An MCP server is a program that exposes tools, data or workflows to an AI application through the Model Context Protocol, so the application can use them without anyone writing a custom integration for that particular pair of products.
“Server” describes its role in the protocol, not where it runs. It can be a command on your laptop that reads one folder, or a hosted service behind an OAuth login. Both answer the same handshake and describe themselves the same way — which is exactly why they can be compared at all, and why 19 896 of them fit in one list.
19 896 servers are published in the official registry, but only 7 920 of them — 39% — answer when something actually connects.
The gap matters more than the headline number. 2 295 servers are still marked active by the registry and respond to nothing at all: the registry stores what an author submitted once, it never rechecks. Catalogues that copy the registry inherit that error and present dead endpoints as working ones.
Another 1 068 servers flip between answering and failing within a single day, and 341 point at domains that no longer resolve — the project is gone, the listing remains.
The protocol defines three things a server can offer — tools, resources and prompts — and a
server may implement any combination. In practice tools dominate: we have read
107 489 of them straight off servers via tools/list.
Half expose fewer, half more. 1 045 servers expose three or fewer — often a single function wrapped as a server.
218 servers expose fifty or more. A large surface is not automatically better — it is more to review before you connect it.
Of the tools whose names are unambiguous, 84% read or search and 16% change something — create, update, delete or execute.
Descriptions and input schemas come with the list. That is what lets a model pick a tool on its own: it reads what is available before it makes a request, instead of being told in advance.
The split is almost even: 9 698 registered servers have no network address at all, while 10 198 are reachable over HTTP.
Launched by your client as a child process and spoken to over stdio. Installed from npm or PyPI, runs with your own permissions, sees your files.
Uptime cannot be measured for these by anyone, including us — the server only exists while your client is running it. What can be measured is adoption: weekly installs from the package registry.
Runs on someone else's infrastructure at an HTTPS address. Nothing to install; the client connects to a URL. 27% of them require a key or an OAuth login.
These can be checked, and we check every one of them every 15 minutes. A server that answers an authorization challenge counts as alive — it is running, it just will not talk to strangers.
Four steps, and the first two are exactly what we run against every endpoint every 15 minutes — which is how everything else on this page gets measured.
tools/list and gets names,
descriptions and input schemas. A server behind auth stops here and returns a challenge
instead — that is the 27% above.
Streamable HTTP has won outright: 93% of the 10 570 endpoints we track use it, and only 7% still use SSE.
The specification describes both, so documentation says “commonly” and leaves it there. This is the count. If you are writing a client today, SSE is a compatibility path, not a choice.
Every guide lists what can fail. Here is how often each thing actually fails, measured across 958 052 handshakes in the last 24 hours.
Two of these are worth reading twice. Needs a key is not a failure — the server is running and refusing anonymous clients, which is correct behaviour. Wrong reply is the nastiest case: the address responds with a normal HTTP page, so anything that only checks for a status code will call it healthy. It is not an MCP server at that address any more.
A listing in a catalogue proves nothing: 2 295 servers are listed as active and answer nothing. Four checks that take a minute each.
tools/list describes the server.Control a real Chrome browser to complete any task: fill forms, extract data, book flights.
Playwright Tools for MCP
Gives AI development tools Firebase-specific capabilities and expertise.
Help agents automatically write and test stories for your UI components.
MCP server for Chrome DevTools
Up-to-date code docs for any prompt
The protocol standardises how a server is described. It says nothing about whether that server deserves what you are about to hand it.
A local server runs as your user. It sees the files your account sees, uses the credentials in your environment, and can do anything the command it wraps can do. Scoping it to one directory is a decision you make in the config, not a guarantee the protocol provides.
A remote server sees whatever you authorise it to see on the other side of the login, and every argument the model sends it. 5 643 servers list their tools to an anonymous client — useful for us, and a reminder that a tool list is public information you can read before connecting anything.
Practical order: read the tool list, check which of them write rather than read, give the narrowest credentials that work, and require confirmation for anything that sends, pays, deletes or deploys.
These are not competitors — an MCP server usually wraps an API and describes it in a way a model can discover.
Every answer below uses our own measurements, not the specification text.