Skip to main content
Glama

mcp-nbb

CI PyPI version Python versions License: MIT MCP compatible

MCP-Server für die National Bank of Belgium SDMX-Statistik-API.

Stellt die 221 NBB-Datenflüsse (194 BE2 + 27 IMF/SDDS) als 6 LLM-freundliche Tools und 3 durchsuchbare Ressourcen bereit, mit einem gebündelten angereicherten Katalog, damit das LLM Datenflüsse ohne redundante API-Aufrufe entdecken, beschreiben und abfragen kann.

  • Upstream: https://nsidisseminate-stat.nbb.be/rest (NSI Web Service v8)

  • Transport: stdio (Standard-MCP)

  • Python: 3.11+

  • Plattformen: Linux, macOS, Windows

  • 221 Datenflüsse in 14 Kategorien eingeteilt – siehe DATAFLOWS_CATALOG.md


Installation

Von PyPI (empfohlen)

# With uv (runs without installing globally)
uvx mcp-nbb

# Or install into a regular venv
pip install mcp-nbb

Aus dem Quellcode

git clone https://github.com/lacausecrypto/mcp-nbb.git
cd mcp-nbb
pip install -e .

Das Paket enthält den vollständigen angereicherten Katalog (~9 MB unter src/nbb_mcp/data/catalog/). Für den regulären Gebrauch ist kein Build-Schritt erforderlich.


Related MCP server: OECD MCP Server

Claude Desktop-Konfiguration

Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json unter macOS, %APPDATA%\Claude\claude_desktop_config.json unter Windows oder das entsprechende unter Linux.

Verwendung von uvx (empfohlen, sobald auf PyPI veröffentlicht)

{
  "mcpServers": {
    "nbb": {
      "command": "uvx",
      "args": ["mcp-nbb"]
    }
  }
}

Aus einer lokalen Editable-Installation

macOS / Linux:

{
  "mcpServers": {
    "nbb": {
      "command": "/Users/you/projects/mcp-nbb/.venv/bin/mcp-nbb"
    }
  }
}

Windows:

{
  "mcpServers": {
    "nbb": {
      "command": "C:\\Users\\you\\projects\\mcp-nbb\\.venv\\Scripts\\mcp-nbb.exe"
    }
  }
}

Starten Sie Claude Desktop neu – die 6 nbb_*-Tools erscheinen im MCP-Bedienfeld.


Tools

Tool

API-Aufrufe

Zweck

nbb_search(query, …)

0

Unscharfe Suche über die 221 lokalen Datenblätter (en/fr/nl/de).

nbb_describe(dataflow_id, …)

0 (Standard)

Vollständiges angereichertes Datenblatt – Dimensionen, Codelisten, Schlüsselvorlage, häufige Abfragen. force_refresh=True validiert live neu.

nbb_query(dataflow_id, key=…, filters=…)

1

Generischer Datenabruf. Entweder key (rohes SDMX) oder filters ({"FREQ":"D","EXR_CURRENCY":"USD"}).

nbb_quick(topic, …)

1

Themenbasierte Abkürzung für 18 häufige Abfragen – siehe Thementabelle unten.

nbb_compare(series, …)

N

Richtet 2–5 Serien auf einem gemeinsamen Zeitindex aus, wobei feinere Frequenzen durch Schlussaggregation heruntergerechnet werden.

nbb_status()

0

Diagnose-Schnappschuss: Katalog, Cache, API-Konfiguration.

nbb_quick-Themen

Thema

Datenfluss

Parameter

exchange_rate

BE2/DF_EXR

currency, frequency

policy_rate

BE2/DF_IRESCB

—

mortgage_rate

BE2/DF_MIR

—

long_term_yield

BE2/DF_IROLOYLD

—

inflation_hicp

BE2/DF_HICP_2025

—

inflation_national

BE2/DF_NICP_2025

—

ppi

BE2/DF_PPI

—

industrial_production

BE2/DF_INDPROD

—

gdp / gdp_growth

BE2/DF_QNA_DISS

—

unemployment_rate

BE2/DF_UNEMPLOY_RATE

—

employment

BE2/DF_EMPLOY_DISS

—

government_debt

BE2/DF_CGD

—

government_deficit

BE2/DF_NFGOV_NET_DISS

—

current_account

BE2/DF_BOPBPM6

—

consumer_confidence

BE2/DF_CONSN

—

business_confidence

BE2/DF_BUSSURVM

—

trade_balance

BE2/DF_EXTERNAL_TRADE_OVERVIEW

—

Ressourcen

URI

Inhalt

nbb://catalog

Markdown-Index aller 221 Datenflüsse nach Kategorie.

nbb://dataflow/{agency}/{dataflow_id}

Vollständiges angereichertes Datenblatt für einen Fluss.

nbb://category/{category}

Alle Flüsse in einer Kategorie.


Beispiel-Prompts in Claude

„Wie war der EUR/USD-Wechselkurs im letzten Monat?“ → nbb_quick("exchange_rate", currency="USD", frequency="D", last_n_observations=30)

„Vergleichen Sie das belgische BIP-Wachstum mit der Arbeitslosenquote seit 2020.“ → nbb_compare([{dataflow_id:"DF_QNA_DISS",label:"GDP"}, {dataflow_id:"DF_UNEMPLOY_RATE",label:"Unemployment"}], start_period="2020-Q1")

„Finden Sie NBB-Datenflüsse zu Verbraucherkrediten.“ → nbb_search("consumer credit") → nbb_describe(...) → nbb_query(...).


Konfiguration (Umgebungsvariablen)

Alle Einstellungen haben sinnvolle Standardwerte; überschreiben Sie sie über Umgebungsvariablen.

Variable

Standard

Zweck

NBB_API_BASE_URL

