MCP server for searching Google News RSS, top stories, decoded article URLs, and extracted article text.
The server provides 5 news search tools with mostly complete parameter schemas and reasonable descriptions. However, there are notable gaps in output schema documentation, error handling guidance, and parameter constraint specificity. All tools are read-only (low risk), but descriptions lack LLM-optimized detail about WHEN to use each tool vs. alternatives, and error responses return generic error dicts rather than actionable recovery guidance. Parameter schemas are visible and typed, which is a strength, but descriptions for many parameters are minimal (e.g., 'Language code (default: 'en')' is under 20 chars when accounting for context). The batch operation and clustering tools add composition value, but composition patterns are not explicitly optimized.
Perform multiple news searches in batch with shared parameters and enrichment options
Fetch news articles for a specific geographic location with optional enrichment
Search for news articles with query, optional filters, link decoding, and text extraction
Fetch top news articles by topic with optional link decoding and text extraction
Fetch top news articles as clusters (with related coverage) for a topic
No output schema documented for any tool. LLMs cannot plan downstream operations or parse response structure. Customers don't know what fields to expect.
Error responses return bare error dicts like {'error': 'Failed to search news: ...'} with no recovery guidance. LLMs cannot determine if the error is retryable, user-fixable, or fatal.
No enum constraints on 'topic' parameter in top_news and top_news_clusters. LLMs can hallucinate invalid topic values. The underlying GoogleNews API likely has a fixed set of valid topics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | <=2025-11-25 | v2 |
Tool descriptions lack WHEN/WHY context. news_search, batch_news_search, top_news, and location_news all return news articles but descriptions don't explain trade-offs: use news_search for keyword search, top_news for trending by category, location_news for geographic filtering, batch for multiple unrelated queries.
Parameter descriptions are terse and often under 30 characters (e.g., 'Language code (default: 'en')', 'Search query string'). At 72 char baseline for A+ tools, these descriptions lack actionable detail.
Undocumented parameter relationships. location_news accepts 'country' parameter but its meaning when location is a city (e.g., 'Paris') is unclear, does it override location's country? Defaults to 'US' regardless, which may conflict with European locations.
Inconsistent parameter defaults across tools. decode_links defaults to true in news_search, batch_news_search, top_news, location_news but false in top_news_clusters. This design choice is not explained.
No pagination support visible. Tools accept max_results but no offset/limit pattern or next_cursor for iterating large result sets. If news_search returns 100 articles, there's no way to fetch the next 100.
mode parameter is under-specified. All tools accept mode='default' but no description explains valid values or what 'default' means. LLMs cannot choose between modes intelligently.