MCP server for Agent Ready: scan any URL for AI agent readability (Vercel Agent Readability Spec, llmstxt.org, MCP/A2A/agents.json and other agent-protocol manifests). 72 checks, each with fix guidance.
Four tools with strong naming (verb_noun pattern), comprehensive descriptions (150-250 chars each), and explicit input/output schemas. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). However, parameter descriptions lack detail on constraints, formats, and error recovery paths. Output schemas defined but not visible in excerpt. Error handling delegates to toolErrorToContent() without visible guidance text. Composition is sound, each tool has one responsibility and clear chaining via IDs.
Natural-language search (NLWeb /ask) over Agent Ready's own content — scoring methodology, the check registry, the specs it validates, and the content library (explainers, comparisons, how-to guides, glossary). Public, no API key required. Returns Schema.org-typed result objects; optional itemType narrows to a corpus type and mode 'summarize' adds an extractive summary.
Fetches a completed or in-progress scan by its id. Requires a Pro API key — scan history is account-scoped. (Anonymous scan_site calls return their result inline, so keyless use never needs this tool.)
Runs the agent-ready.dev scanner against a URL and returns structured results: Vercel score, llmstxt.org score, and per-check findings with remediation hints. Works without an API key on the anonymous free tier (3 scans/30 days per IP, 25-page depth, synchronous). With a Pro AGENT_READY_API_KEY it scans deeper (up to 250 pages) and may take up to ~60s; if the local poll deadline elapses, the tool returns the scan id and asks you to poll with get_scan.
Validates a page's (or a pasted) JSON-LD against Agent Ready's structured-data checks (schema lint + agent-coherence: freshness honesty, canonical/.md coherence, entity-name consistency, extraction signal) and returns a verdict with per-check fix guidance. Provide exactly one of `url` (fetch + validate) or `jsonld` (validate a string the agent just authored — no network needed). Public, no API key required. The one structured-data check the first-party validators (validator.schema.org, Rich Results Test) don't do.
Parameter descriptions lack constraint details. 'url' and 'jsonld' in validate_structured_data are mutually exclusive but this is not stated in descriptions. 'pageLimit' in scan_site lacks range (min/max) and format guidance.
Error handling delegates to toolErrorToContent() without visible recovery guidance. LLM cannot determine if errors are retryable, user-fixable, or fatal. No actionable error messages visible in source.
Output schemas (scanOutputShape, askOutputShape, validateOutputShape) are referenced but not defined in visible source. Cannot verify field names, types, or whether chaining IDs are included.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2025-06-18+ | v2 |
scan_site description mentions 'up to ~60s' timeout and async polling but no explicit timeout parameter or guidance on when to call get_scan. LLM must infer polling strategy from description text.
ask tool accepts optional 'itemType' and 'mode' enum parameters but descriptions do not list valid enum values. LLM must guess or hallucinate valid options.