Tracks AI model visibility and brand mention rates across multiple LLM platforms (ChatGPT, Claude, Gemini) for specified brand names and search queries
This server has a single tool with critical definition gaps. The tool name 'track_ai_visibility' lacks a clear action verb (should be 'get_ai_visibility' or 'track_brand_mentions'). The description is present but generic (78 chars, below the 194-char baseline for A+ tools). Input parameters lack type definitions in the visible schema, 'target_queries' is declared as array but has no item type specification. No output schema is documented; the response structure is inferred from example_usage.py only. No error handling, validation, or recovery guidance. The implementation is a mock returning hardcoded data, not a real integration. No MCP server scaffolding is visible, this appears to be a standalone Python class, not an MCP-compliant tool server.
Tracks AI model visibility and brand mention rates across multiple LLM platforms for specified brand names and search queries
No MCP server implementation visible. Source shows only a standalone Python class (AiVisibilityBrandMentionTrackerClient) with no MCP protocol scaffolding, tool registration, or server initialization.
Input schema incomplete. 'target_queries' parameter declared as array type but lacks item type specification (should specify items: {type: 'string'}). No constraints on array length or item format.
Output schema not documented. Response structure inferred from example_usage.py only. LLMs cannot plan downstream operations without knowing return fields (visibility_score_pct, model_breakdown, competitor_share_pct).
Tool name lacks clear action verb. 'track_ai_visibility' is ambiguous, does it create a tracking job, retrieve existing metrics, or monitor in real-time? Should be 'get_ai_visibility' or 'search_brand_mentions'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 21 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Mock implementation returns hardcoded data; no validation of brand_name or target_queries. No guidance for LLM on what to do if a query fails or brand is not found.