MCP server that lets Claude, Cursor and any MCP client measure a site the way a search engine and an AI read it: AI visibility score, llms.txt health, the sixteen content gates, and a full public-signal audit. Free data only, no account, nothing stored.
Four tools with strong, domain-specific descriptions (all 150+ chars, well above 10-char minimum). All have input schemas with proper JSON Schema structure and type definitions. Tool names are action-oriented (audit_site, check_llms_txt, run_gates, compare_sites). Parameters include enums (lang), ranges (pages, maxLinks, minItems/maxItems for urls array), and clear descriptions. However, output schemas are not documented in the visible code, responses are JSON but structure is not formally declared. Error handling is present (internal address rejection, scheme validation, missing folder detection) but lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations.
Read a public site and score six areas out of ten: technical SEO, content and structure, AEO (whether an answer engine can quote it), GEO (whether AI systems can identify and use it), off-page trust, and conversion. Returns every failing and borderline check with what was actually found on the pages. Free public signals only: no account, no paid tool, nothing stored. Use it when someone asks why a site is not being cited, why AI assistants recommend competitors, or what to fix first.
Read a site's /llms.txt, check it against the format (one H1 naming the site, a summary, sections of links) and follow its links to see whether each still leads to a page, a redirect or nothing. This file rots silently because no human ever opens it. Use it when someone asks whether their llms.txt is correct, why an assistant quotes the wrong pages, or before publishing a new one.
Run the same six-area measurement on two to four public sites and return them side by side. Use it when someone asks why a competitor is being quoted instead of them, or wants to know where the gap actually is rather than guessing. Free public signals only.
Run the sixteen quality gates on a folder of Markdown or MDX content on this machine: cut titles, copied paragraphs, hollow sections, dead links, redirect chains, a stale agent index, figures with no source, and the agent surface. Returns the report. Use it before publishing, or when asked what is wrong with a content corpus. It needs a local path, not a URL, and it reads files without sending them anywhere.
Output schemas not documented. Tools return JSON (audit_site returns {scores, reachable}, check_llms_txt returns {found, verdict}, compare_sites returns side-by-side measurements) but formal response schemas are not declared in tool definitions. LLMs cannot plan downstream operations or extract fields reliably.
No tool annotations despite all tools being read-only. Tools should declare readOnlyHint=true to signal to agents that they are safe to call without side effects and can be retried freely.
Error messages lack recovery guidance. Errors like 'local address rejected' or 'no such folder' are clear but do not suggest next steps (e.g., 'Try a public domain' or 'Verify the path exists').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Parameter 'only' in run_gates accepts comma-separated gate numbers but lacks formal constraint documentation (e.g., valid range 1-16, format specification). Description is minimal.
No pagination or result limits documented for audit_site and compare_sites. If a site has thousands of failing checks, response size is unbounded. Should cap results and offer pagination.