MCP server for accessing UNICEF data warehouse, providing tools to query available dataflows, retrieve indicators, and fetch data for specific dataflows
The server provides 3 read-only data warehouse tools with clear verb-based naming (get_*). Tool descriptions are present but brief (13-153 characters), falling short of the baseline 194-character average for A+ tools. Input schemas are visible and properly typed, but most parameter descriptions are minimal. Output schemas are not documented, forcing LLMs to infer response structure. The 'get_data_for_dataflow' tool is the strongest; the others lack context about when to use them and what to expect. Error handling is not documented. All three tools are READ_ONLY, which is good, but there is no guidance on dependencies or prerequisites (e.g., 'Call get_available_dataflows first to discover dataflow IDs').
Get all indicators for the dataflow.
Get the available dataflows and their descriptions.
Get data for a specific dataflow. Returns all available data that matches the criteria. If the year is not found, it will return all data for that country and indicator.
Tool descriptions are too brief and lack discovery context. 'get_available_dataflows' (13 chars) and 'get_all_indicators_for_dataflow' (30 chars) do not explain WHEN to use them, what they return, or how they relate to other tools. LLMs cannot determine appropriate selection without fuller context.
Output schemas are not documented in the source code. LLMs cannot predict response structure, field names, or data types. This forces agents to call tools blindly and parse responses without schema guidance, increasing hallucination risk.
Parameter descriptions are minimal. 'ref_areas' and 'indicators' are documented as 'Plus-separated string' but lack examples of valid formats, constraints on count/length, or expected values. LLMs cannot validate input without clearer constraints.
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 | 38 | - | v1 |
No error handling or recovery guidance documented. If a dataflow_id is invalid, if ref_areas contain non-ISO-3 codes, or if year is out of range, the tools provide no actionable error messages to guide LLM retry or correction strategies.
Tool dependencies are not documented. 'get_all_indicators_for_dataflow' and 'get_data_for_dataflow' both require a valid dataflow_id, which can only be discovered via 'get_available_dataflows'. LLMs should be told: 'Call get_available_dataflows first to discover available dataflow IDs.'