---
title: "Five MCP registries publish five different server counts. Discovery is now the load-bearing problem."
date: 2026-05-18
summary: "Glama lists 21,000+ MCP servers, PulseMCP 11,840+, Smithery 7,000+, and the official AAIF registry a smaller curated subset. The numbers don't agree, the curation policies don't agree, and the discovery decision is now upstream of every consumer in the stack."
slug: mcp-discovery-fragmentation
author: "Sebastiaan Hilbers"
hero_glyph: grid
---

Asking how many MCP servers exist in May 2026 returns five different
answers depending on which registry you query. [Glama
indexes 21,000+](https://glama.ai/mcp/servers);
[PulseMCP](https://www.pulsemcp.com) reports 11,840+ as of recent
counts and curates them by hand; [Smithery
publishes 7,000+](https://smithery.ai) with hosted remote-server
runtimes; the [official MCP
Registry](https://registry.modelcontextprotocol.io) maintained under
AAIF lists a smaller, community-vetted subset; [GitHub's MCP
Registry](https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/)
indexes a different subset filtered for GitHub-discoverable
repositories; [AWS launched its own Agent Registry in
preview](https://aws.amazon.com/about-aws/whats-new/2026/04/aws-agent-registry-in-agentcore-preview/)
on April 30. The numbers don't agree, the curation policies don't
agree, and the same server can appear in three of them under three
different metadata profiles.

This isn't a counting problem. It's a discovery problem, and discovery
at the population scale the MCP ecosystem has reached is structurally
different from discovery at 100 servers.

## The fragmentation, in numbers

<svg viewBox="0 0 640 320" xmlns="http://www.w3.org/2000/svg" style="max-width:100%;height:auto;display:block;margin:28px auto" role="img" aria-labelledby="reg-title reg-desc">
  <title id="reg-title">MCP registries, by server count and curation style</title>
  <desc id="reg-desc">Six horizontal bars representing major MCP server registries in May 2026. Glama leads at 21,000-plus servers with auto-indexing plus hosted runtime. PulseMCP at 11,840-plus with hand-reviewed daily curation. Smithery at 7,000-plus with an app-store interface. The official MCP Registry, GitHub MCP Registry, and AWS Agent Registry each publish smaller, more curated subsets. The bars are sorted by published server count.</desc>
  <style>
    .ax { stroke: var(--c-fg-3, #6b7280); stroke-width: 1; }
    .gd { stroke: var(--c-fg-5, #e5e7eb); stroke-width: 1; stroke-dasharray: 3 3; }
    .bar-l { fill: var(--c-pink, #F472B6); opacity: 0.85; }
    .bar-m { fill: var(--c-violet, #A855F7); opacity: 0.85; }
    .bar-s { fill: var(--c-fg-3, #6b7280); opacity: 0.6; }
    .lt { font-family: 'Geist', system-ui, sans-serif; font-size: 12px; fill: var(--c-fg, #0a0a0a); }
    .lp { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 12px; fill: var(--c-fg, #0a0a0a); font-weight: 600; }
    .lc { font-family: 'Geist', system-ui, sans-serif; font-size: 10px; fill: var(--c-fg-2, #404040); font-style: italic; }
    .ll { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 10px; fill: var(--c-fg-4, #9ca3af); letter-spacing: 0.14em; }
  </style>
  <text x="0" y="18" class="ll">MCP REGISTRIES · SERVER COUNT, MAY 2026</text>
  <!-- Scale: 21,000 -> 480px wide. x_offset=150 -->
  <!-- Glama 21,000 -->
  <text x="0" y="52" class="lt">Glama</text>
  <text x="0" y="65" class="lc">auto + hosted gateway</text>
  <rect x="150" y="40" width="480" height="22" class="bar-l" rx="2"/>
  <text x="0" y="50" class="lp" text-anchor="end"></text>
  <text x="638" y="55" text-anchor="end" class="lp" style="fill:#fff">21,000+</text>
  <!-- PulseMCP 11,840 -> 270.6px -->
  <text x="0" y="92" class="lt">PulseMCP</text>
  <text x="0" y="105" class="lc">hand-reviewed daily</text>
  <rect x="150" y="80" width="271" height="22" class="bar-l" rx="2"/>
  <text x="429" y="95" class="lp">11,840+</text>
  <!-- Smithery 7,000 -> 160px -->
  <text x="0" y="132" class="lt">Smithery</text>
  <text x="0" y="145" class="lc">app-store, hosted</text>
  <rect x="150" y="120" width="160" height="22" class="bar-m" rx="2"/>
  <text x="318" y="135" class="lp">7,000+</text>
  <!-- Official MCP Registry: undisclosed, draw smaller -->
  <text x="0" y="172" class="lt">Official MCP Registry</text>
  <text x="0" y="185" class="lc">AAIF, community-vetted</text>
  <rect x="150" y="160" width="80" height="22" class="bar-m" rx="2"/>
  <text x="238" y="175" class="lp lc">undisclosed subset</text>
  <!-- GitHub MCP Registry -->
  <text x="0" y="212" class="lt">GitHub MCP Registry</text>
  <text x="0" y="225" class="lc">repository-filtered</text>
  <rect x="150" y="200" width="60" height="22" class="bar-s" rx="2"/>
  <text x="218" y="215" class="lp lc">repo-discoverable</text>
  <!-- AWS Agent Registry -->
  <text x="0" y="252" class="lt">AWS Agent Registry</text>
  <text x="0" y="265" class="lc">AgentCore preview · Apr 2026</text>
  <rect x="150" y="240" width="40" height="22" class="bar-s" rx="2"/>
  <text x="198" y="255" class="lp lc">enterprise preview</text>
  <!-- Axis -->
  <line x1="150" y1="282" x2="630" y2="282" class="ax"/>
  <text x="150" y="298" class="ll" text-anchor="start">0</text>
  <text x="380" y="298" class="ll" text-anchor="middle">10,000</text>
  <text x="630" y="298" class="ll" text-anchor="end">21,000</text>
</svg>

The headline number is roughly 3:1 between the largest aggregator and
the largest curated index. That ratio is the population-vs-curation
problem: Glama auto-indexes everything that looks like an MCP server
and hosts a runtime for connecting to it; PulseMCP is hand-reviewed
since MCP's launch week; the official Registry only lists what passes
its publication criteria. None of these are wrong. They are different
objects with different load-bearing claims.

## Why discovery breaks at 10,000+

At a hundred MCP servers, discovery is a list. A developer reading the
list once a quarter has read most of it. At ten thousand, discovery
becomes a search problem with all of search's adjacent failure modes:
ranking has to be tuned; semantic equivalents have to be deduplicated;
malicious typosquats become economically attractive; the cost of
publishing a new server drops below the cost of evaluating one.

The MCP project's response has been to invest in [semantic search over
the registry](https://github.com/lastmile-ai/mcp-registry-search) — a
hybrid lexical + pgvector index over server descriptions and input
schemas. That work matters and will keep mattering. It is also
downstream of a more basic question: which underlying registry
should the index point at, and what does a consumer learn by
selecting one over another?

The Agenstry-relevant observation is that the answer changes per
consumer:

- A coding-agent vendor (Cursor, Devin, Copilot) embeds an MCP
  registry into its install path. That vendor's choice (which
  registry to surface in the install UX, how to filter its results)
  is a discovery decision the user will not see and cannot override.
- An enterprise platform team running an internal MCP gateway (see
  [Uber's
  pattern](https://agenstry.com/blog/uber-1500-agents-gateway))
  curates a private subset of the public population. Public registry
  choice determines the seed set; internal scanning determines what
  makes the cut.
- A consumer agent talking to a third-party MCP server has to trust
  *some* registry's claim that the server exists and is what it says.
  The signature on an [A2A Signed Agent
  Card](https://agenstry.com/blog/a2a-signed-cards-key-not-identity)
  proves the card was signed by a key. The registry's role is to bind
  the key to a published identity. Different registries make that
  binding to different degrees.

Three different consumers, three different discovery problems, and
the same underlying server population. The question every layer of
the stack faces is which registry's discovery output it should treat
as canonical.

## What separates a registry from an aggregator

A useful way to read the six entries above is by whether they are
populating their list or curating it. Glama and PulseMCP are
aggregators with curation overlays — Glama auto-indexes and adds a
hosted gateway; PulseMCP indexes and edits the result. Smithery is
closer to an app store: it accepts submissions and standardizes the
install UX. The Official MCP Registry, GitHub MCP Registry, and AWS
Agent Registry are governance-driven: they list what passes a stated
publication policy, which means fewer servers and more uniform
metadata.

The difference matters for a downstream consumer because it changes
what "this server is in registry X" actually proves. In Glama, it
proves the server's repository is parseable and was found by the
crawler. In PulseMCP, it proves the founder reviewed it. In the
Official Registry, it proves the server passed AAIF's intake. None
of those is the same claim. None of them, on its own, is the same
claim as "this server, when probed today, served a valid card and
responded to a known tool call."

The split between published claim and probed evidence is the same
distinction [this blog has been making about MCP server
conformance](https://agenstry.com/blog/mcp-spec-vs-probe-evidence)
and about [ERC-8004's three-registry
design](https://agenstry.com/blog/erc-8004-three-registries-honesty).
The discovery story is one layer further out: even the question "which
servers exist" has multiple defensible answers, and a consumer needs
to know which answer they are reading off of which registry.

## What we're watching

Three things, observable within the next two quarters:

1. **Whether the official AAIF registry adopts a federation interface.**
   The current architecture is a single hosted index. A federation
   schema that lets Glama, PulseMCP, Smithery, and others publish into
   and query out of the same envelope would do for MCP discovery
   what BGP did for routing tables: not pick a winner, but make the
   shape of the disagreement legible.
2. **Whether typosquatting and supply-chain attacks land in the MCP
   ecosystem at the scale they did in npm.** The economics now favor
   them: 10,000+ servers, low publication cost, multiple unfederated
   indexes. The first widely reported incident will reshape the
   discovery conversation overnight.
3. **Whether a probe-driven registry layer becomes a standard part of
   the discovery stack.** A registry that publishes "this server
   responded to a known card request today" gives a downstream
   consumer a signal that *no current registry* publishes uniformly.
   That signal is what [Agenstry
   publishes](https://agenstry.com); the open question is whether
   probe data becomes a layer the public registries syndicate from
   each other or whether it stays a separate consumer-side
   responsibility.

The 100-server problem was a list. The 10,000-server problem is an
index. The 10x problem coming next is federation and verification of
those indexes against each other. Discovery is the load-bearing
question right now, and the count of MCP servers is the part of the
answer that's easiest to publish without giving the consumer anything
they can act on.

## Sources

- [Glama MCP server catalog](https://glama.ai/mcp/servers) — Glama, accessed May 2026.
- [PulseMCP](https://www.pulsemcp.com) — PulseMCP, accessed May 2026.
- [Smithery](https://smithery.ai) — Smithery, accessed May 2026.
- [Official MCP Registry](https://registry.modelcontextprotocol.io) — Agentic AI Foundation, accessed May 2026.
- [Meet the GitHub MCP Registry: The fastest way to discover MCP Servers](https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/) — The GitHub Blog, 2026.
- [AWS Agent Registry for centralized agent discovery and governance is now available in Preview](https://aws.amazon.com/about-aws/whats-new/2026/04/aws-agent-registry-in-agentcore-preview/) — AWS, April 30, 2026.
- [lastmile-ai/mcp-registry-search](https://github.com/lastmile-ai/mcp-registry-search) — semantic search ETL pipeline for the MCP server registry, accessed May 2026.
