Home › State of MCP 2026
State of MCP 2026
41,997 MCP servers in the MCPwell catalog. Every count on this page is computed from those rows. Checked 2026-10-17.
Download the CSV (63 rows). The file is the same tally as the tables.
Indexed pages and the vault
236 servers clear the index score and keep a fact sheet in the sitemap. 41,761 do not. Those URLs stay up with noindex, follow when a fact sheet exists, and every one of them is listed in The MCP Vault. A server is indexed only when it has a pinned install and a score of at least 40. A pinned install is a package with a version, an OCI image tag other than latest, a remote URL, or a reference install command. The score adds 16 points for a unique description of at least 60 characters (plus 6 at 100 characters and 4 at 140). Harvest text that says “official registry” or “Declared transport” scores zero for description. Install is 18 points, plus 4 when two install forms are present, plus 4 when a secret or required header, environment variable, or argument is declared. Vendor is 8 points and reference is 10. GitHub stars add 4 at 50, 8 at 200, 16 at 1,000, and 22 at 5,000. A verified initialize and tools/list probe is 16 points. Any other recorded probe is 6. Repository, license, last commit, and website add 1 each. One substance signal is also required: the unique description, at least 1,000 GitHub stars, a verified probe, or reference-server status. At most 300 servers are indexed. Past that line, the highest scores stay, with ties broken by GitHub stars, then description length, then slug. Payment, Featured, and Sponsored are not part of this score and do not add points. A paid server that does not clear the score stays in the vault. Paid listings (Sponsored, then Featured) are still displayed first on every list that includes them, marked Advertisement. Organic listings follow, sorted by GitHub stars. Paying doesn't change a server's GitHub stars, third-party ratings, Verified status, or listing data.
Category
One category is stored on each listing. The total of this table is 41,997.
| Category | Servers |
|---|---|
| Developer Tools | 34,069 |
| Databases | 359 |
| Search & Web Data | 1,114 |
| Productivity & Project Management | 212 |
| Cloud & Infrastructure | 334 |
| Observability | 928 |
| Payments & Commerce | 434 |
| Automation | 92 |
| Browser Automation | 57 |
| Websites & CMS | 81 |
| Design | 225 |
| Maps & Location | 441 |
| Security & Identity | 538 |
| Product Analytics | 127 |
| AI & Memory | 1,313 |
| Media & Video | 384 |
| Documents | 351 |
| Communication | 456 |
| Finance | 479 |
| Reference & Testing | 3 |
Transport
Primary transport, one per server, using the directory filter order: SSE when the label contains SSE, else HTTP when the label contains HTTP or the row has a remote endpoint, else stdio, else not declared. The total is 41,997.
| Transport | Servers |
|---|---|
| HTTP | 23,051 |
| stdio | 13,446 |
| Not declared | 4,394 |
| SSE | 1,106 |
Language
Language is inferred from the package registry type on the listing. It is not a scan of the repository. A server with both an npm package and a PyPI package is counted in both language rows, so this table can sum to more than 41,997. Servers with no package are the separate row. OCI is counted as a container image, not a programming language. MCPB is a bundle, not a language.
| Package language | Servers |
|---|---|
| JavaScript (npm) | 9,377 |
| Python (PyPI) | 4,008 |
| Container image (OCI) | 972 |
| MCPB bundle | 820 |
| .NET (NuGet) | 143 |
| Rust (Cargo) | 77 |
| No package registry | 27,015 |
Auth
Auth is the credential the registry entry declares, grouped from the auth line on each listing. One bucket per server. The total is 41,997.
| Declared auth | Servers |
|---|---|
| Vendor account, no secret declared | 19,449 |
| No secrets declared | 12,747 |
| Secret environment variable | 5,657 |
| Header credential (API key or token) | 3,856 |
| Header credential and secret environment variable | 288 |
Official vendor, reference, and community
Kind is the field stored on the row. Vendor means a registry namespace that is not io.github.*, or a publisher already treated as a vendor. Reference means the modelcontextprotocol/servers tree or Microsoft MarkItDown. Everything else is community. The total is 41,997.
| Kind | Servers |
|---|---|
| Vendor (official namespace or known publisher) | 15,232 |
| Reference (modelcontextprotocol/servers or MarkItDown) | 8 |
| Community | 26,757 |
Last commit month
This is the month of last_commit when the row stores one. It is not the date MCPwell discovered the server and it is not a sign-up curve. Every row in this build was checked on 2026-10-17. Rows with no last commit are counted on their own line. The total of this table is 41,997.
| Month | Servers |
|---|---|
| 2021-01 | 1 |
| 2025-04 | 24 |
| 2025-05 | 30 |
| 2025-06 | 44 |
| 2025-07 | 50 |
| 2025-08 | 31 |
| 2025-09 | 100 |
| 2025-10 | 85 |
| 2025-11 | 63 |
| 2025-12 | 76 |
| 2026-01 | 129 |
| 2026-02 | 249 |
| 2026-03 | 555 |
| 2026-04 | 744 |
| 2026-05 | 798 |
| 2026-06 | 866 |
| 2026-07 | 1,230 |
| 2026-08 | 2,700 |
| 2026-09 | 4,706 |
| 2026-10 | 9,722 |
| No last commit stored | 19,794 |
Methodology
Computed during the static build from data/catalog.json after install labels are generated, plus GitHub star counts cached through 2026-10-17, plus data/probes.json for the index score only. The checked date shown above is the newest checked value on a row, which is 2026-10-17. No count is typed by hand. The CSV at data.csv is written from the same function as these tables. Category names are the directory's category labels. Transport uses the primary-transport rule in this section. Language uses the registry map npm → JavaScript, pypi → Python, nuget → .NET, cargo → Rust, oci → container image, mcpb → MCPB bundle. Auth uses the grouped auth line. Kind uses the stored kind field. Last-commit month uses the first seven characters of last_commit when it matches YYYY-MM-DD.