Bolagskvarnen / Guide
MCP server for Swedish company data: connect Bolagskvarnen to Claude, ChatGPT, Cursor, VS Code and Codex
Reviewed by Bolagskvarnen
Short answer
Bolagskvarnen's MCP server is at https://app.bolagskvarnen.se/mcp (Streamable HTTP) with six read-only tools for Swedish companies, boards, history and accounts. Live data opens later. Today the server answers from a sandbox of fictitious companies, which you can reach with a free test key in Claude Code, Cursor, VS Code and Codex (2026-11-13).
Written by Bolagskvarnen. The client steps were checked against each client’s own documentation on 13 November 2026. The Swedish guides go further for Claude, ChatGPT and Codex and Cursor and VS Code.
What the server does
MCP (Model Context Protocol) is an open protocol that lets an AI assistant call tools hosted by someone else. With Bolagskvarnen connected, you can ask Claude, ChatGPT or the agent in your editor about a Swedish company, and the assistant looks the answer up in the register instead of guessing from memory. The data comes from Bolagsverket (the Swedish Companies Registration Office) and SCB (Statistics Sweden).
| Item | Value |
|---|---|
| Endpoint | https://app.bolagskvarnen.se/mcp |
| Transport | Streamable HTTP (not the older SSE transport) |
| Authentication | OAuth 2.1 with PKCE, or an API key in Authorization: Bearer |
| Client registration | Dynamic client registration, or a client ID metadata document |
| Scopes | companies:read, roles:read, history:read, financials:read, persons:read |
The six tools
gb_search_companies: Up to ten companies matching a name or organisation number. Free, up to 1,000 searches a day.gb_get_company: Name, legal form, status, registered seat and industry (SNI).detail: "full"adds addresses, F-tax, VAT, business description, former names and share capital. SEK 0.10, full profile SEK 0.15.gb_get_company_roles: Board, CEO, deputies, auditor and signatory rights as text. SEK 0.10.gb_get_company_history: Registered changes since a date, and status history. SEK 0.10.gb_get_financials: Accounts and key figures for up to five years, limited companies only. SEK 0.10.gb_get_person_engagements: A person’s roles in other companies, from aperson_refin the roles answer. SEK 0.10.
All tools are read-only. People are identified by a person_ref tied to your account, never by personal identity number. Answers and field names are in Swedish. Prices are preliminary (2026-10-28) and apply once live data opens; a lookup that finds nothing is free.
What works today
Live data opens later. Until then the server answers in one of two ways, depending on how the client signs in:
- With a test key (
gb_test_…) every tool answers from the sandbox: seven fictitious companies in the same format as live. Free, and it works now. - With OAuth you sign in with your account. That connection always counts as live, so the tools answer
blocked_by_phaseuntil live data opens.
| Client | Test key in a header (sandbox now) | OAuth (once live opens) |
|---|---|---|
| Claude Code | Yes, --header |
Yes, /mcp |
| claude.ai and Claude Desktop | Only if your organisation has the Request headers beta | Yes, custom connector |
| ChatGPT | No, OpenAI describes no such field | Yes, on the web in Business, Enterprise and Edu; Pro for read-only tools |
| Codex | Yes, bearer_token_env_var |
Yes, codex mcp login |
| Cursor | Yes, headers in mcp.json |
Yes |
| VS Code with Copilot | Yes, headers in Copilot’s config |
Per VS Code: follow the server’s instructions |
To get a test key, create an account at app.bolagskvarnen.se with your company’s Swedish organisation number, then go to Konto, Nycklar (Account, Keys) and create a key with the environment Test. The portal is in Swedish. Accounts are for companies and organisations registered in Sweden, using the data internally.
Connect each client
Every example uses bolagskvarnen as the server name and reads the key from the environment variable BOLAGSKVARNEN_KEY. Never commit a key to a repository.
Claude Code
claude mcp add --transport http bolagskvarnen https://app.bolagskvarnen.se/mcp \
--header "Authorization: Bearer $BOLAGSKVARNEN_KEY"
Run /mcp inside Claude Code to check the connection. The shell expands the variable, so the key is stored in ~/.claude.json; do not use --scope project, which writes it to .mcp.json in the repository. For OAuth, leave out --header and sign in through /mcp.
claude.ai and Claude Desktop
Go to Customize → Connectors, choose Add and Add custom connector, enter Bolagskvarnen and the endpoint, keep the settings marked Detected and choose Connect. On Team and Enterprise an Owner adds it under Organization settings → Connectors first. Desktop shares the connectors of your Claude account. If you see the Request headers section, you can use the sandbox now: choose No sign-in, pick the header authorization and enter Bearer gb_test_… including the word Bearer.
ChatGPT
On the web, open Plugins, choose the plus button and Add custom MCP server, enter the endpoint, choose OAuth, accept the risk warning and choose Create as a plugin. In a workspace an admin publishes it. Use it by typing @ and picking Bolagskvarnen. Answers arrive once live data opens.
Codex
Add this to ~/.codex/config.toml, then run /mcp in Codex or codex mcp list:
[mcp_servers.bolagskvarnen]
url = "https://app.bolagskvarnen.se/mcp"
bearer_token_env_var = "BOLAGSKVARNEN_KEY"
For OAuth: codex mcp add bolagskvarnen --url https://app.bolagskvarnen.se/mcp followed by codex mcp login bolagskvarnen.
Cursor
In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"bolagskvarnen": {
"url": "https://app.bolagskvarnen.se/mcp",
"headers": { "Authorization": "Bearer ${env:BOLAGSKVARNEN_KEY}" }
}
}
}
Leave out headers to sign in with OAuth instead. Restart Cursor after setting the environment variable.
VS Code with Copilot
Run MCP: Add Server, choose HTTP, enter the endpoint and the ID bolagskvarnen, then Global and Copilot Global. For the sandbox, add "headers": { "Authorization": "Bearer ${BOLAGSKVARNEN_KEY}" } to the server’s entry in ~/.copilot/mcp-config.json. VS Code’s documentation (dated 2026-11-11) says the older .vscode/mcp.json format is deprecated and will be removed in February 2027.
A first question
The sandbox companies use numbers in the series 569900 and exist only there. Ask:
Who is on the board of 569900-0013, and who can sign for the company?
The assistant calls gb_get_company_roles and gets back a CEO who is also a board member, a deputy and an audit firm, each with dates, plus the signatory rule in Swedish: the board members two together, and the CEO for day-to-day management. This is a real, shortened sandbox answer from gb_get_company:
{
"data": {
"org_number": "569900-0013",
"name": "Exempelbolaget i Norrland AB",
"legal_form": { "code": "AB", "text": "Aktiebolag" },
"status": { "active": true, "code": 100, "text": "Aktiv" },
"registered_date": "2015-03-10",
"seat": { "municipality": "Umeå", "region": "Västerbottens län" },
"industry": { "sni_code": "62010", "text": "Dataprogrammering" }
},
"meta": {
"source": ["sandbox"],
"attribution": ["Påhittad testdata. Inga riktiga bolag eller personer."],
"environment": "test",
"cost_sek": 0,
"coverage": { "company": "available" }
}
}
cost_sek is what the call cost and attribution says where the data came from (“fictitious test data” in the sandbox, the source once live). 569900-0096 is a valid number that is not in the sandbox, so you can see how the assistant handles a company that does not exist.
When you do not need us
If you only need name, legal form, address, status and industry code, Bolagsverket’s API for high-value datasets gives that for free without a contract (Bolagsverket’s API explained). It is not an MCP server, and it has no board, signatory rights, history or accounts.
Frequently asked questions
Is there an MCP server for Swedish company data?
Yes. Bolagskvarnen’s MCP server at https://app.bolagskvarnen.se/mcp has tools for company search, company profile, board and signatory rights, history, accounts and a person’s roles in companies. It uses Streamable HTTP and OAuth 2.1 or an API key. Live data opens later; today it answers from a sandbox of fictitious companies.
Which AI clients work with it?
Any client that supports remote MCP servers over Streamable HTTP. With a test key, Claude Code, Codex, Cursor and VS Code reach the sandbox today. claude.ai and ChatGPT sign in with OAuth and get answers once live data opens, unless your Claude organisation has the Request headers beta.
What does it cost?
The server itself is free. You pay per lookup, the same as the REST API: SEK 0.10 for a company profile, board, history or accounts, SEK 0.15 for the full profile, and search is free up to 1,000 a day (preliminary prices, 2026-10-28). The sandbox is free and 500 free credits are included when you start.
Why do the tools answer blocked_by_phase?
You are connected with OAuth or a live key, and live data has not opened yet. Connect with a test key (gb_test_…) in the Authorization header instead and the same tools answer from the sandbox.
Does the assistant see personal identity numbers?
No. People are identified by a person_ref that only works for your account, and a sole trader’s organisation number, which is the owner’s personal identity number, is never shown.
Can I use it from outside Sweden?
The service is for companies and organisations registered in Sweden that use the data internally. The account is created with a Swedish organisation number.
Sources
- Bolagskvarnen: MCP server documentation (in Swedish), read 2026-11-13
- Bolagskvarnen: OAuth protected resource metadata, read 2026-11-13
- Claude Code: Connect Claude Code to tools via MCP, read 2026-11-13
- Claude: Add a connector that isn't in the directory, read 2026-11-13
- OpenAI Help Center: Connecting custom MCP servers in ChatGPT, read 2026-11-13
- OpenAI: MCP in Codex, read 2026-11-13
- Cursor: Model Context Protocol, read 2026-11-13
- VS Code: MCP configuration reference (page dated 2026-11-11), read 2026-11-13