MCP server for Google News search via SerpAPI
Single tool with mixed quality. Tool name 'google_news_search' follows verb_noun pattern correctly. Description is present (89 chars) and adequate but generic, lacks context on when to use this vs other news tools or what distinguishes results. Input schema is well-structured with 7 parameters, all typed as strings, but lacks critical metadata: no required field declaration, no enum constraints for country/language codes despite SerpAPI supporting specific values, no description of what 'topic_token', 'publication_token', 'story_token', 'section_token' actually represent (opaque tokens with no guidance on discovery). Output schema is completely undocumented, no evidence of return type specification in the tool definition. Error handling is present but minimal: returns isError flag but does not provide recovery guidance or categorize errors. No output pagination despite news results being inherently list-like. Tool composition is simple (single-responsibility), but no evidence of idempotent guarantees or safe retry semantics. Code shows parameter validation (isValidGoogleNewsSearchArgs) but function definition not visible, so cannot verify depth. Per-tool score reflects presence of schema and description but absence of output documentation and parameter clarity.
Search Google News for articles and news content. Results will be automatically categorized by topic.
Output schema completely undocumented. Tool returns formatted news results but no structured schema is declared. LLMs cannot plan downstream calls or extract fields reliably.
Opaque token parameters (topic_token, publication_token, story_token, section_token) lack any explanation of what these represent, how to discover them, or what format they expect. LLMs have no way to populate these fields.
Country (gl) and language (hl) codes are strings with no enum constraint. SerpAPI supports specific codes (us, uk, de, fr, etc.), these should be enums or at least list valid values in description.
No required field declaration in schema. Is 'q' (search query) mandatory? The code does not validate presence, only format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
No pagination support despite returning arrays of articles. Large result sets will exhaust context; no limit parameter or next_cursor mechanism visible.
Error messages are generic ('Invalid arguments', 'Unknown tool', generic HTTP error handling). No recovery guidance or error classification (retryable vs fatal).
SerpAPI key exposed via environment variable but not validated at startup beyond existence check. No key rotation or secret handling best practices visible.