Public alpha — everything is free and the monthly quotas are not enforced. Get one mail when the paid plan launches.

MCP server · NBB / CBSO

Belgian annual accounts for your AI assistant

Annual accounts filed with the National Bank of Belgium, as structured JSON with the official rubric codes and labels in Dutch, French, German or English. Connect it once and your assistant can look up a Belgian company by name.

No card. The free plan includes 100 tool calls per month.

Pricing

During the alpha everything is free and the monthly quotas are not enforced.

Free

€0

  • 100 tool calls per month
  • Unlimited during the alpha — the quota is shown, not enforced
  • All four label languages
Start free

Paid

€15 / month excl. VAT

  • 2 000 tool calls per month
  • 50 PDF-only filings read by an LLM per month — arrives with the launch
  • Everything in Free
  • Not for sale yet — it launches after the alpha
Get notified at launch

How it works

  1. Step 1 Get a key Sign in with your email address — no password to invent. Your account page issues an API key starting with nbb_live_.
  2. Step 2 Add the connector Point your MCP client at https://nbb-mcp.be/mcp and send the key as a bearer token — your account page walks you through every client.
  3. Step 3 Ask "What did Colruyt's balance sheet look like in 2023?" The assistant resolves the name to an enterprise number, fetches the filing and reads it back.

Three tools, that is the whole API

search_company

Resolve a company name to its Belgian enterprise (KBO/BCE) number, or list the names registered for a number.

get_annual_accounts

Fetch the annual accounts a company filed with the NBB: balance sheet, income statement, appropriation of results, social balance sheet and notes, each line with its official rubric code and a translated label.

check_xbrl_availability

List every annual account a company filed with the NBB and whether each is machine-readable (XBRL) or a PDF-only image — the years get_annual_accounts can serve.

One JSON shape for every filing, whatever taxonomy generation it was filed under: each line carries its official rubric code (20/28, 9900), the translated label and the current and previous period figures. Facts that cannot be mapped come back in unmapped_facts rather than being dropped.

Full parameter tables, response times and the error codes are in the documentation.

Questions

What is an MCP server, and do I need one?

MCP (Model Context Protocol) is the standard way an AI assistant calls tools that live somewhere else. If you use Claude, ChatGPT, Claude Code or Codex CLI, your client can connect to a remote MCP server over HTTP and then use its tools while answering you. This is such a server: you add a URL and a key once, and your assistant gains the ability to look up Belgian annual accounts. Nothing to install and nothing to run.

Which data exactly, and where does it come from?

The annual accounts as filed with the Central Balance Sheet Office (CBSO) of the National Bank of Belgium, read from its authentic-data web service rather than scraped from a website. Company-name lookup uses the KBO/BCE open-data denomination file, so legal names, abbreviations and commercial names in every language all resolve to the same enterprise number.

Which years are available?

Filings exist from roughly 1978 onwards, but machine-readable ones start much later: deposits filed in the standardised models come back as structured data, and everything else is a PDF. Recent years (roughly 2016 onwards) are almost always structured; older ones are mixed. check_xbrl_availability lists everything a company filed and which of it is machine-readable. When a filing is PDF-only, the response says so with the error code pdf_fallback_required — the paid plan will read those with an LLM, arriving with the launch.

Which languages?

Dutch, French, German and English. The figures are identical in all four — only the labels differ, and they come from the National Bank's own label linkbases rather than from a machine translation. If a label is missing in the language you asked for, the response falls back to the filing's own language and records that in meta.