MCP server for the SerpBase Google Search, Images, News, Videos, and Maps APIs
SerpBase MCP exposes 6 search tools with consistent schemas and basic descriptions. All tools have input schemas with proper JSON Schema structure (type, properties, required fields). Descriptions are present but generic, they state WHAT the tool does but lack WHEN to use it, dependencies, or output structure guidance. Parameter descriptions are minimal (e.g., 'Search query' for query param). No output schemas documented. Error handling is basic (generic exception wrapping). Tools follow a repetitive pattern (query + hl/gl/page), which aids consistency but limits expressiveness. No tool annotations (readOnlyHint, destructiveHint) despite all being read-only operations. Naming is clear and verb-prefixed (serpbase_*), but descriptions could be 2-3x longer to guide LLM selection.
Search Google Images through SerpBase and return image URLs, thumbnails, source pages, and domains.
Fetch Google Maps place details through SerpBase for a feature_id returned by serpbase_maps_search.
Search Google Maps through SerpBase and return local place results. Optional lat/lng/zoom can geo-target the query.
Search Google News through SerpBase and return articles with publisher, time, snippet, and thumbnails when available.
Search Google through SerpBase and return organic results plus rich SERP modules.
Search Google Videos through SerpBase and return video links with source, duration, time, and thumbnails.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing response structure. All 6 tools return JSON but no schema is visible in tool definitions.
Descriptions are too brief (avg ~100 chars, baseline 194). They state WHAT but not WHEN to use or how results differ from similar tools. E.g., 'Search Google through SerpBase' lacks guidance on when to prefer this over images/news/videos.
Parameter descriptions are minimal. 'hl' and 'gl' lack explanation of what language/country codes are valid. 'page' has no guidance on pagination limits or total result count. No dependency hints (e.g., 'lat/lng/zoom are optional; omit for global search').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No tool annotations. All 6 tools are read-only (no side effects), but readOnlyHint is not set. This forces LLMs to reason about safety; explicit hints enable safer agent planning.
Error handling is generic. Exception caught in call_tool() returns {'error': str(exc), 'tool': name}. No recovery guidance, no categorization (retryable vs user-fixable vs fatal), no invalid value echoing.