Model Context Protocol server for accessing AFP (Agence France-Presse) news articles and media through the afpnews-api SDK. Provides tools for searching, retrieving, and analyzing news content with support for multiple languages and output formats.
AFP News MCP Server has well-defined tools with clear naming conventions (verb_noun pattern), detailed descriptions, and comprehensive parameter schemas. All 6 tools follow consistent patterns and include structured output formats. However, output schemas are not explicitly documented in the source code, and error handling recovery guidance is absent. Tool names correctly use action verbs (search, get, find, list), and parameter descriptions are thorough with enum constraints and format specifications. The server accepts multiple output formats (markdown, json, csv) and supports pagination with explicit limit parameters, which aligns with Arcade patterns for result limiting and pagination. Main gaps: no documented output schema structure, no error recovery hints in descriptions, and missing tool annotations (readOnlyHint despite all tools being read-only operations).
Find AFP news articles similar to a given article (More Like This). Useful for exploring related coverage or finding follow-up stories.
Retrieve the full text and metadata of a specific AFP news article by its UNO identifier. Returns complete article body and details.
Retrieve full details and metadata of a specific AFP media asset (photo, video, or graphic) by its identifier.
List available facet values (e.g., genres, countries, languages) for filtering news articles. Useful for discovering what filter options are available.
Search AFP news articles with filters and sorting. Useful for finding news by keyword, date, topic, or other criteria. Returns matching articles with metadata.
Search for AFP media assets (photos, videos, graphics) with filtering and sorting capabilities. Returns matching media items with metadata.
Output schemas not documented in source code. While input schemas are comprehensive, there is no visible documentation of return value structures (fields, types, counts). LLMs cannot plan downstream tool calls or extract required chaining IDs without knowing response structure.
No error handling guidance or recovery hints in tool descriptions. Descriptions state WHAT the tool does but not WHEN it fails or how to recover. Missing error classification (retryable vs user-fixable vs fatal).
Missing tool annotations for read-only operations. All 6 tools are read-only (querying/retrieval only), but none declare readOnlyHint. This prevents agents from understanding safety properties and optimizing caching strategies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Parameter 'facets' in afp_search_articles and afp_search_media uses object type with ambiguous internal structure. Description mentions 'properties like langs, genres, countries, dateFrom, dateTo, etc.' but exact schema is not declared. LLMs cannot know valid facet names without discovering them first.
Missing dependency hints in descriptions. Tools like afp_get_article and afp_get_media require a 'uno' identifier, but descriptions do not indicate where to obtain it (from search/list tools). Agents must infer this relationship.