MCP server for NewsAPI Nikola 2 API with HTTP 402 payment protocol support
Three tools with consistent naming (verb_noun pattern) and reasonable descriptions. All tools have input schemas with types and parameter descriptions. However, several definition quality issues reduce the score: (1) Output schemas are not documented, only API responses are mentioned; (2) Parameters lack constraints (enums, ranges, format specifications); (3) Error handling guidance is absent; (4) Some parameter descriptions are generic ('e.g. value') rather than prescriptive; (5) No pagination guidance despite page/page_size parameters. The server implements READ_ONLY tools against a news API, reducing complexity, but definition completeness falls short of production baseline.
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. Tools return API responses without specifying expected fields, structure, or whether results are paginated. LLMs cannot plan downstream operations or extract data reliably.
Parameters lack enum constraints and format specifications. 'sort_by' and 'language' accept free-form strings instead of enums. 'page_size' and 'page' have no documented bounds (max 100 mentioned in description only, not in schema). Enums would be self-documenting and prevent hallucinated values.
No pagination or result-limit guidance. 'page' and 'page_size' parameters exist but no description states max results per page, total result count, or when to use pagination. With millions of articles available, agents may request unbounded result sets.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No error handling guidance. Tools provide no recovery hints for common failures (invalid country code, query too broad, API rate limit). LLMs receive errors with no context for self-correction.
Parameter descriptions lack prescriptive constraints. 'language' lists valid codes inline ('ar, de, en...') in description but not as enum. 'country' lists valid codes inline but not as enum. Enums are machine-parseable; inline examples are not.
Tool descriptions incomplete. 'get_sources' description is only 59 characters, below baseline (p10=34, average=194). Lacks context for when/why to call it vs search_everything or get_top_headlines.