Docs
The rubric
Six components, 100 points. Components that don't apply (no package to scan, say) are left out of the denominator. Any critical finding is an F, no matter the score.
Components
- Code scan25 pts
Secrets, command injection from strings, eval, obfuscation, install scripts, curl-pipe-sh, calls to paste or tunnel hosts, environment dumps. Applied to the published npm or PyPI package. Not applicable to remote-only servers.
- Live reliability20 pts
From real gateway calls over 30 days once there are 20 or more: success rate and p95 latency. Before that, a live probe of the remote endpoint.
- Tool poisoning15 pts
Rules over the listing and every tool description: instruction overrides, hidden tags, do-not-tell-the-user, credential file reads, exfil nudges, role hijacks, zero-width characters.
- Auth quality15 pts
OAuth on a 401 scores highest. Then enforced bearer auth, then API-key headers, then static env keys. Open endpoints exposing write-action tools score lowest.
- Maintenance15 pts
Last push to the repository, archived flag. No repository listed is a low finding.
- Maintainer identity10 pts
Registry namespace matches the repository owner, account age, organization, verified domain namespace with a matching website.
Grades
- A85 to 100Passed every check we run.
- B70 to 84Solid. Minor gaps.
- C55 to 69Usable with care. Read the findings.
- D40 to 54Hidden from default search.
- Fbelow 40, or any critical findingBlocked at the gateway.
Penalties
Critical: the grade is F. High: 12 points off the component. Medium: 5. Low: 2. A component never goes below zero. One finding per rule per server, so twenty long tool descriptions is one fact, not twenty penalties.
Uptime checks
A grade is only as current as its last scan, so every remote server is also checked about four times a day between scans: one initialize request, the way any MCP client opens a connection, and only the status line is read. An answer of any kind counts as up, including a login wall or a rate limit; a missing endpoint, a server error or eight seconds of silence counts as down. The listing shows the share of its last 28 checks that were answered.
Four failed checks in a row put the server at the front of the scan queue, and the scan decides what happens to the grade, exactly as it would on any other day. When the endpoint answers again, it is rescanned again, so a grade can come back as quickly as it went.
Independence
No grade, badge or ranking is for sale, and there are no sponsored slots anywhere on the site. There is no code path that sets a grade by hand. Certified audits, when they start, will cost the builder nothing, will be done by named reviewers who declare conflicts, and the founder will not vote on them.
Re-run it
The scanner ships with the site's source. pnpm scan --slug=<slug> against your own database produces the same report you see here. Disagree with a finding? Appeal.