mcpbeat Sign in

registry-mcp — national company registries MCP Server

answering

registry-mcp — national company registries is answering right now. Last checked 3 min ago. 664 installs a week from pypi. It exposes 7 tools. Last commit 10 Sep 2026.

The company registry MCP: brreg orgnr, Companies House, Bolagsverket organisationsnummer.

Installs per day peak 269 · avg 10
a month agotoday
Uptime history 14 days of history
14 days agonow
100.0%
Uptime 24h
92 of 92 checks
7
Tools
read from the server
237 ms
Response time
average over 24h
664
Installs / week
npm and PyPI

What changed 39

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 5 September 2026. No other catalogue keeps this.

10 Sep a tool changed version
10 Sep a tool description was rewritten company_deadlines
9 Sep 7 tool descriptions were rewritten9 times that day company_deadlines, fetch, list_countries and 4 more
9 Sep 5 tools changed the parameters they ask for9 times that day company_deadlines, lookup_company, search and 2 more
9 Sep a tool changed version2 times that day
8 Sep a tool changed the parameters it asks for2 times that day lookup_company
8 Sep a tool description was rewritten2 times that day lookup_company
7 Sep 5 tool descriptions were rewritten company_deadlines, lookup_company, search and 2 more
7 Sep a tool changed version
5 Sep 4 tools changed the parameters they ask for company_deadlines, lookup_company, search_company and 1 more
and 12 more, back to 5 September 2026

What the code does

We read the source, 21 h ago · tools taken from the live server · rules 3dff92dd89df

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add registry-mcp --transport http https://api.foretak.dev/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "registry-mcp": {
      "url": "https://api.foretak.dev/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.registry-mcp]
url = "https://api.foretak.dev/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "registry-mcp": {
      "url": "https://api.foretak.dev/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "registry-mcp": {
      "url": "https://api.foretak.dev/mcp"
    }
  }
}

