MCP server for ISTAT SDMX API on Cloudflare Workers. Provides tools to discover dataflows, retrieve data structures, constraints, codelists, concepts, and fetch statistical data from the Italian National Institute of Statistics (ISTAT).
Server has 8 well-named tools with clear verb-noun patterns (discover_, get_, etc.). All tools have descriptions (10 - 200 chars, within baseline 194 avg). Input schemas are present and use Zod with type declarations. However, output schemas are NOT documented, responses are JSON.stringify'd without explicit field definitions. Parameter descriptions are present but some lack format/constraint details (e.g., 'dimension_filters' object lacks structure docs). Error handling returns isError flag but lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint). Overall: solid foundation, but missing output documentation and error guidance expected of production tools.
Discover available dataflows from ISTAT SDMX API. Optionally filter by comma-separated keywords.
Get cache statistics and diagnostics for the MCP server (Cloudflare KV usage).
Get Italian and English descriptions for all values in a codelist.
Get the Italian or English description of an ISTAT SDMX concept by its ID.
Get available constraints (dimension values) for a dataflow with descriptions. Returns all valid values for each dimension.
Fetch data from ISTAT for a given dataflow with dimension filters and optional time period. Returns TSV format with observations.
Output schemas not documented. Tools return JSON.stringify'd responses without explicit field definitions. LLMs cannot plan downstream calls or extract structured data reliably.
Error handling lacks recovery guidance. Errors return isError=true with message only. No actionable next steps (e.g., 'Try search_dataflows() with keywords' or 'Check dataflow_id format').
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. Agents cannot determine retry safety or side-effect scope.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Get data structure definition for a datastructure ID. Returns dimensions and their codelists.
Look up Italian territorial codes (comuni, province, regioni) by name, level, region, province, or capoluogo status.
get_data parameter 'dimension_filters' is object type but lacks structure documentation. LLMs cannot infer valid key names or value formats without examples or schema.
No pagination support. discover_dataflows returns all dataflows without limit or offset. Large result sets risk context window exhaustion.