Open-source MCP server that turns Claude/Cursor into a marketing analyst — AI-search (GEO) readiness audits, llms.txt validation, on-page SEO checks.
Four tools with clear, domain-specific purposes (AI-readiness audits, SEO checks, llms.txt validation). All have descriptions (194 - 280 chars, within baseline 34 - 392 range). Input schemas present with typed parameters (string). However, output schemas are NOT documented in the visible code, only return type hints (dict) appear. Parameter descriptions are minimal (e.g., 'The URL of the web page to audit' is generic). No enum constraints, no error handling guidance, no pagination support despite tools that may return large result sets. Tool names follow verb_noun pattern (audit_*, compare_*, check_*) and are unambiguous. Prompts are well-designed (full_site_audit, compare_with_competitor) with clear instructions. Missing: output field documentation, parameter validation rules, error recovery guidance, and per-parameter descriptions beyond the bare minimum.
Audit a web page for AI-search (GEO) readiness: can ChatGPT, Perplexity, Claude and Google AI Overviews read, parse and cite this page? Returns a 0-100 score, per-check evidence, and a prioritized fix list. 15 checks across four dimensions: access (AI-crawler robots rules, JS-rendered-content risk, noindex/nosnippet, sitemap), structure (JSON-LD, headings, title/meta, llms.txt), citation-ready content (FAQ schema, question headings, answer-first, lists/tables, factual density), and trust/E-E-A-T (author attribution, freshness dates).
Classic on-page SEO audit of a single page: title and meta description quality, H1 usage, canonical link, Open Graph tags, image alt coverage, internal/external link counts, word count — with a list of concrete issues found.
Check whether a domain serves an llms.txt file (the emerging llmstxt.org standard that guides AI crawlers) and validate its format: H1 title, blockquote summary, sections and markdown links.
Compare the AI-search readiness of two pages (e.g. your site vs a competitor). Returns both scores, the winner, the score gap, which checks differ and why, and fix lists for each side.
Output schemas not documented. Tools return dict with no field documentation, forcing LLMs to infer structure. Violates pattern:tool and pattern:response-shaper.
Parameter descriptions are generic and lack format/constraint details. 'The URL of the web page to audit' does not specify format, valid schemes, or error cases. Violates pattern:tool-description and pattern:constrained-input.
No error handling guidance. Tools do not document what happens on invalid URLs, network failures, or timeouts. LLMs cannot recover from failures. Violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No pagination or result limits documented. Tools that audit pages may return large result sets (15 checks, multiple fix lists). No limit parameter or pagination guidance. Violates pattern:paginated-result.
Tool descriptions lack WHEN-to-use guidance. 'Audit a web page for AI-search readiness' states WHAT but not WHEN to call this vs compare_ai_readiness or audit_onpage_seo. Violates pattern:tool-description.