How do I connect Claude or Cursor to Norwegian company data using MCP?
Point the client at Apier's hosted MCP server and the tools show up in the model's tool list. The endpoint is https://www.apier.no/api/mcp over streamable HTTP. Clients that speak remote MCP connect to it directly with a Bearer header; Claude Desktop and other stdio-only clients launch the published @apier-no/mcp proxy with npx, which forwards to the same endpoint. Discovery needs no credential at all, so you can list the tools before you have a key.
Which MCP tools are available for Norwegian registers?
Twenty-six at the time of writing, and they divide along a line that is worth understanding before you pick one. Some answer questions about the public record: what a company is, whether it is active, who may sign for it, what its published accounts say. Some answer questions about obligation and timing: what a given entity type must file, when the next deadlines fall, whether a specific company is up to date. A third group is about authority and action: whether you may act for a company, and whether a payload would pass validation.
The naming is deliberately intent-first, so a model can read the caller's intention out of the tool name alone. Every tool is a verb followed by the thing it acts on: get_company_summary, list_acting_capacity, check_authorization, validate_action, search_companies. That is not decoration. In a tool list of this size, an ambiguous noun-first name is how a model ends up calling the wrong thing and reporting a confident wrong answer.
For the full reference, with every input schema and the exact shape of each result, go to the MCP server documentation. The table below is the orientation version: enough to know which tool answers your question and whether you need a key first.
| Tool | What it answers | Key needed |
|---|---|---|
get_public_obligations | The obligation template for an entity type, such as a Norwegian AS, with no company named. | No |
get_public_deadlines | The recurring filing deadlines for a year, with the timezone and any weekend or holiday adjustment. | No |
explain_compliance_error | What an error code means and what to do about it, with fix steps written in Norwegian. | No |
search_companies | Company name to organisation number, against the open Brønnøysund register. | Yes |
get_company_summary | One company's compliance picture in a single result: what it is, what it owes, what is due. | Yes |
check_authorization | Whether you currently hold the delegated authority to act for a named company. | Yes |
How do I add the server to Claude Desktop?
Claude Desktop speaks stdio rather than remote MCP, so it launches a local command that proxies to the hosted server. Open Settings, then Developer, then Edit Config, and add the block below to claude_desktop_config.json. Restart the app and the Apier tools appear in the tool menu. The proxy reads APIER_API_KEY from the environment and forwards it as a Bearer header; no tool logic runs locally.
{
"mcpServers": {
"apier": {
"command": "npx",
"args": ["-y", "@apier-no/mcp"],
"env": { "APIER_API_KEY": "apr_live_<your_key_here>" }
}
}
}On Windows, if the app reports spawn npx ENOENT, wrap the launcher: set the command to cmd and the arguments to ["/c", "npx", "-y", "@apier-no/mcp"], keeping the same environment block. That failure is a path-resolution quirk rather than anything specific to this server, and it applies to any stdio client that launches through npx. Cursor takes the identical block in its own config file, and VS Code skips the proxy entirely because it connects to the endpoint directly.
What can an agent do without an API key?
It can discover the whole surface and execute six tools. Discovery is keyless by design: tools/list answers without a credential, so a model can find out what is available and decide whether the server is relevant before anyone signs up for anything. The six executable-without-a-key tools are get_public_obligations, get_public_deadlines, explain_compliance_error, get_exchange_rate, get_pricing and redeem_issuance_token.
That set is a fixed allowlist, not a rule about read-only tools, and the distinction matters if you are evaluating the security posture. A tool qualifies only if it takes no personal identifier, performs no government write, spends no government credentials, and already has a zero-auth equivalent over plain HTTP. Anything touching a named company's data returns 401 without a key, and no combination of scopes on a key changes which side of that line a tool sits on.
In practice this means an agent can price a workflow, look up what a Norwegian limited company must file, work out when the next deadline falls, and turn an error code into something a user can act on, all before it holds a credential. Then it needs a key, and the tools that answer questions about a specific company become available.
Keyless calls are rate-limited per IP address rather than per key, for the obvious reason that there is no key to count against. If you are building an agent that leans on the keyless surface for discovery, treat that limit as the reason to get a key early rather than as something to work around. Every tool result, keyed or not, is written to a query log, so the calls an agent made are reconstructable afterwards either way.
Make the first call
This request needs nothing. It is the same discovery call your MCP client makes on startup, so its output is the authoritative list of what the server exposes right now.
# Keyless discovery: list every tool the server exposes.
curl -s https://www.apier.no/api/mcp \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Frequently asked questions
- What is the Apier MCP server endpoint?
- https://www.apier.no/api/mcp, over streamable HTTP. Clients that speak remote MCP natively connect to it directly and send the API key as a Bearer header. Clients that only speak stdio launch the published npm package @apier-no/mcp instead, which forwards to the same hosted endpoint. No tool logic runs on your machine either way.
- Do I need an API key to try the MCP server?
- Not to look. Discovery is keyless, so tools/list answers without any credential, and six tools also execute without one: get_public_obligations, get_public_deadlines, explain_compliance_error, get_exchange_rate, get_pricing and redeem_issuance_token. Every tool that touches a named company's data requires a key, and that boundary is a fixed allowlist rather than a per-tool judgement call.
- Which MCP client works with this?
- Anything that speaks the Model Context Protocol. VS Code in agent mode and recent Cursor builds connect to the remote endpoint directly. Claude Desktop and older Cursor builds use the npx proxy. The OpenAI Agents SDK and Azure AI Foundry both take the endpoint as a streamable HTTP server. The docs carry a copy-paste block per client.
- Does the MCP server return different answers than the REST API?
- No. The tools forward to the same endpoints, so a tool verdict and the equivalent REST response describe the same evaluation. What the MCP layer adds is shape rather than substance: every tool result carries a justification listing the rules applied and the source data, which is what lets an agent cite its reasoning back to a user instead of asserting a conclusion.
- Can an agent file something through the MCP server?
- Not as a binding government submission today. Validation tools run against the real rule set, and the action tools exist with their full call shape, but binding submission is gated behind approvals that are not in place yet. The capability status page is the authoritative statement of which side of that line each capability sits on.