The Model Context Protocol (MCP) is the standard that lets AI agents such as Claude, ChatGPT or Cursor call external tools. Its official registry at registry.modelcontextprotocol.io is where server authors publish their metadata, and it has a public, paginated API.

On 8 November 2026 I walked through the entire registry: 2,295 pages, 229,461 published versions. Here is what that says about where the agent ecosystem stands.

Disclosure: we publish one entry there ourselves (io.github.ichkifokkus/fast-data, Germany/EU business data tools via Apify). That is 1 of almost 60,000, so it does not move any of the numbers below.

The headline numbers

Metric Value
Published versions (all) 229,461
Distinct servers (latest version) 59,603
… with a hosted remote endpoint 39,789 (67%)
… with an npm package 16,350
… with a PyPI package 5,280
… with an MCP bundle (mcpb) 2,250
… with a container image (OCI) 1,713
Names under io.github.* 34,156 (57%)

A server can have both a remote endpoint and packages, so the package rows overlap.

Growth: first publication per month

I took the earliest publishedAt of each server name as its "first seen" date:

Month New servers
Sep 2025 456
Dec 2025 276
Mar 2026 1,938
May 2026 3,022
Jul 2026 5,072
Aug 2026 6,518
Sep 2026 11,849
Oct 2026 16,282
Nov 2026 (1–8) 5,728

October added more than five times as many new servers as May. The first eight days of November are already above the whole of July. The curve has not flattened.

Two caveats: the registry launched in preview in September 2025, so the early months partly reflect adoption of the registry itself, not of MCP. And "first published" only counts servers that are still listed today; anything deleted in between is invisible.

Remote first

Two thirds of all servers advertise a hosted remote endpoint (streamable HTTP or SSE). Local packages are the minority: npm leads with 16,350, PyPI follows with 5,280, and Rust (cargo, 122) and .NET (nuget, 175) are rounding errors.

For anyone building tools for agents, this matters more than it looks. Remote servers need no install, work in browser-based clients and can authenticate with OAuth. The ecosystem has clearly voted for "add a URL" over "install a package".

What the servers are about

I searched the latest descriptions for a few business keywords (case-insensitive substring match, so "search" also counts "research", and one server can match several words):

Keyword Servers mentioning it
search 7,277
email 1,211
google 1,059
payment 1,004
invoice 695
database 502
calendar 413
sales 397
crm 333
finance 298
europe 219
german / germany 195 / 71
shopify 180
e-commerce / ecommerce 73 / 48

Search and retrieval dominate by a wide margin. Payments and invoices are surprisingly strong: over 1,000 servers mention payments and almost 700 mention invoices. Agents that pay and bill are clearly a thing people are building for.

At the other end, regional business data is thin. Fewer than 200 descriptions mention "German", fewer than 250 mention "Europe", and e-commerce shows up in barely more than 100. Given how much of the economy runs on country-specific rules (tax IDs, e-invoicing formats, public tenders, company registers), that gap is where I expect a lot of the next wave of useful servers.

Repeat it yourself

The API is public and needs no key. This script walks all pages, keeps the latest version of each server and counts first appearances per month:

import collections, httpx BASE = "https://registry.modelcontextprotocol.io/v0.1/servers" client = httpx.Client(timeout=30) first_seen, latest, cursor = {}, {}, None while True: params = {"limit": 100} if cursor: params["cursor"] = cursor page = client.get(BASE, params=params).json() for item in page.get("servers", []): meta = (item.get("_meta") or {}).get("io.modelcontextprotocol.registry/official", {}) name = item["server"]["name"] published = meta.get("publishedAt") or "9999" first_seen[name] = min(first_seen.get(name, "9999"), published) if meta.get("isLatest"): latest[name] = item["server"] cursor = (page.get("metadata") or {}).get("nextCursor") if not cursor: break per_month = collections.Counter(v[:7] for v in first_seen.values()) print(len(latest), "servers") for month in sorted(per_month): print(month, per_month[month]) print("with remote:", sum(1 for s in latest.values() if s.get("remotes"))) 

A full pass takes a few minutes. Please be gentle with the registry: one pass a day is plenty for trend tracking.

What I take from it

  1. The agent tool layer is growing faster than anyone can curate. At more than 500 new servers a day, discovery and trust (who maintains this, is it alive, is it safe) become the real problem, not supply.
  2. Remote is the default. If you build a tool for agents in 2026, ship a URL.
  3. Generic is crowded, specific is open. Search, email and Google integrations are everywhere. Country-specific business data, compliance checks and e-commerce rules are not.

That last point is why we keep a small, curated catalog of agent tools for German and EU business data, re-checked weekly.

Data: official MCP Registry API, full pass on 8 November 2026. Keyword counts are simple substring matches on descriptions and only indicate rough topic size.