Skip to main content
Glama

mcp-nbb

CI PyPI version Python versions License: MIT MCP compatible

벨기에 국립은행(National Bank of Belgium) SDMX 통계 API용 MCP 서버입니다.

221개의 NBB 데이터플로우(194 BE2 + 27 IMF/SDDS)를 6개의 LLM 친화적 도구와 3개의 탐색 가능한 리소스로 노출하며, 번들로 제공되는 강화된 카탈로그를 통해 LLM이 중복 API 호출 없이 데이터플로우를 발견, 설명, 쿼리할 수 있습니다.

  • 업스트림: https://nsidisseminate-stat.nbb.be/rest (NSI Web Service v8)

  • 전송: stdio (표준 MCP)

  • Python: 3.11+

  • 플랫폼: Linux, macOS, Windows

  • 221개 데이터플로우가 14개 카테고리로 분류됨 — DATAFLOWS_CATALOG.md 참조


설치

PyPI에서 설치 (권장)

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

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

소스에서 설치

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

패키지에는 전체 강화 카탈로그(~9 MB, src/nbb_mcp/data/catalog/ 아래)가 포함되어 있습니다. 일반적인 사용에는 빌드 단계가 필요하지 않습니다.


Related MCP server: OECD MCP Server

Claude Desktop 구성

macOS에서는 ~/Library/Application Support/Claude/claude_desktop_config.json을, Windows에서는 %APPDATA%\Claude\claude_desktop_config.json을, Linux에서는 해당 파일을 편집하세요.

uvx 사용 (PyPI에 게시되면 권장)

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

로컬 편집 가능 설치에서

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"
    }
  }
}

Claude Desktop을 다시 시작하면 MCP 패널에 6개의 nbb_* 도구가 나타납니다.


도구

도구

API 호출 수

용도

nbb_search(query, …)

0

221개 로컬 피시(fiche)에 대한 퍼지 검색 (en/fr/nl/de).

nbb_describe(dataflow_id, …)

0 (기본)

전체 강화 피시 — 차원, 코드리스트, 키 템플릿, 일반 쿼리. force_refresh=True는 실시간으로 재검증합니다.

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

1

일반 데이터 가져오기. key(원시 SDMX) 또는 filters({"FREQ":"D","EXR_CURRENCY":"USD"}) 중 하나를 사용합니다.

nbb_quick(topic, …)

1

18가지 일반 쿼리를 위한 주제 기반 단축키 — 아래 주제 표를 참조하세요.

nbb_compare(series, …)

N

2-5개 시리즈를 공통 시간 인덱스에 정렬하고, 더 세밀한 주파수를 종가 집계로 다운샘플링합니다.

nbb_status()

0

진단 스냅샷: 카탈로그, 캐시, API 구성.

nbb_quick 주제

주제

데이터플로우

매개변수

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

—

리소스

URI

내용

nbb://catalog

카테고리별 모든 221개 데이터플로우의 Markdown 색인.

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

한 흐름에 대한 전체 강화 피시.

nbb://category/{category}

한 카테고리의 모든 흐름.


Claude에서의 예시 프롬프트

"지난 달 EUR/USD 환율은 얼마인가요?" → nbb_quick("exchange_rate", currency="USD", frequency="D", last_n_observations=30)

"2020년 이후 벨기에 GDP 성장률과 실업률을 비교해 주세요." → nbb_compare([{dataflow_id:"DF_QNA_DISS",label:"GDP"}, {dataflow_id:"DF_UNEMPLOY_RATE",label:"Unemployment"}], start_period="2020-Q1")

"소비자 신용에 관한 NBB 데이터플로우를 찾아주세요." → nbb_search("consumer credit") → nbb_describe(...) → nbb_query(...).


구성 (환경 변수)

모든 설정에는 합리적인 기본값이 있으며 환경 변수로 재정의할 수 있습니다.

변수

기본값

용도

NBB_API_BASE_URL

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

SDMX REST 기본 URL

NBB_API_TIMEOUT

30

요청당 타임아웃 (초)

NBB_USER_AGENT

브라우저 UA

WAF에 필요 — 기본값은 유효한 Chrome UA 문자열입니다

NBB_ORIGIN

https://dataexplorer.nbb.be

WAF에 필요

