AI Readiness Auditor — validates the MCP Server Card that advertises a remote MCP server for AI clients.
AI Readiness
Makes the site’s MCP server discoverable and connectable by AI clients.
Security
HTTPS-only hosting and browser-safe CORS on the card endpoint.
How it works
The auditor discovers Server Cards from the audited URL’s origin and then validates every card it finds:- AI Catalog as a link source — fetches
/.well-known/ai-catalog.jsonand follows entries whosetypeisapplication/mcp-server-card+json, using theirurl(fetched withAccept: application/mcp-server-card+json) or inlinedata. The catalog itself is not audited: a missing, unreachable, or malformed catalog produces no findings, and broken entry links are only recorded as attempts. - Reserved-location fallback — when the catalog yields no card, tries
/.well-known/mcp/server-card.jsonand then/mcp/server-card, stopping at the first HTTP 200. - Document validation — each card is checked against the Server Card v1 schema rules:
$schema,name,version,description, andremotes. - Hosting validation — cards fetched over HTTP are additionally checked for media type, CORS, and HTTPS. Inline cards embedded in a catalog entry have no HTTP response of their own, so hosting rules are skipped for them.
- Specification pin — every run emits
37A-McpServerCardAuditor-100(INFORMATION) naming MCP Server Card v1 (27 Jun 2026) and schema.json commit92999cb3f5d82e648385cb92ce41ed9aa1386eda. That check does not change overall status.
FAIL; otherwise a wrong media type produces a WARNING; otherwise the audit is a SUCCESS.
What it audits
Every row maps to onecheckRule* method and one CheckCode. Hosting rules (412, 413, 300) are skipped for inline cards embedded in an AI Catalog entry. 37A-McpServerCardAuditor-100 is emitted on every run, including missing-card and invalid-URL failures. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail.
Output documentation
Risks and considerations
AI discoverability
- Without a Server Card at a discoverable location, AI clients cannot find or auto-configure a connection to the site’s MCP server, so the server is invisible to agentic sessions.
- A card that violates the v1 schema (wrong
$schema, malformedname, rangeversion) may be rejected by validating clients even when the MCP server itself works.
Client interoperability
- Browser-based clients are blocked entirely when the card endpoint lacks
Access-Control-Allow-Origin. - Serving the card without the
application/mcp-server-card+jsonmedia type can break clients that negotiate content via theAcceptheader. - Invalid
remotes[]transport types or endpoint URLs steer clients toward connections that cannot be established.
Security and trust
- Server Cards are consumed before the client connects; a card served over plain HTTP can be tampered with in transit and redirect clients to a rogue endpoint.
- A stale or inaccurate card (identity, transport, protocol versions) is a confusion or downgrade vector — keep the card consistent with the server’s runtime behavior.
Operational drift
- The card is a static document: version bumps, endpoint moves, or transport changes on the server must be mirrored in the card, or clients will act on outdated connection details.