← 全部工具

siliroid/unreached

热度 65 更新于 开发与构建

Finds the things in your repo that exist and are never reached. Zero deps.

githubauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

unreached

Two things live here, and they are not the same product. The CLI below finds unreferenced code in your repo. Free, zero-dependency, runs on your machine. The registry census — the probing, snapshot and delta tooling in probe-full.js, weekly-run.js and diff-census.js — grew out of it and is a paid service: unreached.dev. Every delta it produces publishes the share of endpoints it actually reached, so a quiet week and a broken prober cannot look identical. The code for all of it is in this repo and auditable.

Finds the things in your repo that exist and are never reached.

Not dead code in the compiler sense. The narrower, dumber, more common thing: a function you wrote, a stylesheet rule you added, a file you generated — sitting there, correct, and wired to nothing.

npx -y github:siliroid/unreached .

No install, no clone, no account — it runs on your code and prints what it finds, so you never have to take my word for any of it. (git clone https://github.com/siliroid/unreached && node unreached/unreached.js [dir] still works if you'd rather read it before you run it, and you should.)

Zero dependencies. Node 18+. Reads your files, writes nothing. Doesn't fail your build.

What it found this week, in other people's registries

Not claims — filed, public, and reproducible from the one-liner in each:

  • modelcontextprotocol/registry#1485 — scanned 60,566 servers / 7,516 remote hosts in the official MCP registry. 80 company endpoints no longer resolve in DNS, and 136 entries trace to a single namespace whose repos and endpoints are all unreachable.
  • docker/mcp-registry#4564 — 6 catalogued servers whose source: link 404s while the image still pulls. Dead provenance, not dead servers.
  • acuvity/mcp-servers-registry#15 — 19 dead repo references, 6 with the successor proposed by --suggest.
  • docker/mcp-registry#4568 — the other half of that catalogue: 76 hosted entries no tooling checks at all. Probed every one. Zero dead.

The hosted blind spot — a census nobody else has run

Every catalogue checker I can find reads the source-repo field. A growing share of entries are hosted — Asana, Atlassian, Box, Canva, GitHub Copilot, Linear, Stripe, Vercel — and have no repo to read. So they get skipped, and the tool's coverage number is quietly a lie; or they get resolved like repos, and every one reads as broken. Both failures are invisible from inside the tool.

So I built a prober that speaks the actual protocol — an MCP initialize handshake, not a status code — and ran it three times per endpoint across two independent registries:

| registry | catalogue | hosted | open | gated | not-MCP | dead | unknown | |---|---|---|---|---|---|---|---| | Archestra | 901 | 36 (4.0%) | 8 | 25 | 3 | 0 | 0 | | Docker | 328 | 76 (23.2%) | 16 | 50 | 3 | 0 | 6 | | combined | 1,229 | 112 | 24 | 75 | 6 | 0 | 6 |

75 of 112 — 67% — answer 401/402/403. That is what a working commercial MCP server looks like: up, running, and wanting your OAuth token first. Every tool I can find reports it as broken. Zero endpoints were actually dead. 3/3 probe agreement on all 112.

Then the official registry corrected me

I published that 67% and then ran the same probe against the official MCP registry: 60,763 entries, 21,346 advertising a remote endpoint, resolving to 10,542 unique URLs. Seeded random sample of 1,200:

| state | count | share | |---|---|---| | alive-open | 620 | 51.7% | | alive-gated | 318 | 26.5% | | alive-wrong-transport | 17 | 1.4% | | not-mcp | 134 | 11.2% | | dead | 0 | 0.0% | | unknown | 111 | 9.3% |