https://nsidisseminate-stat.nbb.be/rest

SDMX-REST-Basis-URL

NBB_API_TIMEOUT

30

Zeitlimit pro Anfrage (s)

NBB_USER_AGENT

Browser-UA

Erforderlich für die WAF – Standard ist eine gültige Chrome-User-Agent-Zeichenfolge

NBB_ORIGIN

https://dataexplorer.nbb.be

Erforderlich für die WAF

NBB_HTTP_CACHE_ENABLED

true

Persistenter Festplatten-Cache

NBB_HTTP_CACHE_PATH

OS-Cache-Verzeichnis

Cache-Speicherort überschreiben (Standard: platformdirs.user_cache_dir)

NBB_MEMORY_CACHE_TTL_DATA

300

TTL für Datenantworten (s)

NBB_MEMORY_CACHE_TTL_STRUCTURE

3600

TTL für Strukturantworten (s)

NBB_RATE_LIMIT_REQUESTS

100

Selbst auferlegtes Ratenlimit (Anfragen/Zeitraum)

NBB_RATE_LIMIT_PERIOD

60

Ratenlimit-Zeitfenster (s)

NBB_RETRY_ATTEMPTS

3

Wiederholungen bei vorübergehenden Fehlern

NBB_LOG_LEVEL

INFO

DEBUG/INFO/WARNING/ERROR

NBB_LOG_FORMAT

json

json oder console

Der Standard-Cache-Pfad lautet:

  • Linux: ~/.cache/mcp-nbb/

  • macOS: ~/Library/Caches/mcp-nbb/

  • Windows: %LOCALAPPDATA%\mcp-nbb\Cache\


Aktualisieren des Katalogs

Der gebündelte Schnappschuss src/nbb_mcp/data/catalog/ wird neu erzeugt, indem die DSD + Codelisten für jeden der 221 Datenflüsse abgerufen werden:

mcp-nbb-build-catalog --force

Optionen:

  • --force – jedes Datenblatt neu erstellen, vorhandene ignorieren.

  • --limit N – nur die ersten N Flüsse verarbeiten (Debug).

  • --only BE2/DF_EXR,BE2/DF_HICP_2025 – bestimmte Flüsse neu erstellen.

  • --concurrency 5 – parallele DSD-Anfragen.

Ein vollständiger Neuaufbau dauert etwa 80 Sekunden gegen die Live-API. Der Katalogumfang ist auf etwa 9 MB begrenzt, indem Codelisten auf 200 Codes pro Dimension gekürzt werden (einige IWF-Flüsse haben über 65.000+ Codes).

Eine wöchentliche GitHub Action (build-catalog.yml) erstellt den Katalog neu und öffnet einen PR, wenn eine Abweichung festgestellt wird.


Fehlerbehebung

"WAF hat eine HTML-Weiterleitung zurückgegeben"

Die NBB-API befindet sich hinter einer WAF, die für jede Anfrage ohne browserähnlichen User-Agent und einen Origin: https://dataexplorer.nbb.be-Header eine HTML-200-Weiterleitung zurückgibt. Der Client fügt standardmäßig beides ein. Wenn Sie NBB_USER_AGENT überschreiben, behalten Sie eine echt aussehende Browser-Zeichenfolge bei.

"HTTP 404 NoResultsFound" bei einer Datenabfrage

Der SDMX-Schlüssel hat keine Serie gefunden. Verwenden Sie nbb_describe(dataflow_id), um gültige Codes zu sehen, oder übergeben Sie filters={} / key="all", um alles abzurufen und dann über start_period/end_period einzugrenzen.

"Zu viele Beobachtungen, abgeschnitten"

Jede Datenantwort ist standardmäßig auf max_observations=200 begrenzt. Erhöhen Sie den Wert über nbb_query(max_observations=1000) oder grenzen Sie die Abfrage mit einem Zeitfenster ein.

Katalog nicht gefunden

Wenn Sie ohne den gebündelten src/nbb_mcp/data/catalog/ ausführen, führen Sie einmal mcp-nbb-build-catalog aus, um ihn zu befüllen.


Entwicklung

Siehe CONTRIBUTING.md für den vollständigen Entwicklungsablauf. Kurzform:

pip install -e ".[dev]"
pytest                     # full suite (unit + integration + E2E)
pytest -m "not e2e"        # fast subset
ruff check src tests
mcp-nbb-build-catalog      # refresh the bundled catalogue
mcp-nbb                    # run the server (stdio)

CI läuft auf Linux, macOS und Windows mit Python 3.11 und 3.12. Siehe DATAFLOWS_CATALOG.md für das klassifizierte Inventar.


Sicherheit

Bitte melden Sie Schwachstellen privat – siehe SECURITY.md.

Lizenz

MIT – siehe LICENSE für den vollständigen Text.

Haftungsausschluss

Dieses Projekt ist nicht mit der National Bank of Belgium verbunden oder von ihr unterstützt. Es ist ein unabhängiger Client ihrer öffentlichen SDMX-REST-API. Die browserähnlichen User-Agent- und Origin-Header werden von der vorgelagerten WAF benötigt und dienen ausschließlich dem Zugriff auf öffentliche statistische Daten. Die Benutzer sind für die Einhaltung der Nutzungsbedingungen der NBB verantwortlich.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to European Central Bank statistical data through SDMX data flows, enabling querying and listing of data flows via natural language or direct tool calls.
    1 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables searching, exploring, and querying over 1,500 OECD statistical datasets via SDMX, covering national accounts, employment, trade, PISA, health, and more.
    95 npm
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables querying Bank for International Settlements central-bank and global financial statistics via the SDMX v2 API, including credit-to-GDP gaps, curated dataflows, and full registry search with dataset fetching, without authentication.
    224 npm
    1
    MIT