Google Trends MCP server with proxy rotation, auto-retry on Google blocks, and tested setup for rotating residential proxies (Webshare, IPRoyal, Smartproxy).
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly adequate), and input schemas are present with type definitions. However, parameter descriptions are sparse or missing entirely (geo, timeframe lack context), output schemas are undocumented, and error handling provides no recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The proxy_refresh tool is destructive but lacks confirmation or dry-run support. Tool naming is clear (verb_noun pattern), but composition could be tighter, proxy_status and proxy_refresh are operational concerns mixed with data tools.
Compare search interest over time for up to 5 keywords
Get search interest by region/country for a keyword
Get top and rising related queries for a keyword
Re-validate the current proxy source (PROXY_LIST or PROXY_LIST_FILE). Blocks until done. No-op for PROXY_URL single-proxy mode.
Show proxy pool status: source, working count, age, freshness, and validation progress
Output schemas undocumented. Tools return JSON but LLMs cannot plan downstream calls without knowing field names, types, and structure. compare_keywords returns timeline array with date/values; get_related_queries returns ranked keywords; get_interest_by_region returns regions with value. None of this is documented in tool definitions.
Parameter descriptions missing or vague. 'geo' and 'timeframe' appear in 4 tools with only brief hints (e.g. 'Country code e.g. US, RU'). No explanation of valid formats, constraints, or defaults. LLMs cannot infer whether 'today 12-m' is the only valid timeframe or if 'today 1-m', 'today 5-y' are also accepted.
Destructive tool (proxy_refresh) lacks confirmation or dry-run. Agents may call it unintentionally, blocking until validation completes. No idempotent hint or confirmation pattern to prevent accidental re-validation loops.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling provides no recovery guidance. Catch-all 'Error: {err.message}' returns raw exception text. LLMs cannot determine if error is retryable, user-fixable, or fatal. No actionable next steps (e.g. 'Try with a different keyword' or 'Check proxy configuration').
No tool annotations. proxy_refresh is destructive (WRITE risk) but lacks destructiveHint. compare_keywords, get_related_queries, get_interest_by_region are read-only but lack readOnlyHint. Annotations help agents reason about safety and retry logic.