Setup guide
Codex CLI
Codex reads its MCP servers from ~/.codex/config.toml. Add one block and restart it.
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.
Add the server
Open ~/.codex/config.toml (create it if it does not exist) and add:
[mcp_servers.nbb]
url = "https://test.nbb-mcp.be/mcp"
bearer_token_env_var = "NBB_MCP_KEY"
Then put the key in that environment variable rather than in the file — same secret, one fewer place it can be committed:
export NBB_MCP_KEY=nbb_live_…
Restart Codex CLI so it re-reads the configuration.
Remote (streamable HTTP) MCP servers are a recent addition to Codex. If your version rejects url, or logs that only stdio servers are supported, either upgrade Codex or use the bridge below — older builds also need experimental_use_rmcp_client = true at the top level of the file.
Fallback: bridge over stdio
mcp-remote turns a remote MCP server into a stdio one, which every Codex version supports:
[mcp_servers.nbb]
command = "npx"
args = ["-y", "mcp-remote", "https://test.nbb-mcp.be/mcp", "--header", "Authorization: Bearer nbb_live_…"]
Needs Node.js on your machine. It is a bridge, not a proxy: the traffic still goes straight to this server.
Confirm it loaded
Start Codex and ask it which tools it has. search_company, get_annual_accounts and get_operation should be among them, namespaced under nbb.
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.
- Any other MCP client — The raw connection details, plus a JSON config that most clients accept.