Deutsche Bundesbank (Germany's central bank) statistics MCP. Wraps the keyless SDMX REST API at https://api.statistiken.bundesbank.de/rest. No auth/key required; stateless.
Three well-named tools with strong descriptions (194 - 250 chars each) and complete input schemas. All parameters are typed and described. Tool names follow verb_noun pattern (list_, dataflow_, get_). Descriptions explain WHAT, WHEN, and WHAT-TO-EXPECT. However, output schemas are not documented, callers must infer structure from SDMX specs. Error handling is minimal (generic HTTP errors, no recovery guidance). No parameter constraints (enums, ranges) despite SDMX dimension codes being enumerable. Missing idempotency hints and per-tool risk annotations.
Get the data structure definition (DSD) for a dataflow: its dimensions and the valid codes for each, which you need to build a series key for get_series. Returns SDMX 2.1 structure XML. The DSD id differs from the dataflow id (e.g. dataflow BBEX3 uses DSD "BBK_ERX"). Pass the dataflow id (flowRef) and this tool resolves the DSD for you; the dimensions appear in <DimensionList> in key order. Set withCodes=true (default) to inline the codelists (references=children).
Pull observations for a Bundesbank series as SDMX-JSON. flowRef is the dataflow id (e.g. "BBEX3"); key is a dot-separated SDMX dimension filter in key order (e.g. "D.USD.EUR.BB.AC.000" = daily USD/EUR reference rate). Use dataflow_structure to discover the dimensions/codes for a flow. Leave a dimension empty to wildcard it (e.g. "D..EUR.BB.AC.000"). Filter by lastNObservations (most recent N) or a startPeriod/endPeriod date range (YYYY, YYYY-MM, or YYYY-MM-DD).
List the available Bundesbank statistics dataflows (each is a series collection you can query with get_series). Returns SDMX 2.1 structure XML listing every dataflow id + name under agency BBK. Well-known flows: BBEX3 (exchange rates), BBK01 (legacy single time series), BBSIS (interest rates), BBBK1/BBBK2 (banking statistics), BBDB1 (balance of payments). Pass a flowRef to fetch just that one dataflow (includes its DataStructure reference).
Output schemas not documented. Callers must infer SDMX-JSON and SDMX-XML structures from external specs. LLMs cannot plan downstream parsing or field extraction without explicit schema.
No parameter constraints (enums, ranges, patterns). 'detail' param accepts 'full|dataonly|serieskeysonly|nodata' but is typed as free-form string. 'flowRef' and 'key' accept arbitrary strings with no validation hints. LLMs may hallucinate invalid SDMX codes.
Error handling returns raw HTTP status + truncated body (200 chars max). No recovery guidance. E.g., 'Bundesbank: 404 ...' tells LLM nothing about whether to retry, call list_dataflows, or ask user. Missing error classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared. Agents cannot infer safety properties without explicit hints.
Parameter 'withCodes' defaults to true but description says 'Default true', redundant. No guidance on when to set false (e.g., to reduce response size). Missing dependency hint: 'Call dataflow_structure before get_series to discover valid dimension codes.'