Home · Guides

What a full pagination of the MCP registry returns

Sixty paginated calls of 100 rows each against registry.modelcontextprotocol.io/v0/servers on 2026-09-08 returned 6,000 rows containing 2,211 distinct servers. The cursor was still set at row 6,000, which stood at co.pipeboard/tiktok-ads-mcp, so this is the first 6,000 rows in ASCII order and not the whole registry. Every figure below describes that sample and says so.

The first thing the numbers show

Rows are versions. 6,000 rows, 2,211 names, and exactly 2,211 of those rows carry isLatest: true. One server, ai.bowmark/bowmark, accounted for 739 rows on its own: 739 distinct version strings from 1.0.0 to 8.99.1, which is 12.3 percent of the entire sample from a single publisher republishing one server.

So any count taken off this endpoint without &version=latest is inflated, and not evenly: it is inflated by whoever has the busiest release pipeline.

Hosted servers now outnumber installable ones

Of the 2,211 latest rows:

DeclaresServers
A remote endpoint (remotes)1,985
An installable package (packages)311
Both97
Neither12

Six hosted servers for every installable one. That is a different registry from the one most tutorials describe, where an MCP server is a local subprocess you launch with npx.

Transport, and how dead SSE is

Across the same 2,211 latest rows, the declared remote transports were streamable-http 1,986 and sse 68. Streamable HTTP replaced HTTP+SSE in protocol version 2025-03-26, and the registry's own data now shows a 29 to 1 split. If you are building a remote server, SSE is a compatibility path, not a choice.

What people package, when they package

Package registryServers (latest rows)
npm259
PyPI41
OCI15
mcpb9
NuGet1

Nine servers in the sample declare an mcpb package, the one-click Claude Desktop bundle format. That is 0.4 percent of the sample, against 1,985 that publish a URL.

Concentration

The 2,211 servers came from 1,539 distinct namespaces, so the median publisher has one server. The concentration is at the top: ai.smithery held 213 distinct servers, app.wishpool 125 and ai.getvda 94. By row count rather than server count the picture inverts, because of the republishing effect above: ai.bowmark 739 rows, ai.smithery 288, ai.intuitek.the-stall 204.

Deprecation

18 of the 2,211 latest rows carry status deprecated, the rest active. The registry marks them rather than removing them, so a client reading the list must filter, and a human reading a directory built on this data may not be shown the flag at all.

The sample is a prefix, and that matters

Because results come back in strict ASCII order on the namespace, the first 6,000 rows are namespaces ac. through co.. The first-label counts in the sample were ai 3,853, app 1,204, co 349 and cloud 128. Any namespace beginning dev., io. or me. is absent from it entirely, including every io.github.* server, which is what the GitHub login flow grants and what most individual publishers use. So treat these ratios as describing commercially published servers, and expect the io.github tail to be more package-shaped and less hosted.

Reproducing it

curl -s 'https://registry.modelcontextprotocol.io/v0/servers?limit=100' | jq '.metadata'
# {"nextCursor": "...", "count": 100}
# follow nextCursor until it is absent; add &version=latest for one row per server

Two things to know before you spend the calls. metadata.count is the size of the page you were handed, not a total, so a count of 100 with a cursor set is a floor. And there is no totals endpoint: /v0/stats returns 404 and /v0/health returns only a status and a GitHub client id, both checked on 2026-09-08.

This count was run from a repository that publishes 30 MCP servers and has 85 active rows in the same registry, so the motive was practical rather than academic: knowing whether a name is contested is one API call, and knowing what the whole list looks like turned out to be sixty.

Questions

How many MCP servers are in the registry in total?

More than 2,211, and this measurement cannot say how many more. Sixty paginated calls covered namespaces ac. through co. and the cursor was still set. What the sample does establish is the shape: mostly hosted, mostly streamable HTTP, one server per publisher at the median.

Why is the row count so much higher than the server count?

The endpoint returns every published version. In this sample 6,000 rows collapsed to 2,211 servers, and a single server accounted for 739 of the extra rows. Pass version=latest to collapse them.

Does a registry entry mean the server works?

No. The registry records what a publisher declared, not what runs. 18 entries in the sample are marked deprecated and still returned. Nothing in the API tests an endpoint or installs a package.

Is the registry the same thing as a directory site?

No, though most directories are built on it. The registry is an API with a strict-ASCII name search. Directory sites add their own ranking, badges and editorial, which is why the same server can be prominent on one and invisible on the other.

Related

All MCP servers and prices · All guides · Buy the bundle $39