io.github.foretak/registry-mcp

registry-mcp — national company registries

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

0.4.2
Version
remote + pypi + npm
Transport
7
Tools

Security review

Review passed

Reviewed 1d ago.

  • tools: 7 tools scanned
  • metadata: scanned
  • packages: 2 checked

No findings.

Tools (7)

  • 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 administratio

  • 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_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

  • 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 te

  • 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.

  • 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`.

  • 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`.