Level 1 measurements
7 of 67 servers reached for a website their own README does not name
Each of those 7 servers is recorded with the name it asked for and the line of its README that does not contain it. Nothing left the machine: the room has no route off the host, so every name answered to the loopback address and no connection completed.
24 servers offered a tool their README does not name — 1,143 tools were offered in total and none was called. Read that second figure with the caveat attached: this rule reads only the README that shipped in the package, so a server documenting its tools in a reference file beside it shows every tool as unnamed, and 10 of those servers have a README under three kilobytes. A large count here is a fact about the rule as much as about the package.
2 did both. The remaining 38 had nothing found, which is not the same as a clean sweep — see below.
67 npm packages, each measured from its name alone: installed, started in a room with no route to the internet and no real credentials, asked for its list of tools, and compared against its own README. No tool was called. Measured 2026-10-31.
Not calibration-backed. The calibration behind the ten curated measurements proves the instrument catches planted claims about what a tool did. Level 1 calls no tool and reads each README by a stated rule rather than by a person, so nothing in that calibration speaks to these pages.
A website counts as declared only if the README names it. A tool counts as documented only if the README names it as a whole word.
This is not a ranking of the most-used servers. The set measured is whatever two registry searches returned, read by hand for whether each package is a server that starts without a credential. Download figures decided nothing about the order of this table, which is alphabetical by package, and four widely used servers are measured here that neither search returned at all. Nothing on this page says one server is more used, better or worse than another.
| Package | Version | Published at | Tools offered | Websites reached for | Not named in the README | Report |
|---|---|---|---|---|---|---|
@ai-dossier/mcp-server | 1.6.5 | github.com/imboard-ai/ai-dossier | 10 | 0 | none | [report](/s/ai-dossier--mcp-server.html) |
@cap-js/mcp-server | 0.1.0 | github.com/cap-js/mcp-server | 2 | 1 | none | [report](/s/cap-js--mcp-server.html) |
@contentrain/mcp | 3.11.21 | github.com/Contentrain/ai | 22 | 0 | none | [report](/s/contentrain--mcp.html) |
@cyanheads/pubmed-mcp-server | 2.11.1 | github.com/cyanheads/pubmed-mcp-server | 12 | 0 | none | [report](/s/cyanheads--pubmed-mcp-server.html) |
@drawio/mcp | 1.10.1 | github.com/jgraph/drawio-mcp | 8 | 0 | none | [report](/s/drawio--mcp.html) |
@ericthered926/duckduckgo-mcp-server | 0.6.0 | github.com/ericthered926/duckduckgo-mcp-server | 2 | 0 | none | [report](/s/ericthered926--duckduckgo-mcp-server.html) |
@hisma/server-puppeteer | 0.6.5 | github.com/Hisma/servers-archived | 7 | 0 | none | [report](/s/hisma--server-puppeteer.html) |
@knip/mcp | 0.0.37 | github.com/webpro-nl/knip | 2 | 0 | none | [report](/s/knip--mcp.html) |
@kubb/mcp | 5.15.3 | github.com/kubb-labs/kubb | 3 | 0 | none | [report](/s/kubb--mcp.html) |
@magicuidesign/mcp | 2.0.0 | github.com/magicuidesign/mcp | 3 | 0 | none | [report](/s/magicuidesign--mcp.html) |
@mantine/mcp-server | 9.7.4 | github.com/mantinedev/mantine | 5 | 0 | none | [report](/s/mantine--mcp-server.html) |
@mastra/mcp-registry-registry | 1.1.7 | github.com/mastra-ai/mastra | 2 | 0 | none | [report](/s/mastra--mcp-registry-registry.html) |
@modelcontextprotocol/server-memory | 2.0.1 | github.com/modelcontextprotocol/servers | 9 | 0 | none | [report](/s/modelcontextprotocol--server-memory.html) |
@modelcontextprotocol/server-sequential-thinking | 2.0.0 | github.com/modelcontextprotocol/servers | 1 | 0 | none | [report](/s/modelcontextprotocol--server-sequential-thinking.html) |
@mui/mcp | 0.1.9 | github.com/mui/mui-x | 2 | 1 | none | [report](/s/mui--mcp.html) |
@negokaz/excel-mcp-server | 0.12.0 | not stated | 6 | 0 | none | [report](/s/negokaz--excel-mcp-server.html) |
@next-ai-drawio/mcp-server | 0.4.7 | github.com/DayuanJiang/next-ai-draw-io | 16 | 0 | none | [report](/s/next-ai-drawio--mcp-server.html) |
@playwright/mcp | 0.0.83 | github.com/microsoft/playwright-mcp | 25 | 0 | none | [report](/s/playwright--mcp.html) |
@putervision/behavior-mcp | 0.4.1 | github.com/putervision/behavior-mcp | 10 | 0 | none | [report](/s/putervision--behavior-mcp.html) |
@putervision/state-memory-mcp | 1.4.1 | github.com/putervision/state-memory-mcp | 13 | 0 | none | [report](/s/putervision--state-memory-mcp.html) |
@putervision/world-model-mcp | 0.6.1 | github.com/putervision/world-model-mcp | 15 | 0 | none | [report](/s/putervision--world-model-mcp.html) |
@superdoc/mcp | 1.12.0 | github.com/superdoc/docx-editor | 13 | 0 | none | [report](/s/superdoc--mcp.html) |
@taiga-ui/mcp | 0.4.1 | github.com/taiga-family/taiga-ui-mcp | 4 | 0 | none | [report](/s/taiga-ui--mcp.html) |
@tokenizin/mcp-npx-fetch | 1.0.0 | github.com/tokenizin-agency/mcp-npx-fetch | 4 | 0 | none | [report](/s/tokenizin--mcp-npx-fetch.html) |
@transcend-io/mcp-server-docs | 0.4.16 | github.com/transcend-io/tools | 2 | 0 | none | [report](/s/transcend-io--mcp-server-docs.html) |
@ui5/mcp-server | 0.3.2 | github.com/UI5/mcp-server | 10 | 0 | none | [report](/s/ui5--mcp-server.html) |
@upstash/context7-mcp | 4.4.4 | github.com/upstash/context7 | 2 | 0 | none | [report](/s/upstash--context7-mcp.html) |
ai-model-advisor-mcp | 2.3.0 | github.com/Semicolon-D/model-advisor-mcp | 9 | 0 | none | [report](/s/ai-model-advisor-mcp.html) |
excalidraw-mcp | 1.0.0 | not stated | 11 | 0 | none | [report](/s/excalidraw-mcp.html) |
hourei-mcp-server | 1.0.6 | github.com/groundcobra009/hourei-mcp-server | 3 | 0 | none | [report](/s/hourei-mcp-server.html) |
mcp-server-code-runner | 0.1.8 | github.com/formulahendry/mcp-server-code-runner | 1 | 0 | none | [report](/s/mcp-server-code-runner.html) |
package-registry-mcp | 2.1.0 | github.com/artmann/package-registry-mcp | 16 | 0 | none | [report](/s/package-registry-mcp.html) |
playwright-mcp | 0.0.19 | github.com/Ashish-Bansal/playwright-mcp | 7 | 0 | none | [report](/s/playwright-mcp.html) |
puppeteer-mcp-server | 0.7.2 | github.com/merajmehrabi/puppeteer-mcp-server | 8 | 0 | none | [report](/s/puppeteer-mcp-server.html) |
sample-aws-pricing-calculator-mcp | 1.3.4 | not stated | 10 | 0 | none | [report](/s/sample-aws-pricing-calculator-mcp.html) |
scryfall-mcp-server | 0.1.1 | modelcontextprotocol.io | 7 | 0 | none | [report](/s/scryfall-mcp-server.html) |
smart-web-mcp | 1.10.19 | github.com/jojo-labs/smart-web | 6 | 0 | none | [report](/s/smart-web-mcp.html) |
ssh-mcp | 2.22.0 | github.com/tufantunc/ssh-mcp | 15 | 0 | none | [report](/s/ssh-mcp.html) |
Reading the table
- Published at is the repository or homepage the package's own manifest points at, printed because two packages measured here are called Playwright and are not by the same people. It is what each package says about itself and is not verified.
- Tools offered is what each server answered to one
tools/listrequest. None was called. - Websites reached for counts the distinct names a server looked up or opened an encrypted connection to before any tool was used. Nothing left the machine: every name answered to the loopback address, so no connection completed and no contents were seen.
- Not named in the README is the comparison, by the rule above and nothing looser. "none" means every tool it offered and every website it reached for appears in its own README.
- An empty row is not a clean sweep. A server that offers few tools and reaches for no website has little for this comparison to find, which is a fact about the measurement as much as about the server.
- A large count is not a scandal either. Only the README file that shipped in the package is read. A server that documents its tools in another file — a reference page beside the README, or a website — shows every tool it offers as not named here. Each report cites the README it read, its digest and its line count, and the name it looked for and did not find, so any row can be checked rather than taken.
- It is one run, once, with no route off the machine and no tool called. A page here says what a server did at startup while being watched, and where its README was silent about it. It says nothing else.
All 67 packages started, so no row says could not start. Evidence for every row — the full trace, the tool list, the README digest and each citation — is in level1/evidence/, one JSON file per package, beside the code that produced it.
29 pages are not published yet. Each reports a finding, and a page reporting a finding goes up only after its maintainers have been notified and three days have passed. The counts above include them; the pages and the package names do not appear until then. [How that works](/method.html)