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 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 — 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

按类别列出的所有 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 秒。目录占用空间限制在约 9 MB,方法是将每个维度的代码表截断为 200 个代码(某些 IMF 数据流有 65 000+ 个代码)。

每周的 GitHub Action(build-catalog.yml)会重建目录,并在检测到漂移时打开 PR。


故障排除

“WAF 返回了 HTML 重定向”

NBB API 位于 WAF 之后,对于任何没有类似浏览器的 User-Agent 和 Origin: https://dataexplorer.nbb.be 头的请求,WAF 都会返回 HTML 200 重定向。客户端默认注入这两者。如果您覆盖 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。

免责声明

本项目与比利时国家银行无关联,也未获得其认可。它是其公共 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