Self-hosted MCP connector for Google Search Console, deployable to Cloudflare Workers in 15 minutes.
Four tools with complete Zod schemas and descriptions. All tools are READ_ONLY and well-named with action verbs (list_, query_, inspect_). Descriptions are clear and contextual (avg ~150 chars). Parameters are typed and described. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is absent; no recovery guidance. Missing tool annotations (readOnlyHint). query_search_analytics has complex optional parameters that could benefit from clearer dependency documentation.
Run the URL Inspection API on a single URL: indexing status, last crawl, canonical, mobile usability, AMP and rich-result issues.
List every sitemap submitted for a Search Console property, with last submission and processing status.
List every Search Console property the authenticated user has access to. Use this first to discover available siteUrl values.
Query Google Search Console performance data (clicks, impressions, CTR, average position) for a site. Supports breakdown by query, page, country, device, search appearance, or date.
Output schemas not documented. LLMs cannot predict response structure or plan downstream calls. Tools return JSON via asJsonContent() but no schema is declared.
No error handling or recovery guidance. If a tool fails (invalid siteUrl, auth error, API rate limit), the LLM receives no actionable error message or next steps.
query_search_analytics has interdependent optional parameters (filterDimension, filterOperator, filterExpression) with no documented relationship. LLMs may pass filterDimension without filterExpression, causing silent failures.
No tool annotations. All four tools are READ_ONLY but lack readOnlyHint annotation, forcing LLMs to infer safety from descriptions alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
No pagination support documented. query_search_analytics accepts startRow and rowLimit but no total count or next_cursor is documented, making pagination opaque to LLMs.