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