Serper MCP — wraps the Serper Google Search API (serper.dev)
Three tools with complete input schemas and clear descriptions. All parameters are typed and documented. However, output schemas are not formally documented, responses are inferred from code. Tool names lack action verbs (search, news, places are nouns/gerunds, not verb_noun pattern). Parameter descriptions include example values (e.g., 'best espresso machine 2026'), which LLMs tend to reuse literally. No error recovery guidance or actionable error messages. Missing pagination support despite potential for large result sets. API key handling via _apiKey parameter violates secret-injection pattern, should use server-side injection.
Google News results
Google Maps/local business results
Google web search — organic results, answer box, knowledge graph
Tool names lack action verbs. 'search', 'news', 'places' are nouns/gerunds, not verb_noun pattern (e.g., 'search_web', 'search_news', 'search_places'). LLMs infer intent from names, weak names reduce clarity.
API key exposed as _apiKey parameter. Violates secret-injection pattern, credentials in parameters leak into logs and traces. Should use server-side injection via environment or vault.
Output schemas not formally documented. Responses are inferred from code (answer_box, knowledge_graph, organic for search; news array for news; places array for places). LLMs cannot plan downstream calls without explicit output schema documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter descriptions include example values ('best espresso machine 2026', 'federal reserve rate decision'). LLMs reuse examples literally rather than adapting to context. Replace with constraints (enums, patterns, ranges).
No pagination support. Tools accept 'num' (max 20) but no offset/cursor or total count. Large result sets risk context window exhaustion. Missing limit enforcement in descriptions.