MCP server for accessing Statistics Denmark (Danmarks Statistik / Statbank) data via the keyless REST API at https://api.statbank.dk/v1
Four well-named tools with clear, actionable descriptions (avg 180 chars). All tools have complete input schemas with typed properties and descriptions. Tool names follow verb_noun pattern (list_*, get_*, table_info). Descriptions explain WHAT, WHEN, and prerequisites. However, output schemas are not documented, LLMs cannot predict response structure for planning. Parameters lack enums where applicable (e.g., 'lang' should be enum ['en','da'], 'format' should be enum ['JSONSTAT','BULK','CSV']). No error handling guidance visible. Missing pagination/limit parameters for list_subjects and list_tables despite potentially large result sets. No per-tool security annotations.
Pull data from a table. Provide tableId and a "variables" map of {variableCode: valueOrValues}, using codes/ids from table_info. Each value may be a single id, an array of ids, or "*" for all. Omitted variables that allow elimination are aggregated to total. format "JSONSTAT" (default, structured JSON-stat) or "BULK"/"CSV" (semicolon-delimited text).
Browse the Statistics Denmark subject tree (People, Labour, Economy, Business, Environment, ...). Pass a subject id to drill into its children; set recursive to expand the whole subtree.
List/search available tables. Filter by subject id, free-text search, or recently-updated tables. Returns table ids (use with table_info / get_data), titles, period range, and variable names.
Metadata for a table: title, unit, last updated, and the full list of variables with their codes and valid value ids. READ THIS BEFORE get_data to learn the exact variable codes (e.g. "OMRÅDE", "Tid") and value ids you must pass.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream planning or data extraction.
Parameters 'lang' and 'format' accept free-form strings instead of enums. LLMs may hallucinate invalid values ('fr', 'JSON', 'XML'). Should declare enum constraints.
No pagination or result-limit parameters. list_subjects and list_tables may return hundreds of items, bloating context. Missing limit, offset, or cursor parameters.
No error handling guidance in descriptions. If a table_id is invalid or variables are malformed, LLMs receive raw API errors with no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
get_data 'variables' parameter is untyped object with no schema. LLMs cannot validate structure before calling. Should document expected shape: {variableCode: string|string[]|'*'}.