Read-only Google Search Console MCP server for Cursor and other MCP clients.
Server has 5 tools with complete schemas and descriptions. Naming follows verb_noun convention (gsc_list_*, gsc_search_*, gsc_inspect_*). Descriptions are present and adequate (50-150 chars), explaining WHAT each tool does. However, parameter descriptions lack actionable constraints (e.g., date format, dimension limits, filter syntax). Error handling is basic, sanitizeToolError() wraps exceptions but doesn't guide recovery. No output schema documentation visible. gsc_search_analytics has 9 parameters but lacks dependency hints (e.g., 'dimensions and filters must align'). Overall: functional but missing LLM-optimization details that would push toward 70+.
Inspects a URL in Google Search Console — index status, crawl info, mobile usability, and rich results.
Lists all sitemaps submitted for a site in Google Search Console.
Lists all sites (properties) the authenticated user has access to in Google Search Console.
Liveness check for this MCP server process (local Node.js). Returns pong. Does not call Google Search Console.
Queries Google Search Console search analytics data — impressions, clicks, CTR, and position for queries, pages, countries, and devices.
gsc_search_analytics parameter descriptions lack actionable constraints. 'dimensions' says 'Array of dimensions: query, page, country, device, searchAppearance, date (max 5)' but does not explain which combinations are valid or how they interact with filters. LLMs cannot infer valid dimension/filter pairings.
No output schema documentation. Tools return formatted results via formatToolResult() but the response structure is not documented. LLMs cannot plan downstream operations or extract specific fields without trial-and-error.
Error handling returns sanitized text but no recovery guidance. sanitizeToolError() strips stack traces (good) but does not suggest next steps. E.g., 'Authentication failed' should suggest 'Check GSC_READONLY_SCOPE permissions' or 'Verify Google credentials are configured'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
gsc_search_analytics has 9 parameters with complex interdependencies (e.g., aggregation_type affects valid dimensions; data_state affects result freshness) but no dependency hints in descriptions. LLMs will pass invalid combinations.
Parameter descriptions use example values ('e.g. https://.../ or sc-domain:example.com') instead of formal constraints. LLMs may treat examples as the only valid formats. Replace with regex patterns or enum constraints.