
Openregistry
io.github.sophymarinePublished by GitHub account sophymarinev3.0.0Updated Oct 24, 2026
Live data from 80+ official national company registries. Unmodified. For KYB and due diligence.
Overview
Remote MCP server giving assistants live, unmodified company-registry data from 80+ national government registries for KYB and due diligence.
- What you can do
- Search companies by name within a chosen jurisdiction and retrieve profiles
- Look up officers, shareholders, persons with significant control, charges and filings
- Fetch financial statements and raw filing documents (iXBRL, XBRL, PDF) as bytes
- Run cross-border ownership-chain and due-diligence workflows via built-in prompts
- When to use it
- Useful when an assistant needs verifiable company data straight from official registries: KYC/KYB checks, beneficial-ownership and shareholder research, director screening, or pulling statutory accounts and filings across several countries in one conversation.
- Requirements
- A remote MCP endpoint over Streamable HTTP; no local package or runtime. Authentication is OAuth 2.1 with dynamic client registration, so no API key is pasted. A free tier exists; paid keys raise quota and depth. Network access to the hosted endpoint is required.
Installation
In SourceWeft
- Open Openregistry in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.sophymarine%2Fopenregistry/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"openregistry": {
"type": "http",
"url": "https://openregistry.sophymarine.com/mcp"
}
}
}README
OpenRegistry - the world's first MCP and API for live company filings directly from official government registries worldwide
[Official MCP Registry] [Glama Score] [Cursor Directory] [PulseMCP] [Smithery] [Follow @sophymarine on X] [License: Apache 2.0]
Real-time direct access to unmodified data and raw filings of about 80+ official government registries via MCP.
Tools: search companies, get profiles, officers, shareholders, charges, filings, and financial-statement documents.
Covers UK Companies House, Ireland CRO, France RNE, Spain BORME, Italy InfoCamere, Norway Brreg, Poland KRS, Netherlands KVK, Belgium KBO, Switzerland Zefix, Finland, Czechia, Korea, Taiwan, New Zealand, Cayman Island, Australia, Canada and a lot more.
Free tier; paid keys for higher quota and depth.
Data licensed from 🇬🇧 UK Companies House · 🇮🇪 CRO Ireland · 🇳🇴 Brønnøysund · 🇨🇭 Zefix · 🇵🇱 KRS Ministry of Justice — and a lot more.
[OpenRegistry — walking a UK retailer's shareholders 4 layers deep to the family that owns it]
Above: an AI agent walks the shareholders of Iceland Foods Ltd through 4 UK holding companies — WD FF MIDCO → ICELAND VLNCO → LANNIS → WD FF LIMITED — and surfaces the 8 individuals who actually own the chain (Tarsem Dhaliwal 41.35% as the largest shareholder, Walker family 51.31% combined). Every share count, every percentage, read verbatim from the registry's own CS01 PDFs.
We return the registry's own response — unmodified. Every field name, every status value, every raw filing byte (XHTML iXBRL / PDF / XBRL) is preserved exactly as the government's system emits it. The identifiers and jurisdiction routing let you reconstruct the government URL for any record. No aggregator markup. No field renames. No document re-rendering. No AI reinterpretation. No stale cache.
Chain queries across borders in a single prompt — a UK Ltd → its Luxembourg SARL → its Cayman LP → the Jersey trust → the individual beneficiary, all in one conversation. Walk ownership structures through 80+ jurisdictions to unmask the real person behind any company.
Hosted endpoint: https://openregistry.sophymarine.com/mcp
A platform by Sophymarine.
The 6 pillars
How OpenRegistry differs
One-liner. OpenCorporates and BvD are aggregators that re-shape and cache; CH-direct is single-jurisdiction. OpenRegistry is the layer between an AI agent and the original government APIs — verbatim, live, multi-country, no API key for the free tier.
Where OpenRegistry deliberately doesn't have data, the response carries a structured alternative_url pointing at the AML-obliged-only statutory portal. We don't pretend to have data we don't.
Quick example calls
Three full request → response examples for the most common tools. All three reproducible on the free tier. Calls are JSON-RPC over MCP Streamable HTTP at https://openregistry.sophymarine.com/mcp; for brevity we show the tool name + arguments + the unwrapped response.
1. search_companies — find a UK company
2. get_persons_with_significant_control — UK PSC for a known company
PSC ≠ shareholders. UK Companies House publishes a structured PSC register and a separate (filing-only) statement of capital. They disagree: a 10% shareholder appears in the statement of capital but not in PSC; a corporate trustee appears in PSC without being a shareholder. We surface both via
get_persons_with_significant_controlandget_shareholdersrespectively — see the shareholders-vs-PSC case study.
3. fetch_document — raw iXBRL annual accounts bytes
The content is the literal iXBRL bytes Companies House sends — your AI agent parses or re-renders as it sees fit. We don't re-encode, normalise tags, or extract figures into our own schema. Pass format: "png" (Browser Rendering required) to receive a rasterised page-by-page render of scanned PDFs instead.
Quotas, errors, and back-off
OpenRegistry surfaces three distinct kinds of failure with structured responses so AI agents can branch on them.
Rate limits
Per-IP for anonymous, per-user for signed-in. The cross-border fan-out cap is a separate counter that limits how many distinct jurisdictions a caller can hit via search_companies in a rolling 60-second window.
When you exceed either limit, the response is HTTP 429:
The HTTP layer also sets the standard Retry-After: 13 header (seconds, rounded up). Honour retry_after_ms exactly — exponential back-off on top is unnecessary; the limit window is fixed-rolling, not adaptive. Fan-out cap (scope: "fanout") is a 60-second rolling window — the second your oldest country falls off, you can hit a new one. Pro tier caps at 10 distinct countries / 60s, Max at 30, Enterprise unlimited.
Statutorily restricted (CJEU C-37/20 and similar)
Some beneficial-ownership registers became access-restricted to AML-obliged entities post-CJEU C-37/20 (DE, ES, IT, NL, LU, AT, MT, PT) and the Cayman Beneficial Ownership Transparency Act. We don't proxy these — the tool returns HTTP 501 with structured guidance:
This is a design response, not a transient failure — retrying won't help. The alternative_url is the canonical statutory portal where qualified entities can register for access.
Upstream errors and tool-level structured 501s
When the upstream registry has its own outage, we surface its error verbatim with a structured wrapper:
Recommended client back-off
A reference back-off implementation is published in every framework integration guide under /docs/integrations.
Ready-to-use skills
We publish 10 professional Claude Agent Skills for the most common OpenRegistry workflows. Drop them into your Claude Code project's .claude/skills/ directory or into any Claude-compatible agent — invoke by intent.
See skills/README.md for the skillpack overview.
Same 10 workflows, also as MCP prompts
Every skill above is also served by the MCP server as a named prompt — so any MCP-compatible client (Claude Desktop, Cursor, Cline, Goose, Zed, …) shows them in its prompt picker without installing skill files. Call prompts/list to discover them, prompts/get to invoke. Same names: kyc_cross_border_due_diligence, ubo_cross_border_chain_walker, director_search_pep_screening, live_company_accounts_xbrl, corporate_filing_monitor, global_company_name_availability, industry_competitor_search, shell_company_detector, phoenix_company_radar, sector_gatekeeper_list.
Connect
OpenRegistry works with every major MCP-capable client. The same https://openregistry.sophymarine.com/mcp endpoint works across all of them.
Claude Desktop
Settings → Connectors → Add custom connector → paste https://openregistry.sophymarine.com/mcp.
For older builds without the Connectors UI, add to claude_desktop_config.json:
Claude Code
On Claude Code 2.1.1+ you can also use the JSON form:
Gemini CLI
One-line install via the gemini-extension.json manifest in this repo:
Or add to ~/.gemini/settings.json manually (Gemini uses httpUrl, not url):
Google's consumer Gemini app at gemini.google.com does not support custom MCP today — only the CLI and Gemini Enterprise (Google Cloud admin path) do.
ChatGPT
Plus / Pro / Business / Enterprise / Education plans only (Free tier doesn't expose Developer Mode).
- Settings → Apps & Connectors → Advanced settings → enable Developer Mode.
- On the Connectors page, click Create and paste
https://openregistry.sophymarine.com/mcp.
See OpenAI's developer-mode help article.
Perplexity
Pro / Max / Enterprise plans only. Settings → Connectors → Add custom remote connector → paste the URL → choose OAuth. Works in regular chat, the Comet browser, and Computer agent workflows. (Changelog 2026-03-13.)
Cursor
Or add to ~/.cursor/mcp.json manually:
VS Code (1.101+, Copilot Agent mode)
[Install in VS Code] [Install in VS Code Insiders]
Or add to .vscode/mcp.json (workspace) or User Settings → MCP. VS Code uses servers (not mcpServers) and requires type: "http":
GitHub Copilot in JetBrains, Visual Studio, Xcode, and Eclipse also supports custom MCP via the same
mcp-config.jsonpattern — see docs.github.com/copilot for the IDE-specific setup. Copilot CLI uses~/.copilot/mcp-config.jsonor the interactive/mcp addcommand.
Microsoft 365 Copilot (Word / Excel / PowerPoint / Teams / Outlook)
Organization-level deployment via Microsoft Copilot Studio agent path. Requires a Microsoft 365 Copilot license.
- In Microsoft Copilot Studio, open or create an agent → Tools → Add a tool → New tool → Model Context Protocol.
- Paste
https://openregistry.sophymarine.com/mcp, then for Authentication pick OAuth 2.0 → Dynamic discovery (OpenRegistry implements DCR with discovery — zero config). - Publish the agent and submit it for admin approval. After your Global / Teams Admin approves it in the Microsoft 365 admin center, it appears in the Agent Store across Teams, Outlook, Word, Excel, and PowerPoint.
See Microsoft's Copilot Studio MCP docs and the Agent Store guide.
Cline
Settings → Cline → MCP Servers → Edit settings → paste into cline_mcp_settings.json:
See llms-install.md for automated LLM-driven installs.
Windsurf
Cascade panel → hammer icon (🔨) → Configure opens ~/.codeium/windsurf/mcp_config.json. Add this block (note Windsurf uses serverUrl, not url), then click Refresh (🔄):
Anything else speaking MCP
Zed, Goose, Continue, and any other MCP 2025-06-18 client work with the standard config:
Streamable HTTP transport per MCP spec 2025-06-18. OAuth 2.1 authorization flow (Dynamic Client Registration per RFC 7591 — no API key to paste).
AI agent frameworks (code samples)
Every major agent framework ships a generic MCP adapter, so OpenRegistry's 27 tools + 10 prompt workflows plug in with zero framework-specific code. Minimum working example per framework:
- LangChain / LangGraph (Python) → openregistry.sophymarine.com/docs/integrations/langchain
- LlamaIndex (Python) → /docs/integrations/llamaindex
- CrewAI (Python) → /docs/integrations/crewai
- Haystack (Python) → /docs/integrations/haystack
- AutoGen (Microsoft) (Python) → /docs/integrations/autogen
- Vercel AI SDK (TypeScript) → /docs/integrations/vercel-ai-sdk
Provenance & Auditability
Every response preserves the upstream registry's identifiers so any fact can be verified at the government record:
jurisdiction+company_id→ reconstruct the government URL (e.g.https://find-and-update.company-information.service.gov.uk/company/09446231)document_id→ the government's own filing identifier, resolvable back to their portaljurisdiction_data→ the raw upstream object with every field name preserved- Filing documents (XHTML iXBRL / PDF / XBRL) returned as raw bytes — no re-rendering
Enterprise tier pre-synthesises source_url / registry_url / registry_name / data_license / alternative_url into every response for one-click audit-trail in compliance reports.
Security and compliance
- Auth: OAuth 2.1 + PKCE, passwordless email magic links, RFC 7591 Dynamic Client Registration. No pre-shared API keys.
- Privacy: OpenRegistry proxies official public-registry data.
- Rate limits: per-user for authenticated traffic, per-IP for anonymous — plus a per-jurisdiction upstream-protection cap shared across all users, to keep OpenRegistry a good citizen with the registries we depend on.
Support
- Hosted app + account management: openregistry.sophymarine.com/account
- Tool capability matrix: call
list_jurisdictionsor visit openregistry.sophymarine.com/jurisdictions - Enterprise inquiries / partnerships: https://sophymarine.com/about/contact-us
- Status + uptime: openregistry.sophymarine.com/status
- This repo is documentation only. The OpenRegistry service implementation is closed-source; raise issues here for the integration experience (documentation, examples, install flows).
Security
Found a vulnerability? Please use our contact form rather than opening a public issue. See SECURITY.md for the full reporting policy, scope, and safe-harbor terms.
Code of Conduct
Participation in this project is governed by our Code of Conduct, adapted from the Contributor Covenant 2.1. Report issues to [email protected].
Contributing
Issues and pull requests are welcome for:
- Bridge bugs (
server.mjs) - Documentation improvements (README, llms-install.md, GEMINI.md)
- Skill / prompt refinements (
skills/,commands/,.claude-plugin/) - Brand assets and metadata (
brand/,glama.json,.mcp.json,gemini-extension.json)
The OpenRegistry service implementation (jurisdiction adapters, MCP server, billing, auth) is closed-source and not accepted via PR. For tool / behavior requests against the hosted service, open an issue describing the use case.
Changelog
Tagged releases live on the GitHub Releases page. Versions follow SemVer — patch for fixes, minor for additive changes, major for breaking changes to the bridge protocol or tool surface contract.
License
Documentation, skills, and brand assets in this repository are released under CC-BY-4.0 — you may share and adapt the material for any purpose with attribution. The openregistry stdio bridge (server.mjs) is also released under CC-BY-4.0 for consistency. The hosted MCP service implementation is not open-source and is operated under separate commercial terms; see the Tiers section.
See NOTICE.md for third-party attribution.
OpenRegistry is a platform by Sophymarine.
© 2026 Sophymarine. OpenRegistry and Sophymarine are trademarks of Sophymarine. Documentation in this repository is published under CC-BY-4.0.
Source: README.md at commit 0c2d3f8
Tools
0Version history
2- v3.0.0LatestOct 6, 2026
- v1.0.4Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts