The readiness rubric
Readiness is measured, not claimed. A daily probe runs the checks below against every listing; each line is worth the points shown, and a line the probe could not see counts for nothing on either side of the slash. Definition tokens are counted with o200k_base over the JSON of tools/list, minus whitespace. A score change is a rubric version: mcp-2026-09-11.1, skill-2026-09-11.1.
MCP servers over streamable-http and sse mcp-2026-09-11.1
Reachable
20 points
- answers at all: discovery, initialize or a well-formed 40110 pts
- https, with no redirect chain5 pts
- p50 under 500 ms5 pts
Speaks the protocol
25 points
- `server/discover` answers (15), or `initialize` answers (8)15 pts
- revision 2026-07-285 pts
- deterministic tool order across two `tools/list` calls5 pts
Cheap to hold
20 points
- definition tokens under 5,000 (12, sliding to 0 at 25,000)12 pts
- `ttlMs` and `cacheScope` present on the result8 pts
Honest
20 points
- annotation coverage at least 90%10 pts
- `outputSchema` coverage at least 50%5 pts
- a 401 carrying RFC 9728 metadata, or no auth needed5 pts
Trustworthy
15 points
- namespace proven: a verified claim, or an import from the registry5 pts
- repository public and pushed within 12 months5 pts
- injection scan clean5 pts
Agent Skills skill-2026-09-11.1
Reachable
20 points
- SKILL.md fetched15 pts
- repository public5 pts
Speaks the format
25 points
- frontmatter valid, with only portable keys15 pts
- name matches the folder5 pts
- description under 1,024 characters5 pts
Cheap to hold
20 points
- body under 5,000 tokens (12, sliding to 0 at 15,000)12 pts
- description under 100 tokens8 pts
Honest
20 points
- says when to use it10 pts
- licence declared5 pts
- allowed tools declared5 pts
Trustworthy
15 points
- pushed within 12 months5 pts
- not archived5 pts
- injection scan clean5 pts
What one probe does
Every night, against every listing, in the order to understand them in. A step that cannot run — no door, no domain, no repository — records nothing rather than a failure.
- 1Ask the server to describe itself over the discovery method of the 2026-07-28 revision.
- 2Fall back to the initialize handshake when discovery answers nothing, and read the protocol revision from it.
- 3Stop at a 401 and read the WWW-Authenticate header, because a server that asks for a token is alive and honest about it.
- 4Read tools/list and count the tools, the required arguments and the tokens the definitions occupy.
- 5Call one tool that declares readOnlyHint with deliberately bad arguments, and judge how legible the error is.
- 6Canonicalise tools/list and hash it, so a change to the manifest can be counted later as churn.
- 7Scan the tool descriptions for the phrases a prompt injection is written in.
- 8Look on the publisher's domain for /llms.txt and for a markdown door.
- 9Ask GitHub for the repository's status, its last push and whether it is archived.
- 10Record the round trip in milliseconds and whether the server answered at all.