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

Available in ChatGPT · 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. Available as an app inside ChatGPT, and as a plain MCP server for every other client.

No card and nothing to install. Free during the public alpha.

Pricing

Free during the public alpha: calls are counted, never refused. A paid plan follows later — its price and its monthly limits are not decided yet, and nothing is ever charged without your explicit signup.

Get notified at launch

How it works

  1. Step 1 Add it to your assistant Find Belgian Annual Accounts in ChatGPT's plugin directory and turn it on.
  2. Step 2 Sign in The assistant sends you here to sign in with your email address — no password to invent and no key to copy. Command-line clients use an API key from your account page instead.
  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.

Using something else? Every other MCP client takes the server URL https://test.nbb-mcp.be/mcp — your account page has a block per client, with the command or config to paste.

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 ChatGPT, Claude, 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: in ChatGPT you switch it on from the app directory, and every other client takes a URL and a key once. 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.