StillOS Digital Holdings · Neutral Ratings
RatingsFindingsDependency floorDirectoryPricingMethodologyExternal view
Every MCP trust index grades servers. This grades the ground they stand on. Measured 2026-10-03 · population 10,071 servers · 90 packages profiled, 90 resolved, 0 undetermined.
13 packages sit beneath ~80% of the 10,071 MCP servers we measure, are controlled by exactly one maintainer, and have not been published in 5+ years. 8 individuals solely control all 13 of them.
These are not MCP servers. They are the transitive dependencies underneath them — which is why a per-server scan cannot surface them: a single-maintainer bottleneck under eight thousand servers is a property of the dependency graph, not of any one package. That is the xz-utils shape: the surface was never the application, it was the sole dormant maintainer beneath thousands of them.
| package | MCP servers | reach | maintainers | dormant | last publish | sole maintainer |
|---|---|---|---|---|---|---|
once | 8,181 | 81.23% | 1 | 10.1y | 2016-09-06 | isaacs |
wrappy | 8,181 | 81.23% | 1 | 10.4y | 2016-05-17 | isaacs |
path-key | 8,092 | 80.35% | 1 | 5.5y | 2021-04-09 | sindresorhus |
shebang-command | 8,084 | 80.27% | 1 | 7.1y | 2019-09-06 | kevva |
shebang-regex | 8,084 | 80.27% | 1 | 5.1y | 2021-08-13 | sindresorhus |
safer-buffer | 8,068 | 80.11% | 1 | 8.5y | 2018-04-08 | chalker |
inherits | 8,055 | 79.98% | 1 | 7.3y | 2019-06-19 | isaacs |
depd | 8,048 | 79.91% | 1 | 7.9y | 2018-10-26 | dougwilson |
escape-html | 8,048 | 79.91% | 1 | 11.1y | 2015-09-01 | dougwilson |
setprototypeof | 8,048 | 79.91% | 1 | 7.2y | 2019-07-18 | wesleytodd |
fast-deep-equal | 7,953 | 78.97% | 1 | 6.3y | 2020-06-08 | esp |
require-from-string | 7,953 | 78.97% | 1 | 8.5y | 2018-04-09 | floatdrop |
json-schema-traverse | 7,948 | 78.92% | 1 | 5.8y | 2020-12-13 | esp |
Sole maintainership is not the finding. These carry the same ~80% reach with one maintainer and ship within the year. The finding is the conjunction of reach, sole control and multi-year dormancy — the controls are published here so the criterion can be checked against cases it must not fire on.
| package | MCP servers | reach | maintainers | dormant | last publish | sole maintainer |
|---|---|---|---|---|---|---|
zod | 8,534 | 84.74% | 1 | 0.1y | 2026-09-13 | colinhacks |
@hono/node-server | 8,133 | 80.76% | 1 | 0y | 2026-09-29 | yusukebe |
jose | 8,110 | 80.53% | 1 | 0.1y | 2026-09-05 | panva |
isexe | 8,087 | 80.3% | 1 | 0.6y | 2026-02-09 | isaacs |
eventsource-parser | 8,086 | 80.29% | 1 | 0y | 2026-09-15 | rexxars |
es-object-atoms | 8,082 | 80.25% | 1 | 0.4y | 2026-05-22 | ljharb |
pkce-challenge | 8,081 | 80.24% | 1 | 0.7y | 2026-02-01 | crouchcd |
side-channel | 8,051 | 79.94% | 1 | 0.3y | 2026-06-08 | ljharb |
side-channel-list | 8,051 | 79.94% | 1 | 0.5y | 2026-04-08 | ljharb |
hono | 8,050 | 79.93% | 1 | 0y | 2026-09-30 | yusukebe |
ipaddr.js | 8,048 | 79.91% | 1 | 0.2y | 2026-08-04 | whitequark |
ip-address | 7,930 | 78.74% | 1 | 0y | 2026-10-01 | beaugunderson |
zod-to-json-schema | 7,916 | 78.6% | 1 | 0.5y | 2026-03-27 | stefan-terdell |
json-schema-typed | 7,910 | 78.54% | 1 | 0.9y | 2025-11-17 | remyrylan |
| individual | chokepoints | packages |
|---|---|---|
| isaacs | 3 | once · wrappy · inherits |
| sindresorhus | 2 | path-key · shebang-regex |
| dougwilson | 2 | depd · escape-html |
| esp | 2 | fast-deep-equal · json-schema-traverse |
| kevva | 1 | shebang-command |
| chalker | 1 | safer-buffer |
| wesleytodd | 1 | setprototypeof |
| floatdrop | 1 | require-from-string |
Dependency monoculture in MCP is not news and is not presented here as news. The work below established it, and is cited first deliberately.
| work | contribution |
|---|---|
| arXiv 2509.25292 | Multi-market crawl, 8,401 valid projects; names dependency monoculture as a structural risk |
| MCPwn | Deep scan of 14 servers; all five CRITICAL packages were single-maintainer |
| arXiv 2506.13538 | MCP at First Glance — first large-scale study (1,899 servers); frames transitive-dependency risk |
| arXiv 2510.16558 | DSN 2026 — 67,057 servers across six registries, SDK-based dependency filtering |
| DEV registry study | 6,030 servers; median 94 packages per server; 88% pull an HTTP framework into a stdio process |
| Stacklok | The 2025 npm compromises hit indirect dependencies of the official MCP TypeScript SDK |
What this page adds, specifically: the maintainer-concentration cut — that 8 named individuals solely control all 13 dormant chokepoints; the published negative controls, so the criterion can be checked against the cases it must not fire on; and a dated measurement, re-taken on a schedule, because a day nobody recorded cannot be backfilled by anyone. It does not claim to have discovered that MCP depends on a narrow base.
Reach is measured against our own dated MCP census; maintainer count and last-publish date come from public npm registry metadata and are re-derivable by anyone with npm view <pkg> maintainers time.modified. Machine-readable: /floor.json. The as_of date is stamped by the producer that collected the data, never by the page that renders it.
Exposure, not accusation. This asserts measured reach, maintainer count and publish recency. It asserts no wrongdoing by any maintainer and no vulnerability in any package. A dormant package is not a compromised package — it is an unattended one, and the distinction is the entire point of publishing the negative controls beside the hits.
© Still OS Digital Holdings LLC · Wyoming · Rating methodology · Pricing · Verify any figure · info@stillosdigitalholdings.com