Server exposes 4 tools with complete JSON Schema input definitions and descriptions. However, descriptions are minimal (10-30 chars), parameter descriptions lack actionable details (format constraints, validation rules), and output schemas are completely undocumented. No error handling guidance. Tool names follow verb_noun convention correctly. This is a fair community-grade server with significant gaps in LLM-optimization and composition patterns.
Get daily search performance summary for a specified date.
Get search analytics data for a specified date range.
Inspect a specific URL to get its Search Console data.
Get a list of accessible Search Console sites.
Output schemas completely undocumented. LLMs cannot predict response structure for any tool, forcing agents to discover fields via trial-and-error and preventing effective multi-step planning.
Tool descriptions are too brief (32-78 chars vs recommended 50-200 chars). They lack WHEN context, prerequisites, and data model guidance. Example: 'Get daily search performance summary' does not explain what fields are in the summary or when to call this vs get_search_analytics.
Parameter descriptions lack actionable validation rules and format guidance. Example: startDate parameter says 'Start date in YYYY-MM-DD format' but does not specify range (e.g. '≤90 days ago'), whether it must precede endDate, or what happens if violated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No error handling guidance. Error responses return raw error.message strings (e.g. 'Error: Failed to list sites: ...'). LLMs receive no recovery path, classification (retryable vs fatal), or actionable next steps.
Optional parameters with implicit defaults and server-side fallback (siteUrl, date) are not documented clearly. 'If omitted, the default value will be used' is vague, does it mean a server-configured default or yesterday/null?
No pagination, limiting, or result count documentation. get_search_analytics accepts rowLimit with 'default: 1000' but no explicit cap or guidance on maximum acceptable value. LLMs may pass excessive limits, causing timeouts or context overflow.
Tool composition gaps: list_sites returns sites with siteUrl, but get_search_analytics accepts siteUrl parameter. No chaining guidance, agent must infer that list_sites output can seed get_search_analytics input.