NBB_HTTP_CACHE_ENABLED

true

영구 디스크 캐시

NBB_HTTP_CACHE_PATH

OS 캐시 디렉터리

캐시 위치 재정의 (기본값은 platformdirs.user_cache_dir)

NBB_MEMORY_CACHE_TTL_DATA

300

데이터 응답 TTL (초)

NBB_MEMORY_CACHE_TTL_STRUCTURE

3600

구조 응답 TTL (초)

NBB_RATE_LIMIT_REQUESTS

100

자체 부과 속도 제한 (요청/기간)

NBB_RATE_LIMIT_PERIOD

60

속도 제한 창 (초)

NBB_RETRY_ATTEMPTS

3

일시적 오류 시 재시도 횟수

NBB_LOG_LEVEL

INFO

DEBUG/INFO/WARNING/ERROR

NBB_LOG_FORMAT

json

json 또는 console

기본 캐시 경로는 다음과 같이 결정됩니다:

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

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

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


카탈로그 새로고침

번들로 제공되는 src/nbb_mcp/data/catalog/ 스냅샷은 221개 데이터플로우 각각에 대해 DSD + 코드리스트를 가져와 재생성됩니다:

mcp-nbb-build-catalog --force

옵션:

  • --force — 기존 피시를 무시하고 모든 피시를 다시 빌드합니다.

  • --limit N — 처음 N개 흐름만 처리합니다 (디버그).

  • --only BE2/DF_EXR,BE2/DF_HICP_2025 — 특정 흐름만 다시 빌드합니다.

  • --concurrency 5 — 병렬 DSD 요청.

전체 재빌드는 라이브 API에 대해 약 80초가 걸립니다. 카탈로그 크기는 차원당 200개 코드로 코드리스트를 잘라내어 약 9MB로 제한됩니다 (일부 IMF 흐름에는 65,000개 이상의 코드가 있습니다).

주간 GitHub Action(build-catalog.yml)이 카탈로그를 재빌드하고 변경 사항이 감지되면 PR을 엽니다.


문제 해결

"WAF가 HTML 리디렉션을 반환했습니다"

NBB API는 브라우저와 유사한 User-Agent와 Origin: https://dataexplorer.nbb.be 헤더가 없는 모든 요청에 대해 HTML 200 리디렉션을 반환하는 WAF 뒤에 있습니다. 클라이언트는 기본적으로 둘 다 주입합니다. NBB_USER_AGENT를 재정의하는 경우 실제처럼 보이는 브라우저 문자열을 유지하세요.

데이터 쿼리에서 "HTTP 404 NoResultsFound"

SDMX 키가 어떤 시리즈와도 일치하지 않았습니다. nbb_describe(dataflow_id)를 사용하여 유효한 코드를 확인하거나, filters={} / key="all"을 전달하여 모든 것을 검색한 다음 start_period/end_period로 좁히세요.

"관측치가 너무 많아 잘렸습니다"

모든 데이터 응답은 기본적으로 max_observations=200으로 제한됩니다. nbb_query(max_observations=1000)로 늘리거나 기간 창으로 쿼리를 좁히세요.

카탈로그를 찾을 수 없음

번들로 제공되는 src/nbb_mcp/data/catalog/ 없이 실행하는 경우 mcp-nbb-build-catalog를 한 번 실행하여 채우세요.


개발

전체 개발 워크플로는 CONTRIBUTING.md를 참조하세요. 간단히:

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는 Python 3.11 및 3.12로 Linux, macOS, Windows에서 실행됩니다. 분류된 인벤토리는 DATAFLOWS_CATALOG.md를 참조하세요.


보안

취약점은 비공개로 보고해 주세요 — SECURITY.md를 참조하세요.

라이선스

MIT — 전체 텍스트는 LICENSE를 참조하세요.

고지 사항

이 프로젝트는 벨기에 국립은행과 제휴하거나 보증하지 않습니다. 이는 공개 SDMX REST API의 독립적인 클라이언트입니다. 브라우저와 유사한 User-Agent 및 Origin 헤더는 업스트림 WAF에서 요구하며 공개 통계 데이터에 접근하는 데만 사용됩니다. 사용자는 NBB의 이용 약관을 준수할 책임이 있습니다.

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