MCP server for technical & on-page SEO audits — crawlability, HTTPS, Core Web Vitals, sitemap, robots.txt, structured data, and AI-crawler access. Reports as Markdown, JSON, or a shareable HTML file.
14 tools with complete schemas and descriptions. Naming follows verb_noun pattern (check_*, run_*, crawl_*). Descriptions are detailed (100-300 chars) and explain WHAT/WHEN/HOW. All parameters typed with descriptions. Error handling is sophisticated (describeError maps 15+ error codes to actionable messages). However, output schemas are not formally documented in the tool definitions, responses are described in prose rather than JSON Schema. No pagination parameters on crawl_audit despite potentially returning many results. Some parameter descriptions could be more concise per LLM optimization guidelines (50-200 chars ideal).
GPTBot/ClaudeBot/etc. access + noindex
Cache-Control, compression, ETag, size
International SEO: hreflang validity + return links
SSL certificate + http→https redirect
On-page keyword placement and density
Title/meta/h1/canonical/OG/viewport/images
Server-rendered HTML vs client-side JS shell
Output schemas not formally documented. Tool descriptions explain response format in prose (Markdown/JSON/HTML), but no JSON Schema definitions for return types. LLMs cannot reliably parse unstructured output or plan downstream calls.
crawl_audit lacks pagination parameters (limit, offset, page_size). Description says 'max_pages' but no cursor/next_page in response. Large crawls could exceed context window; no guidance on handling 1000+ page sites.
Parameter descriptions are verbose (100+ chars) when LLM-optimized descriptions should be 50-200 chars. E.g., seo_full_audit.output description is 180+ chars; could be condensed to 80 chars without losing clarity.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
robots.txt validity
sitemap.xml validity and sampled URLs
JSON-LD / schema.org validation
Clean-URL rules (offline)
Crawl a site and aggregate site-wide issues
Core Web Vitals (requires Chrome)
Run the full technical SEO checklist on a URL: rendering (server-rendered vs JS shell), HTTPS/SSL + redirect, page essentials (title, meta description, h1, canonical, Open Graph, mobile viewport, image lazy-loading/WebP/dimensions), caching headers, structured data (JSON-LD), sitemap.xml, robots.txt, and AI-crawler access. Returns a Markdown report with ✅/⚠️/❌ per check (or structured JSON with output: 'json', or a shareable HTML file with output: 'html'). Set compare_to_baseline: true to diff against the previous run. Does not include Lighthouse (use run_lighthouse separately — it is slower).
No confirmation/dry-run pattern for destructive operations. While all tools are READ_ONLY, if future versions add write operations (e.g., fix_robots_txt), they should support dry-run or confirmation.
check_keyword_placement requires 'keyword' parameter but no guidance on multi-word phrases, case sensitivity, or stemming behavior. Description should clarify: 'Exact phrase match or fuzzy?'