Skip to main content
Glama

mcp-nbb

CI PyPI version Python versions License: MIT MCP compatible

MCP-сервер для National Bank of Belgium SDMX статистического API.

Предоставляет 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 МБ в src/nbb_mcp/data/catalog/). Для обычного использования не требуется этап сборки.


Related MCP server: OECD MCP Server

Конфигурация Claude Desktop

Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json на macOS, %APPDATA%\Claude\claude_desktop_config.json на Windows или эквивалентный файл на 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 — 6 инструментов nbb_* появятся на панели MCP.


Инструменты

Инструмент

Вызовы API

Назначение

nbb_search(query, …)

0

Нечёткий поиск по 221 локальной карточке (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

Индекс Markdown всех 221 потоков данных по категориям.

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

Полная обогащённая карточка для одного потока.

nbb://category/{category}

Все потоки в категории.


Примеры запросов в Claude

"Какой курс EUR/USD за последний месяц?" → nbb_quick("exchange_rate", currency="USD", frequency="D", last_n_observations=30)

"Сравните рост ВВП Бельгии с уровнем безработицы с 2020 года." → 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

Базовый URL SDMX REST

NBB_API_TIMEOUT

30

Таймаут на запрос (с)

NBB_USER_AGENT

браузерный UA

Требуется для WAF — по умолчанию используется корректная строка UA Chrome

NBB_ORIGIN

https://dataexplorer.nbb.be

Требуется для WAF

NBB_HTTP_CACHE_ENABLED

true

Постоянный дисковый кэш

NBB_HTTP_CACHE_PATH

системный каталог кэша

Переопределить расположение кэша (по умолчанию 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/ пересоздаётся путём получения DSD + списков кодов для каждого из 221 потоков данных:

mcp-nbb-build-catalog --force

Параметры:

  • --force — пересоздать все карточки, игнорируя существующие.

  • --limit N — обработать только первые N потоков (отладка).

  • --only BE2/DF_EXR,BE2/DF_HICP_2025 — пересоздать конкретные потоки.

  • --concurrency 5 — параллельные запросы DSD.

Полное пересоздание занимает ~80 секунд при обращении к живому API. Размер каталога ограничен ~9 МБ за счёт усечения списков кодов до 200 кодов на измерение (в некоторых потоках IMF более 65 000 кодов).

Еженедельное действие GitHub Action (build-catalog.yml) пересоздаёт каталог и открывает PR при обнаружении расхождений.


Устранение неполадок

«WAF вернул HTML-редирект»

API NBB находится за WAF, который возвращает HTML-редирект с кодом 200 для любого запроса без браузерного User-Agent и заголовка Origin: https://dataexplorer.nbb.be. Клиент по умолчанию добавляет оба. Если вы переопределяете 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 запускается на Linux, macOS и Windows с Python 3.11 и 3.12. Классифицированный перечень см. в DATAFLOWS_CATALOG.md.


Безопасность

Пожалуйста, сообщайте об уязвимостях конфиденциально — см. SECURITY.md.

Лицензия

MIT — полный текст см. в LICENSE.

Отказ от ответственности

Этот проект не связан с National Bank of Belgium и не одобрен им. Это независимый клиент их публичного 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