Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

registry-mcp — national company registries

PYPI · REGISTRY-MCP · 3 COMPONENTS · SCANNED SEP 21

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

−11 this week 64 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 10 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4301 tokens (~430/item across 10 items; 7 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
  • Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the registry-mcp — national company registries server?

registry-mcp — national company registries runs locally as a PyPI package, launched with uvx registry-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · registry-mcp

# add to Claude Code
claude mcp add foretak-registry-mcp -- uvx registry-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "foretak-registry-mcp": {
      "command": "uvx",
      "args": [
        "registry-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "foretak-registry-mcp": {
      "command": "uvx",
      "args": [
        "registry-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add foretak-registry-mcp -- uvx registry-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "foretak-registry-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "registry-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add foretak-registry-mcp --command uvx --arg registry-mcp
# ~/.hermes/config.yaml
mcp_servers:
  foretak-registry-mcp:
    command: "uvx"
    args: ["registry-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "foretak-registry-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "registry-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add foretak-registry-mcp -t stdio -c uvx -a registry-mcp
// mcp.json
{
  "mcpServers": {
    "foretak-registry-mcp": {
      "command": "uvx",
      "args": [
        "registry-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −15
    • Malware scan: pass → unverified security
  • 16 Sept 26 +16
    • Malware scan: unverified → pass security
  • 14 Sept 26 −14
    • Malware scan: pass → unverified security
  • 12 Sept 26 +16
    • Malware scan: unverified → pass security
  • 10 Sept 26 −14
    • Malware scan: pass → unverified security
    • Package version: 0.4.1 → 0.4.2 functional
  • 9 Sept 26 0
    • Tool safety: pass → unverified security
    • Stability: 0.13 → unverified security
    • Malware scan: pass → unverified security
    • Schema quality: 394 → 597 functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Package version: 0.3.0 → 0.4.1 functional
    • Package version: 0.3.0 → 0.4.0 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/registry-mcp@0.4.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 29 packages
Packages resolved 29
Stale 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 7 exposed · ~3,579 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
company_deadlines ~849

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 le…

NameTypeReqDescription
countrystringISO-3166-1 alpha-2 — NO Norway, GB United Kingdom, SE Sweden. UK is not a country code here and is rejected. Call list_countries for the live set.
idstringyesThe company's national identifier, normalised for you — a Norwegian organisasjonsnummer (orgnr), a Companies House company number (CRN), or a Swedish organisationsnummer or personnummer. Spaces, dots…
includearrayAttachment names that can change a *computed* deadline — narrower than lookup_company's include. Today only 'filings': one extra upstream request for the entity's filing history, supplying a real fin…
todayDate to compute deadlines from, YYYY-MM-DD; defaults to the server's current UTC date. Anything else is a bad_request naming the format.
NameTypeReqDescription
company_idstringyesCanonical national identifier the deadlines were computed for.
company_nameRegistered name, so the caller can echo it back to a user.
countrystringyesISO-3166-1 alpha-2, upper-case.
deadlinesarrayOne entry per obligation kind, always the next occurrence, sorted by due_date. An empty list is a real answer, not an error — read `notes` for why.
notesarrayCaveats to surface to the user, carried over from the company report: why the list is empty, an unclassified legal form, a status that suspends filing.
registrystringyesRegistry slug, e.g. 'brreg'.
rules_last_reviewedstringyesThe date this country's deadline rules — the statutes and their day-count arithmetic — were last checked against the law; a deadline computed long after this date should be re-verified before anyone…
todaystringyesThe date 'next occurrence' was computed from, inclusive. Echoed back so the answer is reproducible and an agent can tell a cached answer from a fresh one.

No examples provided.

fetch ~130

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

NameTypeReqDescription
idstringyesAn `id` from a `search` result: '{COUNTRY}:{identifier}', e.g. 'NO:923609016' or 'GB:00445790'.
NameTypeReqDescription
idstringyes
metadataobject
textstringyes
titlestringyes
urlstringyes

No examples provided.

list_countries ~135

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countriesarrayOne row per registry that can answer right now, sorted by country code.

No examples provided.

lookup_company ~1,264

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": {"c…

NameTypeReqDescription
countrystringISO-3166-1 alpha-2 — NO Norway, GB United Kingdom, SE Sweden. UK is not a country code here and is rejected. Call list_countries for the live set.
idstringyesThe company's national identifier, normalised for you — a Norwegian organisasjonsnummer (orgnr), a Companies House company number (CRN), or a Swedish organisationsnummer or personnummer. Spaces, dots…
includearrayAttachment names to fetch alongside the base report; empty by default, which costs exactly one upstream request. Each is a second, independent fetch attached at that name with its own provenance, nul…
NameTypeReqDescription
activityFree-text description of actual activity.
advertising_protectedWhether the register marks this entity as protected against direct-marketing use (Danish CVR-loven § 19 'reklamebeskyttelse', Swedish 'reklamspärr'). True: the register marks it. False: the register…
bankruptcy_dateDate bankruptcy was opened.
business_addressVisiting/registered office.
business_register_registered_atDate entered in the commercial/business register, where that is separate.
cachedbooleanTrue when served from our cache rather than a live fetch.
chargesRegistered charges (mortgages / security interests) against this entity. `None` unless `charges` was passed in `include=[...]` — and, even then, `None` if that fetch failed (see `notes` for which att…
confidencenumberHow sure we are this record is the entity the caller meant (D-005).
confidence_basisWhy that confidence, e.g. 'exact identifier lookup'.
countrystringyesISO-3166-1 alpha-2, upper-case, e.g. 'NO'.
deregistered_atDate the entity was deleted from the register.
emailContact email as registered.
employeesRegistered number of employees. None = not reported.
employees_reportedWhether the registry holds an employee figure at all (distinguishes 0 from unknown).
euidEuropean Unique Identifier (EUID, Commission Implementing Regulation (EU) 2021/1042 Article 9), where the register publishes one, e.g. Finland's 'FIFPRO.0112038-9'. None for a register that does not…
fetched_atUTC timestamp of the live fetch this record came from.
filingsWhat this entity has filed with its register, and when. `None` unless `filings` was passed in `include=[...]` — and, even then, `None` if that fetch failed (see `notes` for which attachment and why).…
financialsKey figures from this entity's filed annual accounts. `None` unless `financials` was passed in `include=[...]` — and, even then, `None` if that fetch failed (see `notes` for which attachment and why)…
founded_atIncorporation / foundation date.
has_annual_accounts_dutyTrue when this legal form must file annual accounts with the state.
has_board_dutyTrue when this legal form must have a registered board.
idstringyesCanonical national identifier, digits/letters only, no spaces or dots.
id_formattedThe identifier as a local would write it, e.g. '923 609 016'.
id_schemeName of the identifier scheme, e.g. 'organisasjonsnummer'.
in_business_registerListed in the commercial register (Norway: Foretaksregisteret).
in_groupPart of a corporate group.
industry_codesarrayIndustry classifications, primary first.
insolvencyInsolvency proceedings the register publishes against this entity. `None` unless `insolvency` was passed in `include=[...]`, or that fetch failed. A *present* block with `cases: []` means the registe…
is_activebooleanConvenience mirror of `status == active`, so agents need no enum table.
is_subunitbooleanTrue when this record is a branch/sub-unit, not a legal entity.
last_annual_accounts_yearMost recent financial year for which accounts were filed.
legal_formEnglish label, e.g. 'Private limited company'.
legal_form_codeNational legal-form code, e.g. 'AS', 'ASA', 'ENK'.
legal_form_localLocal label, e.g. 'Aksjeselskap'.
leiThis entity's Legal Entity Identifier record, from GLEIF — not a national register (D-026(c), D-045(e)). `None` unless `lei` was passed in `include=[...]` — and, even then, `None` if that fetch faile…
licenseLicence of the upstream data, e.g. 'NLOD 2.0'.
limited_liabilityTrue when owners are not personally liable for debts.
namestringyesCurrent registered name.
notesarrayCaveats an agent should surface to the user, plain English, one per item.
parent_idIdentifier of the parent/owning entity, if any.
parentsCorporate parents from GLEIF Level 2 — accounting consolidation, not shareholding (see `ParentBlock`'s own docstring). `None` unless `parents` was passed in `include=[...]` — and, even then, `None` i…
peppolWhether this entity can be reached over the Peppol e-invoicing network. `None` unless `peppol` was passed in `include=[...]` — and, even then, `None` only if the attachment could not be built at all…
phoneContact phone as registered.
postal_addressPostal address.
previous_namesarrayFormer registered names, newest first.
published_deadlinesarrayFiling dates the upstream register publishes for this entity itself, carried verbatim. Empty for a register that publishes none — most of them. This is the input `Registry.deadlines(report, today)` n…
purposeStatutory purpose / objects clause, joined into one string.
registered_atDate first entered in the central register.
registersobjectOther national sub-registers this entity is or is not in, keyed by a lower-case slug, e.g. {'stiftelsesregisteret': false}.
registrystringyesRegistry slug, e.g. 'brreg'.
sectorInstitutional sector description.
sector_codeInstitutional sector code.
share_capitalRegistered share capital.
share_capital_currencyISO-4217 code for `share_capital`.
sourceHuman-readable source name, e.g. 'Enhetsregisteret (brreg.no)'.
source_urlDirect URL of the upstream record, for citation.
statusstringNormalised lifecycle status.
status_detailOne sentence in English explaining the status and the flag it came from.
vat_numberVAT identifier if it differs from `id` (Norway: id + 'MVA').
vat_registeredRegistered for VAT (Norway: Merverdiavgiftsregisteret).
vat_registered_atDate of VAT registration.
websiteWebsite as registered.

No examples provided.

search ~108

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

NameTypeReqDescription
querystringyesA company name, a national identifier, or either plus a country.
NameTypeReqDescription
resultsarray

No examples provided.

search_company ~546

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.

NameTypeReqDescription
countrystringISO-3166-1 alpha-2 — NO Norway, GB United Kingdom, SE Sweden. UK is not a country code here and is rejected. Call list_countries for the live set.
limitintegerMaximum hits to return, 1-100; default 10. Outside that range is a bad_request, not a silent clamp.
namestringyesCompany name to search for, free text — not an identifier. Use lookup_company once you have the id of the right hit.
NameTypeReqDescription
cachedbooleanServed from cache.
countrystringyesISO-3166-1 alpha-2, upper-case.
fetched_atUTC timestamp of the fetch.
hintWhat to do next, e.g. 'call lookup_company with the id of the right hit'.
hitsarrayBest matches, best first: always sorted by `confidence` descending. Hits that score equally keep the order the upstream register returned them in.
querystringyesThe name that was searched for.
registrystringyesRegistry slug.
totalintegerTotal matches upstream, which may exceed len(hits).
truncatedbooleanTrue when `total` exceeds the returned hits.

No examples provided.

validate_company_id ~547

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

NameTypeReqDescription
countrystringISO-3166-1 alpha-2 — NO Norway, GB United Kingdom, SE Sweden. UK is not a country code here and is rejected. Call list_countries for the live set.
idstringyesThe company's national identifier, normalised for you — a Norwegian organisasjonsnummer (orgnr), a Companies House company number (CRN), or a Swedish organisationsnummer or personnummer. Spaces, dots…
NameTypeReqDescription
countrystringyesISO-3166-1 alpha-2, upper-case.
formattedThe identifier as a local would write it, e.g. '923 609 016'. None when invalid.
hintWhat to do next when `valid` is false — the same hint the invalid_id error carries. None when valid: the next call is simply lookup.
id_schemeName of the identifier scheme, e.g. 'organisasjonsnummer'.
inputstringyesThe identifier exactly as the caller supplied it.
normalizedCanonical form to pass to lookup, e.g. '923609016'. None when invalid.
reasonOne English sentence saying why it is valid, or what failed.
registrystringyesRegistry slug, e.g. 'brreg'.
validbooleanyesTrue when the identifier passes this country's format and checksum.

No examples provided.

Common questions

What is the registry-mcp — national company registries server?

registry-mcp — national company registries is listed in the public MCP registry as io.github.foretak/registry-mcp. The company registry MCP: brreg orgnr, Companies House, Bolagsverket organisationsnummer. This page covers its PyPI package (registry-mcp).

Is the registry-mcp — national company registries server safe to use?

registry-mcp — national company registries scores 64 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the registry-mcp — national company registries server expose?

registry-mcp — national company registries exposes 7 tools: lookup_company, search_company, company_deadlines, validate_company_id, list_countries, and 2 more. Their descriptions and schemas cost roughly 3,579 tokens of context every time the server is loaded.

Is the registry-mcp — national company registries server still maintained?

registry-mcp — national company registries is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the registry-mcp — national company registries server under?

registry-mcp — national company registries declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.