UK Companies House MCP Server: due diligence and KYB (Registrum)
MCP serverCommerce & financeLets your agent look up UK company profiles, financials, directors and ownership details.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Then ask your AI: use UK Companies House MCP Server: due diligence and KYB (Registrum) to search company
Details
Available today. Use it as a step in a pipeline you build, or from your connected AI.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this server
UK company data: profiles, iXBRL financials, directors, PSC chains, ECCTA. Hosted, no key.
Install UK Companies House MCP Server: due diligence and KYB (Registrum)
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user uk-companies-house-mcp-server-du 'https://registrum.co.uk/api/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://registrum.co.uk/api/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=uk-companies-house-mcp-server-du&config=eyJ1cmwiOiJodHRwczovL3JlZ2lzdHJ1bS5jby51ay9hcGkvbWNwIn0=Open the link and Cursor adds the server at that address.
ChatGPT
https://registrum.co.uk/api/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add uk-companies-house-mcp-server-du --url 'https://registrum.co.uk/api/mcp'Run it once, then sign in with codex mcp login uk-companies-house-mcp-server-du if the server asks for an account.
From the project's README
As published by registrumuk/uk-companies-house-mcp in README.md.
UK company due diligence and KYB: trace ownership to the beneficial owners, pull director histories, check ECCTA identity-verification status and deadlines, read parsed accounts. Live Companies House data, hosted, no key.
No Companies House developer account, no rate-limit handling, no iXBRL parsing.
Works in Claude Desktop, Claude Code, Cursor, VS Code, and any MCP-compatible client. It also answers ChatGPT search and fetch.
Dependabot alerts and update pull requests are enabled on all six Registrum repositories; SECURITY.md says where to see the live alert count.
Try it now — no signup, no key, no install
Point your client at the hosted endpoint and every tool answers with real data:
https://registrum.co.uk/api/mcp
{
"mcpServers": {
"registrum": {
"url": "https://registrum.co.uk/api/mcp"
}
}
}
That is the whole setup. Ask it "Who ultimately owns BrewDog?" and it will trace the ownership chain to the named individuals who hold control.
One thing worth knowing before you test it on a household name: companies listed
on a regulated market — Tesco, Rolls-Royce, most of the FTSE — are exempt from
the PSC regime, so their ownership chain is legitimately empty and
get_psc_chain says so rather than inventing a tree. Ownership questions are
interesting on private companies, which is where the register actually records
who is behind them.
The hosted endpoint has small daily caps, enough to see exactly what comes back. When you reach one, the tool tells you so and points at a free key; nothing silently degrades.
Three ways to use it
- Try it - no key. Point your MCP client at
https://registrum.co.uk/api/mcpand ask about any UK company. No signup. - Build with it - free key. 60 days of full access: every endpoint, no monthly cap, no card. After that the key stays free for light use.
- Run on it - paid plan. When you need volume, premium endpoints or an SLA.
Live prices and limits:
GET /v1/plans.
Why this instead of the Companies House API directly
Companies House publishes the raw register for free, and you can absolutely call it yourself. What you then own is the plumbing:
| Doing it yourself | With Registrum |
|---|---|
| Register for a CH developer key, manage OAuth | Nothing, or one REGISTRUM_API_KEY |
| 600 requests/5min, and you handle the 429s | Server-side throttling on a higher negotiated budget |
| Accounts arrive as iXBRL documents you must parse | get_financials returns turnover, net assets, profit/loss as numbers |
| PSC control types are raw codes | Decoded to plain English |
| Ownership chains: recurse yourself, handle cycles | get_psc_chain returns the resolved tree with termination reasons |
| Director networks: N+1 queries across appointments | get_network traverses to depth 2 |
| Retry, cache, and survive CH outages yourself | 24h/7d caching, circuit breaker, stale-while-revalidate |
Other Companies House MCP servers make you bring your own CH key and hand back the raw response. This one does the enrichment.
Running it with your own key
Use a key to build on it (60 days of full access), or when you would rather run the server locally than call ours.
Claude Desktop — ~/.claude/claude_desktop_config.json
Cursor — .cursor/mcp.json (per project) or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"registrum": {
"command": "npx",
"args": ["-y", "@registrum/mcp"],
"env": { "REGISTRUM_API_KEY": "reg_live_..." }
}
}
}
Get a free key — 60 days of full access, no card.
Tools
| Tool | What you get |
|---|---|
search_company | Find a company by name → company number |
get_bundle | Profile, compliance, financials, PSCs and directors in one call - start here |
get_company | Profile: status, age, SIC descriptions, overdue flags |
get_financials | Turnover, net assets, profit/loss, employees — parsed from iXBRL, in GBP |
get_directors | Current board with appointment history across all their companies |
get_psc | Persons with Significant Control, control types in plain English |
get_psc_chain | Ownership traversed to ultimate beneficial owners, with termination reasons |
get_compliance | ECCTA identity-verification status — who has verified, who is pending, who is overdue |
get_network | Companies connected by shared directors, to depth 2 |
search | For ChatGPT connectors and deep research: returns {results: [{id, title, url}]} for a company name |
fetch | For ChatGPT connectors and deep research: takes a company:<number> id from search, returns the profile as a citable document |
Resources
The same data is also exposed as MCP resource templates, for clients that attach context by URI. Each returns the JSON of the matching tool, goes through the same usage limits, and accepts a short numeric number (it is zero-padded to 8 characters).
| Resource | Same JSON as |
|---|---|
company://{number}/profile | get_company |
company://{number}/financials | get_financials |
company://{number}/psc | get_psc |
company://{number}/compliance | get_compliance |
On get_bundle
Most questions about a company need several of these views at once. get_bundle
returns them in a single request: one call and one credit instead of five,
and one round trip instead of five. Pass include to fetch a subset, or omit it
for all five sections.
Each section carries exactly what its own endpoint returns, because the bundle is composed from those same handlers rather than reimplemented - so plan gates, caching and the ECCTA rules behave identically either way.
A null section is not an error. Financials come back null for a company that has filed no machine-readable accounts, and compliance requires a Pro plan. Only a missing company is an error, and that is a 404. Report a null section as "not available", never as an absence of the underlying fact.
On get_compliance
The Economic Crime and Corporate Transparency Act requires every UK director and PSC to verify their identity with Companies House. Deadlines are per company, not one date: each existing director is due by their company's next confirmation-statement due date, so the date differs from company to company. Unverified officers can block filings once it passes.
The tool returns verified / pending / overdue counts plus each unverified person and their individual deadline. It deliberately distinguishes pending (deadline not yet reached — not a failure) from overdue (missed). Treating those as the same thing is the single easiest way to report a compliant company as non-compliant.
Example prompts
"Is Tesco PLC compliant with ECCTA director verification, and who still needs to verify?"
"Pull the last filed financials for 00445790 and tell me if turnover grew."
"Who ultimately owns BrewDog? Trace the ownership chain to the individuals."
"Which companies share directors with Barratt Developments?"
"Search for 'Monzo' and show me status, incorporation date and directors."
Plans
The anonymous endpoint needs no account at all. A free key gives 60 days of full access, then stays free for light use; paid tiers add volume, premium endpoints such as PSC chain traversal and the ECCTA compliance endpoint, and an SLA.
Prices and quotas are served live from GET /v1/plans —
that endpoint is the source of truth, so this README does not duplicate the
numbers and cannot go stale against them. Human-readable version at
registrum.co.uk.
Notes
- Company numbers are zero-padded 8-character strings:
00445790,SC000268. - Responses are JSON, cached server-side (24h profiles/directors, 7d financials).
- The hosted endpoint is stateless and anonymous: it stores no account, and rate limiting is keyed on a hash of the calling IP rather than anything about you.
- The npm package sends
User-Agent: @registrum/mcp/<version>so we can see which features developers actually use. No telemetry runs on your machine.
Tools it offers (9)
What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.
search_companyget_companyget_financialsget_directorsget_complianceget_pscget_bundleget_psc_chainget_network
Signals
- GitHub stars
- 1
- Last commit
- Oct 2026
- Weekly_downloads
- 407 weekly_downloads
Advanced
- Delivery
- uk-companies-house-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-registrumuk-uk-companies-house-mcp- Source
- github.com/registrumuk/uk-companies-house-mcp
- Hosted endpoint
https://registrum.co.uk/api/mcp
github.com/registrumuk/uk-companies-house-mcp
More in Commerce & finance
MCP server · mikeypetrillo
More in Commerce & financekeryx
MCP server · tang-vu
More in Commerce & financecrypto-quant-signal-mcp
MCP server · algovaultlabs
More in Commerce & financedexpaprika
MCP server · coinpaprika
More in Commerce & financetruss44-mcp-crypto-price
MCP server · truss44
More in Commerce & financeagent-passport-mcp
MCP server · agent-passport-system
More in Commerce & finance