Setup guide
Any other MCP client
The connection details, the JSON shape most clients accept, and a curl call to prove the server answers you.
You need a key first.
Your account page issues one — it starts with nbb_live_ and is shown once. If you have not signed up yet, sign in with your email address; the free plan needs no card.
Connection details
| Server URL | https://test.nbb-mcp.be/mcp |
|---|---|
| Header | Authorization: Bearer nbb_live_… |
| Transport | MCP streamable HTTP |
One endpoint handles POST (JSON-RPC requests) and SSE (streamed responses). The server is stateful: it expects the standard initialize handshake before tool calls.
JSON configuration
Most clients that read a JSON config file accept a shape like this — the key names differ a little between clients (mcpServers vs servers, type vs transport), so check yours:
{
"mcpServers": {
"nbb": {
"type": "http",
"url": "https://test.nbb-mcp.be/mcp",
"headers": {
"Authorization": "Bearer nbb_live_…"
}
}
}
}
Client only speaks stdio?
Bridge it, and nothing about the server changes:
npx -y mcp-remote https://test.nbb-mcp.be/mcp --header "Authorization: Bearer nbb_live_…"
Prove it by hand
List the tools with curl — no MCP client involved:
curl -sS https://test.nbb-mcp.be/mcp \
-H "Authorization: Bearer nbb_live_…" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
A key that is missing or wrong gives 401 with a JSON-RPC error body; too many requests gives 429 with Retry-After. Some clients need the initialize handshake first — that is what a real MCP client does for you.
The Accept header matters: the streamable-HTTP transport may answer either with JSON or with an SSE stream, and it needs to know both are acceptable.
Check that it works
Start a new conversation and ask:
Find the annual accounts of Colruyt
The assistant should call search_company, find enterprise number 0400.378.485 (Etn. Fr. Colruyt NV), then call get_annual_accounts, poll get_operation once or twice, and read back a balance sheet with rubric codes.
It says it has no such tool
The connector is not loaded. Most clients only pick up MCP servers at start-up: restart it, and check the server is enabled in the client's tool list.
It reports 401 or "invalid API key"
The header is missing or the key is wrong. The value must be the whole key including the nbb_live_ prefix, after the word Bearer and one space. Keys are shown once — if you did not copy it, regenerate on your account page.
It gives up after one call and says it is still pending
get_annual_accounts is asynchronous: it returns an operation id and a poll_after_seconds. Tell the assistant to poll get_operation until the status is completed. The tool descriptions say so, but a smaller model sometimes needs the nudge.
Other clients
- Claude (claude.ai) — Add the server as a custom connector in Claude's settings.
- Claude Code — One <code>claude mcp add</code> command in your terminal.
- ChatGPT — Developer-mode MCP connector, with the key as a bearer token.
- Codex CLI — An <code>mcp_servers</code> block in ~/.codex/config.toml.