State of MCP servers: 34,242 GitHub repos and 9,658 npm packages
On 2026-10-10, GitHub listed 34,242 public repositories tagged mcp-server. 11,428 were created in Q3 2026, more than in all of 2025 (6,432). Python (37.1%) and TypeScript (29.8%) lead, and 86% of these repositories have fewer than 10 stars. On npm, 9,658 packages carry the mcp-server keyword.
Source
- GitHub repository search API (
api.github.com/search/repositories), called without authentication. Only thetotal_countof each query is used, so the 1,000-result limit on search results does not apply to these counts. - npm registry search API (
registry.npmjs.org/-/v1/search), which returns total counts per query and, for each package, its license, latest publish date and download counts.
Method
What counts as an MCP server. On GitHub, a public repository whose owner added the topic mcp-server. On npm, a package whose package.json lists the keyword mcp-server. Both labels are chosen by the authors. They include some projects that are not servers (clients, lists of servers, frameworks), and they miss servers whose authors did not add the label.
GitHub queries. One count per query, sequential, paced at one request every 6.5 seconds to stay within the unauthenticated limit of 10 search requests per minute:
topic:mcp-server, plus the broadertopic:mcpfor comparisontopic:mcp-server created:YYYY-MM-01..YYYY-MM-lastfor each month from November 2024 to September 2026, andcreated:<2024-11-01for earlier repositorieslanguage:"X"for 12 languages,license:Xfor 8 license keys, andstars:in 6 rangesarchived:true, andpushed:>=2026-07-01for recent activity
GitHub reported incomplete_results=false for the total.
npm queries. Total counts for keywords:mcp, keywords:mcp-server and keywords:modelcontextprotocol. Then the first 1,000 results for keywords:mcp-server in npm’s own search ranking, used for the download and license tables. A spot check of results 751 to 1,000 found the mcp-server keyword in all 250 packages.
Statistics. Counts, shares and percentiles only.
Date of collection
2026-10-10, 02:47 to 02:53 UTC (the evening of October 9 in US time zones).
Sample size
- GitHub: 34,242 repositories with
topic:mcp-server(91,259 withtopic:mcp). - npm: 9,658 packages with the
mcp-serverkeyword, of which 1,000 were sampled for downloads and licenses.
Results
New GitHub repositories per quarter
| Quarter | Repositories created |
|---|---|
| Before Q4 2024 (before 2024-11) | 351 |
| 2024 Q4 (November and December) | 108 |
| 2025 Q1 | 745 |
| 2025 Q2 | 2159 |
| 2025 Q3 | 1750 |
| 2025 Q4 | 1778 |
| 2026 Q1 | 5445 |
| 2026 Q2 | 8978 |
| 2026 Q3 | 11428 |
Another 1,500 were created between October 1 and October 10, 2026.
New GitHub repositories per month, 2026
| Month | Repositories created |
|---|---|
| 2026-01 | 866 |
| 2026-02 | 1579 |
| 2026-03 | 3000 |
| 2026-04 | 3065 |
| 2026-05 | 2939 |
| 2026-06 | 2974 |
| 2026-07 | 3209 |
| 2026-08 | 3539 |
| 2026-09 | 4680 |
Creation stayed between 500 and 800 a month from March to December 2025, then rose from 866 in January 2026 to 4,680 in September 2026. September was the largest month in the series.
Primary language on GitHub
| Language | Repositories | Share |
|---|---|---|
| Python | 12692 | 37.1% |
| TypeScript | 10187 | 29.8% |
| JavaScript | 3457 | 10.1% |
| Go | 1565 | 4.6% |
| Rust | 1065 | 3.1% |
| C# | 536 | 1.6% |
| Java | 320 | 0.9% |
| Shell | 240 | 0.7% |
| PHP | 156 | 0.5% |
| Swift | 121 | 0.4% |
| Kotlin | 72 | 0.2% |
| Ruby | 48 | 0.1% |
| Other or none | 3783 | 11.0% |
TypeScript and JavaScript together account for 39.9%, slightly more than Python alone.
License on GitHub
| License (as detected by GitHub) | Repositories | Share |
|---|---|---|
| MIT | 19715 | 57.6% |
| Apache-2.0 | 3017 | 8.8% |
| AGPL-3.0 | 607 | 1.8% |
| GPL-3.0 | 397 | 1.2% |
| BSD-3-Clause | 68 | 0.2% |
| MPL-2.0 | 65 | 0.2% |
| Unlicense | 30 | 0.1% |
| Other (GitHub’s “other” key) | 2384 | 7.0% |
| No license detected, or a license not listed above | 7959 | 23.2% |
Stars on GitHub
| Stars | Repositories | Share |
|---|---|---|
| 0 | 14888 | 43.5% |
| 1-9 | 14553 | 42.5% |
| 10-99 | 3616 | 10.6% |
| 100-999 | 958 | 2.8% |
| 1,000-9,999 | 186 | 0.5% |
| 10,000+ | 41 | 0.1% |
1,185 repositories (3.5%) have 100 stars or more. 568 repositories (1.7%) are archived, and 23,429 (68.4%) received a push on or after 2026-07-01.
npm packages by keyword
| npm search | Packages |
|---|---|
keywords:mcp |
78729 |
keywords:mcp-server |
9658 |
keywords:modelcontextprotocol |
2983 |
The mcp keyword is also used by SDKs, clients and tools that mention MCP among other features, so it is much broader than servers.
npm downloads (sample of 1,000 ranked packages)
| Monthly downloads | Packages | Share |
|---|---|---|
| < 100 | 0 | 0.0% |
| 100-999 | 78 | 7.8% |
| 1,000-9,999 | 825 | 82.5% |
| 10,000-99,999 | 88 | 8.8% |
| 100,000+ | 9 | 0.9% |
In this sample the median package had 1,891 monthly downloads (25th percentile 1,255, 75th percentile 3,530, 90th percentile 9,545). The 10 most-downloaded packages accounted for 59.1% of the sample’s monthly downloads. The largest, yahoo-finance2 (2,732,100 monthly downloads), is a general-purpose library that also lists the mcp-server keyword. 93.5% of the sampled packages had published a version on or after 2026-07-01, and 53.6% were scoped (@org/name).
| License (package.json) | Packages | Share |
|---|---|---|
| MIT | 685 | 68.5% |
| Apache-2.0 | 193 | 19.3% |
| SEE LICENSE IN LICENSE | 14 | 1.4% |
| ISC | 12 | 1.2% |
| Elastic-2.0 | 12 | 1.2% |
| AGPL-3.0-only | 12 | 1.2% |
Limitations
- Self-applied labels. The counts measure how many projects use the
mcp-servertopic or keyword, not how many working MCP servers exist. Some labeled projects are not servers, and many servers are not labeled. - Creation dates are not tagging dates. A repository counted under March 2025 was created then but may have been tagged later. Deleted and private repositories are not counted, so earlier months may be undercounted compared with when they happened.
- Rising counts may partly reflect labeling habits. Part of the increase could come from more authors adding the topic, not only from more servers being written.
- The npm sample is not random. It is the top 1,000 of 9,658 in npm’s search ranking, which favors popular and maintained packages. That is why no sampled package had fewer than 100 monthly downloads; across all 9,658 the distribution is likely lower. The download figures describe this sample only.
- Downloads are not users. npm download counts include CI runs, mirrors and automated installs.
- GitHub language is the repository’s primary language as detected by GitHub. License detection depends on GitHub recognizing the license file.
- One snapshot. All counts are as of the collection time and change daily.
How to reproduce
From the packages/frontend directory of the sharemd repository, with Node 20 or later:
npx tsx scripts/research/state-of-mcp-servers.ts
The run takes about six minutes because of the GitHub rate limit. It writes a snapshot to content/research-data/state-of-mcp-servers.json and prints every table on this page. Counts will differ on a later run. To recompute the tables from the saved snapshot without fetching, add --offline.
This piece is part of the Research series on sharemd.net, which publishes analyses of public data.