Get access to real-time and historical news data including top headlines from global sources via AllNewsAPI. Supports multiple filter options including keyword search, category, language and more
The AllNewsAPI MCP server provides three read-only news tools with explicit Zod schemas and clear parameter documentation. Naming follows verb_noun conventions (search-news, headlines, usage), and all tools have descriptions. However, several quality gaps prevent a higher score: (1) output schemas are not formally documented, the code shows formatArticle() helpers but no structured output schema in tool registration, (2) parameter descriptions lack format constraints and ranges (e.g., 'max' accepts 1-100 but description doesn't state bounds), (3) the 'headlines' tool definition was inferred from package.json rather than directly visible in source code, and (4) error handling is basic, readApiError() extracts upstream errors but does not provide recovery guidance or actionable next steps for the LLM.
Get top headlines with optional filtering by country, category, and language
Search for news articles using various parameters including keywords, date ranges, and filters
Check your current API plan, usage limits, and remaining quota
Output schemas not formally documented. Tools return formatted text (via formatArticle/formatUsageResponse) but no structured schema is declared to the LLM. LLMs cannot infer the fields available in responses, forcing them to parse unstructured strings and hindering downstream tool composition.
Parameter format constraints missing from descriptions. The 'max' parameter accepts 1 - 100 but description does not state the bounds. The 'startDate' and 'endDate' parameters expect YYYY-MM-DD format but this is not enforced in descriptions or schema validation. LLMs may pass invalid values, causing API errors.
Error handling lacks recovery guidance. The readApiError() function extracts error messages from the API but does not classify errors as retryable, user-fixable, or fatal, nor does it suggest recovery actions. An LLM facing a 429 (rate limit) or 401 (invalid API key) error has no guidance on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Headlines tool definition inferred rather than directly visible. The 'headlines' tool is listed in package.json but the source code excerpt does not show its explicit registration or schema in src/index.ts.
Pagination not documented. The 'search-news' tool accepts a 'page' parameter but the response does not indicate total count, whether more pages exist, or next_cursor guidance. Large result sets risk context window exhaustion.
AI enrichment fields insufficiently documented. Parameters like 'ai_sentiment', 'ai_entity_name', and 'ai_entity_type' are described but their valid values and formats are not enumerated (e.g., is 'positive' vs 'POSITIVE' valid? What entity types are supported?). LLMs will guess.