# OpenRegistry

> A free remote MCP server giving AI agents real-time access to national company registries — 30 jurisdictions wired in (27 with full `get_company_profile` coverage, 3 search-only). UK Companies House, Germany Handelsregister, France Sirene+RNE, Italy InfoCamere via EU BRIS, Spain BORME, Korea OPENDART, plus 24 more. Every tool call is a live query against the upstream government API.

OpenRegistry exposes 27 JSON-RPC tools and 10 named-prompt workflows over [MCP](https://modelcontextprotocol.io/) Streamable HTTP. Responses are returned **unmodified** — every field name, status string, and raw filing byte preserved verbatim. Identifiers in every response are resolvable back to the government's own portal.

## Endpoints

- [MCP server (Streamable HTTP)](https://openregistry.sophymarine.com/mcp): the JSON-RPC entrypoint. POST with `{"method":"tools/list"}` to discover the live tool schemas, or `{"method":"prompts/list"}` for named workflows. MCP spec 2025-06-18.
- [Docs index](https://openregistry.sophymarine.com/docs/): human-readable per-tool and per-jurisdiction reference pages.
- [OAuth metadata](https://openregistry.sophymarine.com/.well-known/oauth-protected-resource): RFC 9728 protected-resource document — clients use this to discover the authorization server (only needed for paid tiers).
- [Sitemap](https://openregistry.sophymarine.com/sitemap.xml): structured URL index for crawlers.
- [GitHub docs repo](https://github.com/sophymarine/openregistry): CC-BY-4.0 docs + the 40-skill skillpack.

## Pricing tiers

Higher tiers only buy throughput and cross-border fan-out — every tier returns the same unmodified upstream data, no fields or jurisdictions are paywalled (the one exception is `KY` Cayman, which is paid-tier-only across the board, and the statutorily restricted BO registers listed below — neither tier nor money unlocks those).

- **Anonymous** — Free, no signup. 20 req/min/IP. Cross-border fan-out 3 countries / 60s. Works out of the box: paste the MCP URL into Claude Desktop / Claude Code / Cursor / Cline / Goose / Zed.
- **Free (signed in)** — Free, signup via passwordless email magic link. 30 req/min/user. Cross-border fan-out 3 countries / 60s. Per-user limits replace per-IP limits.
- **Pro** — $9/month, Stripe. 180 req/min/user. Cross-border fan-out 10 countries / 60s. For batch onboarding and multi-country dossiers.
- **Max** — $29/month, Stripe. 900 req/min/user. Cross-border fan-out 30 countries / 60s. For agentic workflows that fan out heavily.
- **Enterprise** — Contact (custom contract). 3000 req/min/user, unlimited cross-border fan-out. Adds pre-synthesised `source_url` / `registry_url` / `data_license` fields to every response for one-click audit-trail in compliance reports.

## Authentication

OAuth 2.1 with **Dynamic Client Registration** ([RFC 7591](https://datatracker.ietf.org/doc/html/rfc7591)) — no API keys, no pre-shared client IDs. The flow is:

1. Anonymous tier requires no auth at all — just POST to `/mcp`.
2. For higher tiers, the MCP client (Claude, Cursor, etc.) auto-registers itself as an OAuth client on first use.
3. The user signs in via passwordless email magic link.
4. The client stores access + refresh tokens; refresh is automatic.

## Tools (27)

- [`list_jurisdictions`](https://openregistry.sophymarine.com/docs/tools/list_jurisdictions): Per-country schema reference and cross-country tool-support matrix for every national company registry OpenRegistry covers.
- [`about`](https://openregistry.sophymarine.com/docs/tools/about): Server-level metadata: version, supported jurisdictions, tool catalogue, pricing summary, rate limits, data licenses.
- [`search_companies`](https://openregistry.sophymarine.com/docs/tools/search_companies): Search any of 27 national company registries by name or structured filters. Single-country or multi-country fan-out.
- [`search_companies_near_point`](https://openregistry.sophymarine.com/docs/tools/search_companies_near_point): Geospatial company search: all companies within N km of a lat/lng point (FR only).
- [`count_companies`](https://openregistry.sophymarine.com/docs/tools/count_companies): Return only the total count matching a company search, without fetching the records. IE only.
- [`search_officers`](https://openregistry.sophymarine.com/docs/tools/search_officers): Find people who hold officer positions (director, secretary, partner) by name across a registry.
- [`search_addresses`](https://openregistry.sophymarine.com/docs/tools/search_addresses): Resolve a free-text Czech address against RÚIAN. Returns normalised address + kodObce / kodAdresnihoMista.
- [`search_specialised_records`](https://openregistry.sophymarine.com/docs/tools/search_specialised_records): Fetch raw records from one ARES source register in a single call, optionally filtered by IČO list. CZ only.
- [`get_company_profile`](https://openregistry.sophymarine.com/docs/tools/get_company_profile): Structured profile of a company by its registry-specific ID — unified fields + raw upstream under jurisdiction_data.
- [`get_specialised_record`](https://openregistry.sophymarine.com/docs/tools/get_specialised_record): Retrieve a single record from a non-company register — CZ source registers, FR associations, NZ FSPR, etc.
- [`list_establishments`](https://openregistry.sophymarine.com/docs/tools/list_establishments): All establishment / branch units attached to a parent company (BE KBO vestigingen, FR établissements).
- [`list_actos_inscritos`](https://openregistry.sophymarine.com/docs/tools/list_actos_inscritos): Scan Spanish BORME Section I/B province PDFs for every acto inscrito matching a denominación — directors, constitución, dissolution, capital changes.
- [`list_filings`](https://openregistry.sophymarine.com/docs/tools/list_filings): Company filing history with normalised categories (accounts, annual-return, officers, PSC, charges) + optional document_id round-trip.
- [`get_financials`](https://openregistry.sophymarine.com/docs/tools/get_financials): Annual-accounts filings for a company, normalised with period_end + document_id + source_url.
- [`get_officers`](https://openregistry.sophymarine.com/docs/tools/get_officers): Directors, secretaries, partners, board members — current + (by default) historical resignations.
- [`get_officer_appointments`](https://openregistry.sophymarine.com/docs/tools/get_officer_appointments): Every company an officer has been appointed to — the cross-company tracing endpoint.
- [`get_persons_with_significant_control`](https://openregistry.sophymarine.com/docs/tools/get_persons_with_significant_control): Beneficial owners (PSC / UBO) — persons on the statutory control threshold register (>25%).
- [`get_shareholders`](https://openregistry.sophymarine.com/docs/tools/get_shareholders): Statutory shareholder / quota-holder / member register — distinct from PSC / UBO.
- [`get_charges`](https://openregistry.sophymarine.com/docs/tools/get_charges): Registered charges — mortgages, debentures, liens, secured debt on the company's assets.
- [`get_document_metadata`](https://openregistry.sophymarine.com/docs/tools/get_document_metadata): Available content formats / sizes / page count for a specific filing document.
- [`fetch_document`](https://openregistry.sophymarine.com/docs/tools/fetch_document): Download the raw filed document — PDF / XHTML iXBRL / XML / base64 inline.
- [`get_document_navigation`](https://openregistry.sophymarine.com/docs/tools/get_document_navigation): Outline / bookmarks / section headings for large PDFs, plus a recommended fetch plan.
- [`search_document`](https://openregistry.sophymarine.com/docs/tools/search_document): Full-text search inside a specific filing document for a phrase — returns matching pages.
- [`fetch_document_pages`](https://openregistry.sophymarine.com/docs/tools/fetch_document_pages): Return specific pages of a PDF (format: pdf / xhtml / images). Avoids exceeding the agent's context window.
- [`check_name_availability`](https://openregistry.sophymarine.com/docs/tools/check_name_availability): Probe whether a proposed company name is available to register on the Isle of Man Companies Registry.
- [`list_change_batches`](https://openregistry.sophymarine.com/docs/tools/list_change_batches): Czech ARES notifikace — recent change-batch feed of every IČO inserted / updated / deleted in a period. CZ only.
- [`get_code_description`](https://openregistry.sophymarine.com/docs/tools/get_code_description): Resolve a registry code-list entry to a human-readable description (FI YRMU, CZ PravniForma, CH legalForm, etc.).

## Prompts — named workflows surfaced via MCP `prompts/list` (10)

- [`kyc_cross_border_due_diligence`](https://openregistry.sophymarine.com/docs/prompts/kyc_cross_border_due_diligence): Full statutory dossier on one prompt: profile, directors, UBO, shareholders, charges, latest accounts — across 27 national registries.
- [`ubo_cross_border_chain_walker`](https://openregistry.sophymarine.com/docs/prompts/ubo_cross_border_chain_walker): Unmask the real person behind any company. Walk ownership chains across jurisdictions until you reach the natural person.
- [`director_search_pep_screening`](https://openregistry.sophymarine.com/docs/prompts/director_search_pep_screening): Map every company a person has been a director of across government registers; flag serial resignations and overlapping directorships.
- [`live_company_accounts_xbrl`](https://openregistry.sophymarine.com/docs/prompts/live_company_accounts_xbrl): Pull the most recent statutory financial statements for any company — iXBRL / XHTML / PDF bytes directly from the registry.
- [`corporate_filing_monitor`](https://openregistry.sophymarine.com/docs/prompts/corporate_filing_monitor): Poll a watchlist of companies for new filings; surface material events like director changes, capital changes, liquidation, charges.
- [`global_company_name_availability`](https://openregistry.sophymarine.com/docs/prompts/global_company_name_availability): Check whether a proposed company name is free to register across N jurisdictions simultaneously.
- [`industry_competitor_search`](https://openregistry.sophymarine.com/docs/prompts/industry_competitor_search): Enumerate every company in a given SIC / NACE / TOL industry code across 27 national registries.
- [`shell_company_detector`](https://openregistry.sophymarine.com/docs/prompts/shell_company_detector): Flag 1-director + no-accounts + overseas-office shells using live government-registry signals.
- [`phoenix_company_radar`](https://openregistry.sophymarine.com/docs/prompts/phoenix_company_radar): Detect dissolved-then-reborn fraud patterns — same director + same address, new entity.
- [`sector_gatekeeper_list`](https://openregistry.sophymarine.com/docs/prompts/sector_gatekeeper_list): Every CIMA / FCA / BaFin / FSS-licensed regulated entity in a sector, listed from the government register.

## Jurisdictions (30)

Sorted by ISO code. **PAID** = the entire jurisdiction is gated to Pro/Max/Enterprise tiers (anonymous + Free tiers receive HTTP 402). All other jurisdictions are accessible on every tier.

- [`AU` Australia](https://openregistry.sophymarine.com/docs/jurisdictions/au): **ABR · ABN Lookup** · 2 tools
- [`BE` Belgium](https://openregistry.sophymarine.com/docs/jurisdictions/be): **KBO / BCE** · 4 tools
- [`CA` Canada (federal)](https://openregistry.sophymarine.com/docs/jurisdictions/ca): **Corporations Canada** · 5 tools
- [`CA-BC` Canada — British Columbia](https://openregistry.sophymarine.com/docs/jurisdictions/ca-bc): **OrgBook BC** · 2 tools
- [`CA-NT` Canada — Northwest Territories](https://openregistry.sophymarine.com/docs/jurisdictions/ca-nt): **CROS-RSEL** · 1 tools
- [`CH` Switzerland](https://openregistry.sophymarine.com/docs/jurisdictions/ch): **Zefix** · 4 tools
- [`CY` Cyprus](https://openregistry.sophymarine.com/docs/jurisdictions/cy): **DRCOR** · 2 tools
- [`CZ` Czechia](https://openregistry.sophymarine.com/docs/jurisdictions/cz): **ARES** · 10 tools
- [`DE` Germany](https://openregistry.sophymarine.com/docs/jurisdictions/de): **Handelsregister** · 7 tools
- [`ES` Spain](https://openregistry.sophymarine.com/docs/jurisdictions/es): **BORME** · 7 tools
- [`FI` Finland](https://openregistry.sophymarine.com/docs/jurisdictions/fi): **PRH · YTJ** · 8 tools
- [`FR` France](https://openregistry.sophymarine.com/docs/jurisdictions/fr): **Sirene + RNE** · 3 tools
- [`GB` United Kingdom](https://openregistry.sophymarine.com/docs/jurisdictions/gb): **Companies House** · 11 tools
- [`HK` Hong Kong](https://openregistry.sophymarine.com/docs/jurisdictions/hk): **公司註冊處 · CR** · 2 tools
- [`IE` Ireland](https://openregistry.sophymarine.com/docs/jurisdictions/ie): **CRO** · 4 tools
- [`IM` Isle of Man](https://openregistry.sophymarine.com/docs/jurisdictions/im): **IoM Companies Registry** · 4 tools
- [`IS` Iceland](https://openregistry.sophymarine.com/docs/jurisdictions/is): **Fyrirtækjaskrá** · 8 tools
- [`IT` Italy](https://openregistry.sophymarine.com/docs/jurisdictions/it): **Registro Imprese · BRIS** · 2 tools
- [`KR` South Korea](https://openregistry.sophymarine.com/docs/jurisdictions/kr): **OPENDART · 전자공시** · 8 tools
- [`KY` Cayman Islands](https://openregistry.sophymarine.com/docs/jurisdictions/ky): **CIMA** · 2 tools — **PAID-tier only (anonymous + Free → 402)**
- [`LI` Liechtenstein](https://openregistry.sophymarine.com/docs/jurisdictions/li): **Liechtenstein HR** · 3 tools
- [`MC` Monaco](https://openregistry.sophymarine.com/docs/jurisdictions/mc): **RCI Monaco** · 7 tools
- [`MX` Mexico](https://openregistry.sophymarine.com/docs/jurisdictions/mx): **PSM** · 4 tools
- [`MY` Malaysia](https://openregistry.sophymarine.com/docs/jurisdictions/my): **SSM** · 2 tools
- [`NL` Netherlands](https://openregistry.sophymarine.com/docs/jurisdictions/nl): **KVK** · 3 tools
- [`NO` Norway](https://openregistry.sophymarine.com/docs/jurisdictions/no): **Brreg · Brønnøysund** · 4 tools
- [`NZ` New Zealand](https://openregistry.sophymarine.com/docs/jurisdictions/nz): **NZ Companies Office** · 9 tools
- [`PL` Poland](https://openregistry.sophymarine.com/docs/jurisdictions/pl): **KRS** · 7 tools
- [`RU` Russia](https://openregistry.sophymarine.com/docs/jurisdictions/ru): **ЕГРЮЛ · ФНС** · 7 tools
- [`TW` Taiwan](https://openregistry.sophymarine.com/docs/jurisdictions/tw): **GCIS · 商工登記** · 5 tools

## Statutorily restricted registers

Some BO registers are not legally accessible to non-AML-obliged third parties. OpenRegistry does *not* proxy these — `get_persons_with_significant_control` returns HTTP 501 with an `alternative_url` pointing at the statutory portal. This is a *statutory* limitation, not a tier gate; even Enterprise tier does not bypass these registers.

### CJEU C-37/20 (EU, since November 2022)

After [CJEU C-37/20](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A62020CJ0037), the BO registers in these EU jurisdictions became access-restricted to AML-obliged entities:

- **DE** — Transparenzregister
- **ES** — Registro de Titulares Reales
- **IT** — Registro dei Titolari Effettivi
- **NL** — UBO-register at KVK
- **LU** — Registre des Bénéficiaires Effectifs (RBE)
- **AT** — Wirtschaftliche Eigentümer Register (WiEReG)
- **MT** — Beneficial Owner Register
- **PT** — Registo Central do Beneficiário Efetivo (RCBE)

### Other restricted regimes (separate from CJEU)

- **KY** — [Cayman Beneficial Ownership Transparency Act 2023](https://www.gov.ky/) (BOTA, in force 2024). UK-style legitimate-interest regime — separate from CJEU. The whole `KY` jurisdiction is also paid-tier only; anonymous + Free tiers receive HTTP 402.
- **HK** — Significant Controllers Register (SCR) is on-site-inspection-only, not API-queryable.
- **MY** — RBO is restricted to AML-obliged entities.

Use the `alternative_url` field on the 501 response to identify the AML-obliged-entity channel.

## Examples

Real prompts that drive multi-tool, multi-jurisdiction workflows:

- "Walk Revolut Ltd's PSC chain across borders until you reach individuals or AML gates."
- "Pull Tesco PLC (GB / 00445790) — directors + PSCs + last 5 filings."
- "For Samsung Electronics, get the latest annual disclosure from OpenDART and extract the major shareholders."
- "Find every UK company a person named 'Andrew Smith' is or has been a director of."
- "Check if 'Acme Holdings' is available to register on the Isle of Man Companies Registry."
- "Search the Spanish BORME for any actos inscritos mentioning Inditex SA in the last 90 days."

## Claude Agent Skills (40 ready-to-drop)

Drop into `.claude/skills/` — Claude Code auto-indexes every `SKILL.md`. 10 cross-border workflows + 30 single-jurisdiction lookups (one per registry).

- [Skillpack overview](https://github.com/sophymarine/openregistry/tree/main/skills): the canonical list, CC-BY-4.0.
- [Cross-Border UBO Chain Walker](https://github.com/sophymarine/openregistry/tree/main/skills/ubo-cross-border-chain-walker): the flagship multi-jurisdiction UBO trace.
- [KYC & Cross-Border Due Diligence](https://github.com/sophymarine/openregistry/tree/main/skills/kyc-cross-border-due-diligence): full statutory dossier in one prompt.

## Connect

Paste the MCP URL into your client's settings:

- **Claude Desktop**: `Settings → Connectors → Add custom connector → https://openregistry.sophymarine.com/mcp`.
- **Claude Code**: `claude mcp add --transport http OpenRegistry https://openregistry.sophymarine.com/mcp`.
- **Cursor**: in `~/.cursor/mcp.json` add `{"mcpServers": {"openregistry": {"url": "https://openregistry.sophymarine.com/mcp"}}}`.
- **Cline / Goose / Zed / any MCP-compatible client**: same URL, transport `streamable-http`.

## Optional

- [llms-full.txt](https://openregistry.sophymarine.com/llms-full.txt): the same manifest **plus** full per-tool and per-jurisdiction details inlined as markdown — for AI clients that want everything in a single GET.
- [Privacy policy](https://openregistry.sophymarine.com/privacy)
- [Terms](https://openregistry.sophymarine.com/terms)
