MCP server for NewsAPI with HTTP 402 payment protocol support. Provides tools to search news articles and retrieve top headlines from over 80,000 news sources.
The server provides 3 read-only tools for querying news data via NewsAPI. Tools have descriptions and input schemas defined, but exhibit moderate gaps: parameter descriptions are present but generic, output schemas are not documented, and error handling lacks recovery guidance. The decorator-based tool registration via FastMCP is clear, but the code snippet is incomplete (truncated mid-implementation), limiting full assessment of error handling and response structure.
Get the subset of news publishers that top headlines are available from
Get live top and breaking headlines for a country, category, or query
Search through millions of articles from over 80,000 sources with advanced filtering options
Output schemas not documented. No specification of what fields are returned, their types, or which can be chained to downstream tools. LLMs cannot plan multi-step sequences or extract required IDs without documented output structure.
Parameter descriptions are generic and lack constraints. E.g., 'Comma-separated source IDs' does not explain what a source ID looks like, how many are typical, or what happens if an invalid ID is passed. No mention of max count, format, or validation.
Error handling not visible in code. The snippet is truncated, but no error classification (retryable vs. fatal), recovery guidance, or actionable error messages are evident. An LLM receiving 'API key invalid' or '429 Too Many Requests' has no guidance on next steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Result limits and pagination not explicitly documented. 'page_size' parameter exists but description does not state max value (100 is in schema) or clarify whether LLMs should paginate through large result sets. No guidance on stopping criteria.
Tool descriptions lack WHEN/WHY context. 'Get live top and breaking headlines' states what it does, but not when an LLM should choose this over search_everything or get_sources. No distinction between use cases.
Code snippet incomplete. The server.py file is truncated at the first tool's closing docstring. Actual error handling, response shaping, and API integration logic cannot be verified. This prevents assessment of output schemas, error categorization, and result filtering.