MCP server for multi-site-monitor. Provides tools for monitoring multiple websites including site economics, page speed reports, Google Search Console data, and Google Analytics 4 data.
Single tool with adequate naming (verb-first: get_site_economics) and clear description (127 chars, within 10-1024 range). Input schema present with type and description. However, output schema is NOT documented, LLMs cannot predict return fields. No parameter validation guidance, no error recovery hints, and no mention of prerequisites (config.json must exist and be populated). Tool is read-only but lacks explicit idempotentHint annotation. Missing descriptions for output fields (site, monthly_cost, monthly_revenue, monthly_profit, notes) forces LLMs to infer structure.
Return the monthly cost, revenue, and profit/loss for a given site, plus any notes. Site must be one of the sites listed under site_economics in config.json (aireadypage, tracycarpetcare, hypicsmodapk).
Output schema not documented. Tool returns dict with fields (site, monthly_cost, monthly_revenue, monthly_profit, notes) but LLMs cannot predict structure. Violates pattern:tool requirement that output schemas be documented.
No error recovery guidance. When site not found, error message lists available sites but does not suggest next action (e.g., 'Call list_sites() to see all available sites'). Violates pattern:recovery-guide.
Parameter 'site' lacks format/constraint guidance. Description lists three hardcoded examples (aireadypage, tracycarpetcare, hypicsmodapk) but does not declare them as an enum. LLMs may hallucinate other site names. Should use enum constraint instead of example values.
No tool annotation for read-only nature. Tool should declare readOnlyHint=true to signal to agents that it is safe to call without side effects. Violates pattern:tool-annotations (current spec 2026-07-28).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Missing prerequisite documentation. Tool requires config.json to exist and contain site_economics data, but description does not mention this dependency. LLMs cannot plan setup steps.