MCP server for GEOScore - AI search optimization scanner. Scan any website for AI search (GEO) readiness and get actionable recommendations.
GEOScore MCP has 8 tools with complete input schemas and descriptions, but exhibits several quality gaps that prevent a higher score. Tool naming is mostly verb-noun compliant (geo_scan, geo_deep_scan, geo_generate_fix, etc.), which is good. However, parameter descriptions lack depth and actionability. Most critically: (1) NO output schemas are documented for ANY tool, LLMs cannot infer what fields to expect from responses, violating the baseline that 100% of A+ tools have documented return types. (2) Several parameters lack descriptions entirely or are vague. (3) Error handling and recovery guidance is absent. (4) The geo_deep_scan, geo_generate_fix, and geo_check_visibility tools include api_key as a parameter, which violates the critical security pattern of never exposing credentials in tool parameters, these should use server-side secret injection instead. (5) Parameters like 'queries' in geo_check_visibility lack type constraints (should be array of strings with length limits). The server is functional but falls short of production quality baseline.
Check if a domain is being cited by AI search engines (ChatGPT, Perplexity, Claude). Tests brand-related queries against multiple AI engines and reports citation status. Requires Pro API key.
Compare two domains' GEO readiness scores side by side. Returns both domain profiles with scores, grades, and metadata for direct comparison. Useful for competitive analysis.
Create a free GEOScore API key for programmatic access. Free keys allow 10 scans/day. Returns the API key that can be used with other geo_ tools.
Deep scan a domain with full pro-level analysis. Returns everything from geo_scan plus: complete implementation markdown, AI-generated llms.txt, Schema.org JSON-LD fixes, meta tag optimizations, GEO value model with business insights, human-readable report, and 14-day sprint plan. Requires an API key with Pro plan or higher.
Generate ready-to-use fix code for a specific GEO issue. Scans the domain and generates the fix file content that can be directly written to the project. Fix types: 'llms_txt' (generate llms.txt file), 'schema' (JSON-LD structured data), 'meta' (meta tag improvements), 'robots' (AI-friendly robots.txt), 'sitemap' (XML sitemap guide).
NO output schemas documented for any of the 8 tools. LLMs cannot infer response structure, forcing them to hallucinate field names or make incorrect downstream tool calls. Baseline: 100% of A+ tools have documented return types.
api_key parameter exposed in three tools (geo_deep_scan, geo_generate_fix, geo_check_visibility). Credentials must never appear as tool parameters, they are logged in agent traces and prompt history. Use server-side secret injection via environment variables or MCP _meta instead.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 17 | - | v1 |
Get a domain's GEO score history and profile. Returns the latest score, best score, total scan count, first/last scanned dates, and site metadata. Useful for tracking improvements over time.
Retrieve a previously saved GEO scan report by its report ID. Returns the full report data including domain, score, grade, and all check details.
Scan a website for AI search (GEO) readiness. Returns a score (0-100), grade (A-F), and 11 technical checks covering robots.txt, llms.txt, structured data, meta tags, content structure, sitemap, HTTP headers, content quality, internal linking, AI crawl access, and citation value. Each check includes specific issues found and actionable fix suggestions.
Parameter descriptions lack actionability and validation rules. Examples: 'domain' parameters lack format specification (strip https://? trailing slash?). 'queries' parameter in geo_check_visibility has no type constraints, length limits, or examples. Descriptions should state format, range, and allowed values directly.
No error handling or recovery guidance in any tool description. When geo_deep_scan requires Pro plan, what error does the LLM get if the user passes a free key? When geo_get_report fails with invalid report_id, how should the agent recover? Descriptions should say 'If X fails, try Y' or direct to a discovery tool.
Parameter 'queries' in geo_check_visibility lacks type constraints. Description says 'array of strings' but input schema does not enforce minItems, maxItems, or string length limits. If LLM passes 1000 queries, API likely fails. Constraints should be in both description and JSON Schema.
geo_deep_scan has api_key in the schema but NOT in the required array, creating ambiguity. Is it optional? Does the tool fail silently without a key, or return an error? Description should clarify: 'Required for Pro features, optional for free tier scans (limited analysis).' Current state forces LLMs to guess.