This one needs environment variables set before it will start: REGISTRY_MCP_CONTACT_EMAIL (Contact address sent in the User-Agent to the national registry, as Brønnøysundregistrene asks of API clients. Unset means an anonymous client, which may be blocked upstream.), COMPANIES_HOUSE_API_KEY (Companies House REST API key, required for the United Kingdom (GB). Free from developer.company-information.service.gov.uk. Unset means GB lookups return an upstream_error naming this variable; every other country still answers.), BOLAGSVERKET_CLIENT_ID (Bolagsverket OAuth 2 client id, required for Sweden (SE) together with BOLAGSVERKET_CLIENT_SECRET. Free, no contract: request both from Bolagsverket's kundanmälan form. Unset means SE lookups return an upstream_error naming both variables; every other country still answers.), BOLAGSVERKET_CLIENT_SECRET (Bolagsverket OAuth 2 client secret, the other half of BOLAGSVERKET_CLIENT_ID. Both are needed before Sweden (SE) can answer.), BOLAGSVERKET_ENVIRONMENT (Which Bolagsverket environment the Swedish credentials belong to: 'production' (default) or 'test'. It selects the data host and the token host as a pair, so the two can never be mixed.). The author declared them in the registry entry; get the values from the project itself.

Available tools 7

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

company
company_deadlines
Give the next occurrence of each statutory filing deadline a company faces. `country="NO"` covers the Norwegian calendar (Regnskapsregisteret, Skatteetaten) for a company looked up by organisasjonsnummer (orgnr, org.nr) in Brønnøysundregistrene / Enhetsregisteret (brreg): årsregnskap, generalforsamling, skattemelding, aksjonærregisteroppgaven, mva-melding, a-melding. `country="GB"` covers the two Companies House obligations for a company number (CRN): the annual accounts filing and the confirmation statement (CS01). `country="SE"` covers the two Swedish obligations of an aktiebolag (AB) or ekonomisk förening (EK) looked up by organisationsnummer at Bolagsverket: the ordinary general meeting (ordinarie bolagsstämma / årsstämma) at six months from the financial year end, and the annual report (årsredovisning) at seven, where the late-filing fee (förseningsavgift) begins. Pass `today` (`YYYY-MM-DD`) for a reproducible answer; it defaults to the server's current UTC date. Quote `due_date`, not `statutory_date`, and quote each deadline's `applies_because` rather than presenting a date as unconditional fact — that sentence carries the legal form or flag the date rests on, its statute, any assumption still in it, and for the UK whether it is Companies House's own figure or one computed here. `days_until` goes negative for a filing Companies House still shows as overdue. Swedish dates assume a financial year ending 31 December unless you pass `include=["filings"]`, which substitutes the year end of the last filed annual report where Bolagsverket's document list holds one; the filing date is an outer limit regardless, since a company whose general meeting was earlier must file earlier. An empty `deadlines` list is a real answer — a bankrupt, deleted or compulsorily-liquidated entity, a branch/sub-unit, or any company whose status is not active — and `notes` explains why. `registry://rules/{country}` carries each country's full deadline rules, roll-forward treatment and legal sources. `rules_last_reviewed` names the date this country's statutes and day-count arithmetic were last checked against the law — a deadline computed long after that date should be re-verified before anyone acts on it. Errors are the `{"error": {"code", "message", "hint"}}` envelope this server's instructions set out code by code; `hint` names the next call. This tool looks the entity up first, so any `lookup_company` error code can surface here too.
search_company
Search a national company register by name, when you have a name rather than an identifier. `country="NO"` searches Brønnøysundregistrene / Enhetsregisteret (brreg) — the norway company lookup for the norwegian business registry when the organisasjonsnummer (orgnr, org.nr) is not yet known; `country="GB"` is the uk company search at Companies House, returning each hit's company number (company registration number, CRN). **Sweden cannot be searched by name.** Bolagsverket's free API has four operations and none takes a company name, so `country="SE"` raises `not_implemented` — a fact about the register, not a temporary gap, and it will not start working. Sweden supports lookup by identifier only: call `lookup_company` with the ten-digit organisationsnummer (or a sole trader's twelve-digit personnummer), or `validate_company_id` first to check the shape for free. Bolagsverket publishes the whole register as bulk downloadable files for callers who must search by name. Then call `lookup_company` with the `id` of the right hit for the full report — a search hit is deliberately thin (name, legal form, status, city) and must not be acted on directly. Hits arrive in the register's own relevance order, so read each hit's `confidence` rather than assuming the first row is best. Zero hits is not an error, and `hint` says what to try next — Norwegian names are registered upper-case and often carry an 'AS', 'ASA' or 'NUF' suffix, UK names a 'LIMITED', 'LTD', 'PLC' or 'LLP' one, worth dropping before concluding a company does not exist. Errors are the `{"error": {"code", "message", "hint"}}` envelope this server's instructions set out code by code; `hint` names the next call. Call `list_countries` if you are unsure a country is supported.
countries
list_countries
List every national company registry this service can answer for right now, with each one's identifier scheme, source URL, licence, `supported_includes`, and whether the upstream register needs a credential (`requires_api_key`, `api_key_env`). Call it before your first lookup in a country you have not used here, whenever a user names a country you are unsure of, or before guessing an `include` value — never hard-code a country list of your own, since it grows as modules are added. Stub modules are hidden; only registries that actually answer are listed. No error mode.
fetch
fetch
ChatGPT connector alias; other clients should prefer `lookup_company` plus `company_deadlines`, which return the CompanyReport and DeadlineReport shapes directly. Takes one `id` from `search` — "{COUNTRY}:{identifier}", e.g. "NO:923609016" — and returns that company's register record and statutory filing deadlines as readable text, both full JSON documents in `metadata`.
lookup
lookup_company
Look up a company by its national identifier and get the full CompanyReport — legal form, status, address, VAT registration where the register publishes it, board and accounts duties, employees, and more. `country="NO"` is the norway company lookup for the norwegian business registry: Brønnøysundregistrene / Enhetsregisteret (brreg), by organisasjonsnummer (orgnr, org.nr). `country="GB"` is the uk company lookup at Companies House, by company number (company registration number, CRN) — "UK" is not a country code here. `country="SE"` is the swedish company lookup at Bolagsverket, by organisationsnummer or a sole trader's (enskild näringsidkare) personnummer, and by identifier only, since Bolagsverket's free API has no name search. `include=[...]` attaches seven second fetches, each with its own provenance and `null` unless you ask: `filings` (filing history — do they file, and on time), `charges` (registered mortgages and security interests), `insolvency` (winding-up and administration), `financials` (annual accounts — turnover, operating result, profit, balance sheet: the solvency question), `lei` (the GLEIF Legal Entity Identifier), `parents` (direct and ultimate parent — this entity's group — from GLEIF) and `peppol` (whether an e-invoice would reach them, ahead of Norway's 1 January 2027 EHF duty). The `include` argument explains each: what it returns, which countries declare it, how to read its nulls. Use it once you have the identifier — from the user, an invoice, a contract, or a `search_company` hit's `id`. Read the returned `notes` before acting: it carries caveats such as bankruptcy, dissolution, a deleted entity, an unclassified legal form, or an attachment whose own fetch failed. This tool does not perform sanctions, PEP or adverse-media screening, and it does not verify bank account details — it returns identity and filing data from the national register only, never a compliance clearance or a confirmed payment detail. Errors are the `{"error": {"code", "message", "hint"}}` envelope this server's instructions set out code by code (D-007); `hint` names the next call. A failed *attachment* fetch is not one of them: the base report still comes back, that block is left `null`, and `notes` says which attachment failed and why.
search
search
ChatGPT connector alias; other clients should prefer `search_company`, which takes an explicit `country` and returns the full SearchResult. One free-text query — a name, an identifier, or either plus a country — across Norway, the United Kingdom and Sweden. Returns {"results": [{"id", "title", "url"}]}; pass a result's `id` to `fetch`.
validate
validate_company_id
Check whether a national company identifier is well-formed — no network call. `country="NO"` checksum-checks a Norwegian organisasjonsnummer (orgnr, org.nr) for Brønnøysundregistrene / Enhetsregisteret (brreg) — the cheap norway company lookup pre-check for the norwegian business registry. `country="GB"` shape-checks and normalises a UK company number (company registration number, CRN) for Companies House ('445790' → '00445790', 'oc303675' → 'OC303675'); a CRN has no check digit, so a GB `valid: true` means the shape is right and nothing more. `country="SE"` shape-checks and normalises a Swedish organisationsnummer for Bolagsverket ('556016-0680' and 'SE556016068001' both become '5560160680') and accepts a sole trader's twelve-digit personnummer; Sweden's check digit is **not** enforced here (`registry://rules/SE` says why), so an `SE` `valid: true` means the shape is right, `reason` may carry a caveat, and the register's own verdict arrives on the lookup. It is the cheapest way to tell a ten-digit Swedish organisationsnummer from a nine-digit Norwegian organisasjonsnummer. Use it on user input or a spreadsheet column before spending a real `lookup_company` call, since it is instant and free. Returns a ValidationResult and never raises for a malformed identifier: `valid: false` comes with `reason` and `hint` rather than a tool error — this tool answers a question, it does not fail on bad input (D-010). A valid identifier does not mean the entity exists; follow it with `lookup_company` if you need facts. The only error it raises is `unsupported_country`, in the usual `{"error": {"code", "message", "hint"}}` envelope — call `list_countries`.

Endpoints

URLTransportStateLatencyChecked
https://api.foretak.dev/mcp streamable-http answering 229 ms 3 min ago

Alternatives to registry-mcp — national company registries

same job, measured the same way
Companies House
by pipeworx-io

Companies House MCP — UK statutory company registry (BYO key)

36 tools answering
Eu Registry
by cz-agents

EU company registry lookup across 16 countries incl. Sweden Bolagsverket.

141 installs/wk 3 tools answering
Georgia Person → Companies Search (Reestri)
by sosopkhakadze

Georgia registry reverse search: person or organisation → all companies and roles.

answering
Hk Companies
by pipeworx-io

Hong Kong Companies Registry open data — company/BR-number search, new registrations & name changes

35 tools answering
CNEP (Empresas Punidas)
by mcp-dir

Checks whether a person or company is in the National Register of Punished Companies (CNEP) from the

7 tools answering
MCP Krs
by matematicsolutions

MCP server for the Polish KRS company registry via the official Ministry of Justice API.

36 installs/wk local only
Georgia Heritage
by pipeworx-io

Georgia (the country) — National Register of Immovable Cultural Heritage.

36 tools answering
CAF Agricultura Familiar PJ
by mcp-dir

Looks up the National Family Farming Registry (CAF) of a company from the CNPJ. Platform-hosted, no

7 tools answering

registry-mcp — national company registries — questions

Answers built from our own checks of this server.

What can registry-mcp — national company registries do?
It exposes 7 tools, read directly from the server on our last check. Among them: company_deadlines, fetch, list_countries, lookup_company, search, search_company and 1 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is registry-mcp — national company registries working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 237 ms. The bar chart above shows every period we have measured.
How do I connect registry-mcp — national company registries?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does registry-mcp — national company registries need an API key?
No. registry-mcp — national company registries completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 7 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is registry-mcp — national company registries?
It answers our handshake in 237 ms on average, which is faster than 59% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use registry-mcp — national company registries?
The npm package registry-mcp was installed 664 times in the last week. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is registry-mcp — national company registries open source?
Yes — it is published under the MIT licence, written in Python, 0 stars on GitHub and 3 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.