search_company
Resolve a company name to its Belgian enterprise (KBO/BCE) number, or list the names registered for a number.
Available in ChatGPT · MCP server · NBB / CBSO
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.
Using something else? Every other MCP client takes the server URL https://nbb-mcp.be/mcp — your account page has a block per client, with the command or config to paste.
search_companyResolve a company name to its Belgian enterprise (KBO/BCE) number, or list the names registered for a number.
get_annual_accountsFetch 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_availabilityList 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.
get_company_activitiesList every NACE activity a company has registered at enterprise level: code, nomenclature version, classification and a readable description.
get_registered_officeFetch a company's registered office (registered seat) address as structured fields.
list_establishmentsList a company's currently operating establishments, each with its establishment number, start date and structured address.
list_nace_codesBrowse the NACEBEL activity classification one level at a time, to find the code that describes an activity such as "bakery". Free: the only tool that does not count against your quota.
find_companies_by_activityFind companies by NACE activity code, postal code or municipality — the reverse of the per-company tools. At least one of nace_code, zipcode or municipality is required; given several, they are ANDed, and a company matches if any of its addresses (registered office or an establishment) falls in the area. Only companies currently active in the register are returned.
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 are counted, and returned in unmapped_facts when you ask for detail: full, rather than being dropped.
Full parameter tables, response times and the error codes are in the documentation.
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.
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.
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.
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.