An MCP server for auditing and optimizing content for Answer Engine Optimization (AEO), providing visibility scores, citation rates, and optimization recommendations.
This server has severe definition quality gaps. The single tool 'audit_aeo' has a reasonable name and basic schema, but the description is extremely sparse (57 chars, below the 194-char baseline). The tool definition appears to be inferred from Python class code rather than explicit MCP registration, no evidence of actual MCP server implementation. The server lacks ANY MCP protocol structure: no prompts, resources, logging, error handling, tool annotations, or pagination. Input parameters have types but minimal descriptions. Output schema is undocumented, the LLM cannot know what fields to expect. No error handling or recovery guidance. No security controls. This is not a production-grade MCP server; it's a standalone Python client.
Audits Answer Engine Optimization for a given brand query and target URL, returning visibility score, citation rate, and optimization tips
Tool definition inferred from Python class rather than explicit MCP registration, no evidence of actual MCP server protocol implementation
Tool description is 57 characters, below minimum threshold of 20, but critically sparse. Provides almost no context for LLM tool selection. Should be 100-300 chars explaining WHAT it does, WHEN to use it, and what it returns.
Input parameters 'brand_query' and 'target_url' have descriptions but lack format constraints. No validation that target_url is a valid URL, no guidance on query structure or length limits.
Output schema completely undocumented. Return dict contains 'aeo_visibility_score', 'citation_rate_pct', and 'optimization_tips' but LLM has no schema definition to parse these fields. No type hints, no field descriptions, no guarantees about array structure or value ranges.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
No error handling. Tool returns hardcoded mock data regardless of input validity. No guidance for LLM on failure modes, retry conditions, or what to do if audit fails.
No pagination, rate limiting, or result limits documented. If optimization tips array grows, no mechanism to cap or page results.
No security controls: no permission checks, no audit trail, no input sanitization against URL injection or query injection attacks.