Company data for AI agents, any country. MCP server and REST API over national business registries: Norway (brreg / Enhetsregisteret), the United Kingdom (Companies House) and Sweden (Bolagsverket) — orgnr, company number or organisationsnummer lookup, VAT/deadline checks.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add registry-mcp -- uvx registry-mcp{
"mcpServers": {
"registry-mcp": {
"command": "uvx",
"args": ["registry-mcp"]
}
}
}MCP Servers overview
<!-- mcp-name: io.github.foretak/registry-mcp -->
# registry-mcp — the company registry MCP
[](https://pypi.org/project/registry-mcp/)
[](https://pypi.org/project/brreg-mcp/)
[](https://www.npmjs.com/package/registry-mcp)
[](https://github.com/foretak/registry-mcp/actions/workflows/ci.yml)
[](LICENSE)
[](https://mcpservers.org/servers/foretak/registry-mcp)
**Company data for AI agents, any country.** One MCP server and REST API, three national registers today: the United Kingdom's **Companies House**, looked up by **company number**; Norway's **Enhetsregisteret** / **Brønnøysundregistrene** (**brreg**), looked up by **organisasjonsnummer** (**orgnr**); and Sweden's **Bolagsverket**, looked up by **organisationsnummer** — one JSON shape whichever you ask.
```bash
claude mcp add registry-mcp --transport http https://api.foretak.dev/mcp
```
No install step, over stdio:
```bash
claude mcp add registry-mcp -- uvx registry-mcp
```
What makes it worth a tool slot:
- **Deadlines that cite the rule, not just a date.** `company_deadlines` gives the next filing date and names why in `applies_because` — a Norwegian legal form's statutory duty, or "Companies House publishes this date for the company itself" when the register states it rather than us computing it. Quote the reason, not just the number.
- **Never more than 24 hours stale, and it says so.** Every response carries `cached` and `fetched_at`. OpenCorporates' own knowledge base tells users to ["allow 30 days"](https://knowledge.opencorporates.com/knowledge-base/the-data-on-opencorporates-is-out-of-date/) for a correction to reach its site — a 30× freshness gap, stated by the incumbent about itself.
- **Seven tools, not fifty** — five registry tools plus two ChatGPT connector aliases. Tool-selection accuracy [degrades past 30-50 tools loaded into an agent's context](https://code.claude.com/docs/en/agent-sdk/tool-search), and some clients cap around 40. Seven tools is roughly 17% of that budget, next to competitors in this space shipping 23 to 78 tools for the same job.
**Security.** Read-only, always — nothing here writes to a register or anywhere else. No credentials are required from a caller; this deployment's own upstream credential (`COMPANIES_HOUSE_API_KEY`) is read from the environment and never logged or returned. Three named upstreams, and nothing else is ever called: `data.brreg.no`, `api.company-information.service.gov.uk` and `gw.api.bolagsverket.se`. No personal data beyond what each national register already publishes about the entity itself — and because a Swedish sole trader's company number *is* their personnummer, the usage log stores no identifier at all for a country whose identifiers can be a natural person's ([`legal/privacy.md`](legal/privacy.md)). This service does not perform sanctions, PEP or adverse-media screening, and it does not verify bank account details. Details: [SECURITY.md](SECURITY.md).
One-click install, for a remote streamable-HTTP server:
[<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522registry-mcp%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.foretak.dev%252Fmcp%2522%257D)
[<img alt="Install in VS Code Insiders" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522registry-mcp%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapi.foretak.dev%252Fmcp%2522%257D)
[<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install in Cursor">](https://cursor.com/en/install-mcp?name=registry-mcp&config=eyJ1cmwiOiJodHRwczovL2FwaS5mb3JldGFrLmRldi9tY3AifQ%3D%3D)
Other clients (Claude Desktop, Cursor, VS Code, Cline, plain JSON configs): see [docs/clients.md](docs/clients.md).
## Add to ChatGPT
ChatGPT reaches an MCP server through a custom connector, and its deep research mode calls
exactly two tools — `search` and `fetch` — which this server ships alongside the five registry
tools. In ChatGPT, open **Settings → Connectors**, add a custom connector, and give it:
https://api.foretak.dev/mcp
No authentication, no key, no account. If your ChatGPT plan does not show custom connectors
under Settings → Connectors, turn on **Settings → Security and login → Developer mode** first,
then add the URL from <https://chatgpt.com/plugins>.
`search` takes one free-text query — a company name, a national identifier, or a name plus a
country ("Tesco United Kingdom") — and returns citable rows; `fetch` takes a row's `id`
(`"NO:923609016"`) and returns that company's register record **and its statutory filing
deadlines**, with the full JSON of both in `metadata`.
## Add to Claude Desktop
Claude Desktop takes the same URL as a custom connector: **Settings → Connectors → Add custom
connector**, then `https://api.foretak.dev/mcp`. No key. For a local stdio install instead, see
[Configuration](#configuration).
> Status: `0.3.0`, live — `GET /health` returns `{"version":"0.3.0","countries":["GB","NO","SE"]}`. The five registry tools and their response shapes are frozen; two connector aliases (`search`, `fetch`) wrap them for ChatGPT and add no new shape. The hosted API at `api.foretak.dev` is live, and listed in the official MCP registry as `io.github.foretak/registry-mcp`. Countries: United Kingdom (Companies House), Norway (brreg), Sweden (Bolagsverket) — see [below](#tools) for each country's identifier format and example calls.
## Add to Claude Code
The same two commands as above — Streamable HTTP or local stdio. To add it as a project-level `.mcp.json` file instead of the CLI, see [Configuration](#configuration).
## What it returns
```console
$ curl https://api.foretak.dev/v1/NO/company/923609016
{
"country": "NO", "registry": "brreg",
"id": "923609016", "id_formatted": "923 609 016", "id_scheme": "organisasjonsnummer", "euid": null,
"name": "EQUINOR ASA",
"legal_form_code": "ASA", "legal_form": "Public limited company", "legal_form_local": "Allmennaksjeselskap",
"status": "active", "is_active": true, "registered_at": "1995-03-12",
"vat_registered": true, "vat_number": "NO923609016MVA", "vat_registered_at": "1989-07-01",
"employees": 21239, "share_capital": 5976872600.0, "share_capital_currency": "NOK",
"business_address": {"lines": ["Forusbeen 50"], "postal_code": "4035", "city": "STAVANGER"},
"advertising_protected": null,
"source": "Enhetsregisteret (Brønnøysundregistrene)", "license": "NLOD 2.0"
}
```
Abridged — the full `CompanyReport` also carries `previous_names`, `industry_codes`, `registers`, `purpose`, `parent_id`, `confidence`, `cached`, `fetched_at` and `notes`. Every field is documented in [`llms-full.txt`](static/llms-full.txt) §5.
`euid` is the EU-wide identifier some member-state registers publish (Finland does; none of ours do yet) — never the LEI, never constructed from parts. `advertising_protected` is `true`/`false`/`null`: whether the register marks this entity as protected against direct-marketing use, `null` meaning the register publishes no such flag at all (Norway and the UK, today); where it is `true` (Sweden's *reklamspärr*, for one), a `notes` sentence states it and that marking must travel with any contact details you pass on.
The United Kingdom, same shape, same abridgement:
```console
$ curl https://api.foretak.dev/v1/GB/company/00445790
{
"country": "GB", "registry": "companies-house",
"id": "00445790", "id_formatted": null, "id_scheme": "company number", "euid": null,
"name": "TESCO PLC",
"legal_form_code": "plc", "legal_form": "Public limited company",
"status": "active", "is_active": true, "registered_at": "1947-11-27",
"vat_registered": null, "vat_number": null,
"employees": null, "employees_reported": false,
"registers": {"charges": false, "insolvency": false},
"industry_codes": [{"code": "47110", "description": null, "scheme": "SIC 2007", "rank": 1}],
"business_address": {"lines": ["Tesco House, Shire Park", "Kestrel Way"], "postal_code": "AL7 1GA", "city": "Welwyn Garden City"},
"advertising_protected": null,
"published_deadlines": [
{"kind": "annual_accounts", "due_date": "2027-08-26", "period_end": "2027-02-26", "overdue": false, "source": "accounts.next_accounts.due_on"},
{"kind": "confirmation_statement", "due_date": "2027-07-02", "period_end": "2027-06-18", "overdue": false, "source": "confirmation_statement.next_due"}
],
"source": "Companies House (UK)", "license": "Crown copyright — Companies House public register, free to re-use"
}
```
`published_deadlines` carries the dates the register publishes itself, with the upstream field each came from. It is `[]` for Norway and Sweden, which compute all of their own.
Sweden, added in 0.3.0, is where "one shape" starts to earn the claim:
```console
$ curl https://api.foretak.dev/v1/SE/company/5560160680
{
"country": "SE", "registry": "bolagsverket",
"id": "5560160680", "id_formatted": "556016-0680", "id_scheme": "organisationsnummer", "euid": null,
"name": "Telefonaktiebolaget LM Ericsson",
"legal_form_code": "AB", "legal_form": "Private or public limited company", "legal_form_local": "Aktiebolag",
"status": "active", "is_active": true, "registered_at": "1918-08-19",
"vat_registered": nulWhat people ask about registry-mcp
What is foretak/registry-mcp?
+
foretak/registry-mcp is mcp servers for the Claude AI ecosystem. Company data for AI agents, any country. MCP server and REST API over national business registries: Norway (brreg / Enhetsregisteret), the United Kingdom (Companies House) and Sweden (Bolagsverket) — orgnr, company number or organisationsnummer lookup, VAT/deadline checks. It has 0 GitHub stars and its last recorded update is dated 2026-09-07.
How do I install registry-mcp?
+
You can install registry-mcp by cloning the repository (https://github.com/foretak/registry-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is foretak/registry-mcp safe to use?
+
Our security agent has analyzed foretak/registry-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains foretak/registry-mcp?
+
foretak/registry-mcp is maintained by foretak. The last recorded GitHub activity is dated 2026-09-07, with 3 open issues.
Are there alternatives to registry-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy registry-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/foretak-registry-mcp)<a href="https://claudewave.com/repo/foretak-registry-mcp"><img src="https://claudewave.com/api/badge/foretak-registry-mcp" alt="Featured on ClaudeWave: foretak/registry-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!