
UK Due Diligence
Connects to five UK government registers for corporate due diligence without paywalls. Pulls company profiles, director appointments, beneficial ownership chains, and disqualification records from Companies House. Checks charity financials and trustees via the Charity Commission API. Queries HMLR for property ownership through SPARQL, scrapes insolvency notices from The Gazette's linked data feed, and validates VAT numbers against HMRC. Includes three orchestration prompts that chain searches across registers. Useful for KYC checks, investor due diligence, or flagging phoenix company patterns. The hosted endpoint needs no API keys, but local installs require free Companies House and Charity Commission credentials. Covers England and Wales only for land registry queries.
- GitHub stars
- 2
- tools
- 18
- transport
- STDIO, HTTP
- last updated
- Apr 20, 2026
Install
From registry metadata$ npx add-mcp https://uk-due-diligence-mcp.fly.dev/mcp --name uk-due-diligence-mcpRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http uk-due-diligence-mcp https://uk-due-diligence-mcp.fly.dev/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 18 toolsVerified live against the running server on Nov 6, 2026.
company_searchSearch the Companies House register by company name or keyword. Returns a paginated list of matching companies with name, number, status, incorporation date, and registered address. SIC codes are not reliably returned by search; use company_profile for SIC codes. Use company_p...5 params
Search the Companies House register by company name or keyword. Returns a paginated list of matching companies with name, number, status, incorporation date, and registered address. SIC codes are not reliably returned by search; use company_profile for SIC codes. Use company_p...
company_statusvaluecompany_typevalueitems_per_pageintegerquery*stringstart_indexintegercompany_profileFetch the full Companies House profile for a company number. Returns status, registered address, SIC codes, filing compliance (overdue accounts and confirmation statement flags), and whether the company has outstanding charges. Use company_search first to find the company number.1 params
Fetch the full Companies House profile for a company number. Returns status, registered address, SIC codes, filing compliance (overdue accounts and confirmation statement flags), and whether the company has outstanding charges. Use company_search first to find the company number.
company_number*stringcompany_officersFetch officers for a Companies House company number. Returns directors, secretaries, and other officers with appointment dates, nationality, and country of residence. Resigned officers are excluded by default; set include_resigned=true for historical DD. Pagination is handled...4 params
Fetch officers for a Companies House company number. Returns directors, secretaries, and other officers with appointment dates, nationality, and country of residence. Resigned officers are excluded by default; set include_resigned=true for historical DD. Pagination is handled...
company_number*stringinclude_resignedbooleanitems_per_pagevaluestart_indexvaluecompany_pscFetch Persons with Significant Control (beneficial ownership) for a company. Returns PSC entries with natures of control, nationality, and country of residence. Flags overseas corporate PSC entries as a beneficial ownership risk signal. Returns an explanatory note for widely-h...1 params
Fetch Persons with Significant Control (beneficial ownership) for a company. Returns PSC entries with natures of control, nationality, and country of residence. Flags overseas corporate PSC entries as a beneficial ownership risk signal. Returns an explanatory note for widely-h...
company_number*stringofficer_appointmentsFetch a person's full company appointment history by officer ID. Returns every appointment — current and historic — with each company's number, name, status, role, and appointment/resignation dates. Use company_officers first to find an officer_id, then this tool to discover o...1 params
Fetch a person's full company appointment history by officer ID. Returns every appointment — current and historic — with each company's number, name, status, role, and appointment/resignation dates. Use company_officers first to find an officer_id, then this tool to discover o...
officer_id*stringcompany_chargesFetch the complete Companies House charge history for a company. Returns every registered charge (secured debt) — current and historic — with status, dates, secured parties, and what each charge covers (fixed/floating/negative-pledge flags and any free-text particulars). Satis...1 params
Fetch the complete Companies House charge history for a company. Returns every registered charge (secured debt) — current and historic — with status, dates, secured parties, and what each charge covers (fixed/floating/negative-pledge flags and any free-text particulars). Satis...
company_number*stringcompany_filing_historyFetch one page of a company's Companies House filing chronology. Returns the raw source facts for each filing — transaction ID, form type/category, dates, and the description_values CH uses to render its own text — as delivered upstream, not interpreted into DD conclusions. li...4 params
Fetch one page of a company's Companies House filing chronology. Returns the raw source facts for each filing — transaction ID, form type/category, dates, and the description_values CH uses to render its own text — as delivered upstream, not interpreted into DD conclusions. li...
categoryvaluecompany_number*stringitems_per_pageintegerstart_indexintegercompany_filing_documentResolve a filing's document_metadata link to its authoritative source document. Returns a resource_link (never embedded bytes, never base64) pointing at a company-document:// MCP resource — fetch it via resources/read to get the actual PDF. This tool only reads metadata (categ...2 params
Resolve a filing's document_metadata link to its authoritative source document. Returns a resource_link (never embedded bytes, never base64) pointing at a company-document:// MCP resource — fetch it via resources/read to get the actual PDF. This tool only reads metadata (categ...
document_metadata_url*stringmime_typevaluecharity_searchSearch the Charity Commission register of England and Wales by name or keyword. Returns matching charities with registration number, status, and registration date. Use charity_profile for full details once you have the charity number. The upstream `searchCharityName` endpoint...3 params
Search the Charity Commission register of England and Wales by name or keyword. Returns matching charities with registration number, status, and registration date. Use charity_profile for full details once you have the charity number. The upstream `searchCharityName` endpoint...
limitintegeroffsetintegerquery*stringcharity_profileFetch the full Charity Commission profile for a charity number. Returns trustees, latest income/expenditure, insolvency flags, classifications, and countries of operation. Use charity_search first to find the charity number.1 params
Fetch the full Charity Commission profile for a charity number. Returns trustees, latest income/expenditure, insolvency flags, classifications, and countries of operation. Use charity_search first to find the charity number.
charity_number*stringdisqualified_searchCheck whether a named individual is banned from acting as a UK company director. Use this tool when asked to check disqualified, banned, or barred directors. Query must be an individual's name (e.g. "Richard Howson") — NOT a company name, which always returns zero results. Ret...4 params
Check whether a named individual is banned from acting as a UK company director. Use this tool when asked to check disqualified, banned, or barred directors. Query must be an individual's name (e.g. "Richard Howson") — NOT a company name, which always returns zero results. Ret...
items_per_pageintegernamevaluequeryvaluestart_indexintegerdisqualified_profileFetch the full disqualification record for a director by officer ID. Returns all disqualification orders: reason, Act/section cited, disqualification period, and associated company names. Use disqualified_search first to find the officer ID.1 params
Fetch the full disqualification record for a director by officer ID. Returns all disqualification orders: reason, Act/section cited, disqualification period, and associated company names. Use disqualified_search first to find the officer ID.
officer_id*stringland_title_searchSearch HM Land Registry Price Paid Index by postcode or address. Returns up to 10 recent sale transactions for the postcode: price, date, address, property type, and tenure (Freehold/Leasehold). Covers England and Wales only. Postcode gives the most reliable results — a full a...1 params
Search HM Land Registry Price Paid Index by postcode or address. Returns up to 10 recent sale transactions for the postcode: price, date, address, property type, and tenure (Freehold/Leasehold). Covers England and Wales only. Postcode gives the most reliable results — a full a...
address_or_postcode*stringgazette_noticeFetch the full legal wording of a Gazette notice by numeric notice ID. Returns the JSON-LD linked-data record for the notice: publisher, notice code, publication date, and the party fields the Gazette supplies. Body text and court are not guaranteed; the Gazette web page has t...1 params
Fetch the full legal wording of a Gazette notice by numeric notice ID. Returns the JSON-LD linked-data record for the notice: publisher, notice code, publication date, and the party fields the Gazette supplies. Body text and court are not guaranteed; the Gazette web page has t...
notice_id*stringgazette_insolvencySearch The Gazette's insolvency notice index by entity name. Searches The Gazette's corporate-insolvency notice index using the authoritative Gazette notice-code taxonomy. Results are sorted by an internal DD severity score; the notice label itself remains a source fact. Each...7 params
Search The Gazette's insolvency notice index by entity name. Searches The Gazette's corporate-insolvency notice index using the authoritative Gazette notice-code taxonomy. Results are sorted by an internal DD severity score; the notice label itself remains a source fact. Each...
end_datevalueentity_namevaluemax_noticesintegernamevaluenotice_typevaluequeryvaluestart_datevaluesanctions_screenScreen a name against the UK (OFSI), US (OFAC), EU and UN consolidated sanctions lists. Returns every list entry whose primary name or alias matches, with the regime, source reference and listing date where the source gives one. Use it to check whether a counterparty — or its...2 params
Screen a name against the UK (OFSI), US (OFAC), EU and UN consolidated sanctions lists. Returns every list entry whose primary name or alias matches, with the regime, source reference and listing date where the source gives one. Use it to check whether a counterparty — or its...
entity_typevaluename*stringsearchSearch across all UK due diligence registers simultaneously. Searches Companies House, Charity Commission, disqualified directors, and Gazette insolvency notices in parallel. Returns a list of result IDs — use fetch with each ID to retrieve the full record. `registers_searched...1 params
Search across all UK due diligence registers simultaneously. Searches Companies House, Charity Commission, disqualified directors, and Gazette insolvency notices in parallel. Returns a list of result IDs — use fetch with each ID to retrieve the full record. `registers_searched...
query*stringfetchFetch the full record for an ID returned by search. Routes by prefix to the appropriate register: - company:{number} → Companies House full profile - charity:{number} → Charity Commission full profile - disqualification:{officer_id} → Disqualified director full record - notice...1 params
Fetch the full record for an ID returned by search. Routes by prefix to the appropriate register: - company:{number} → Companies House full profile - charity:{number} → Charity Commission full profile - disqualification:{officer_id} → Disqualified director full record - notice...
id*stringSponsors
Readme
uk-due-diligence-mcp
Official-source UK due-diligence data for AI agents.
Search Companies House, Charity Commission, The Gazette and HMLR price-paid data, plus screen names against the UK (FCDO), OFAC, EU and UN sanctions lists. Exposes atomic MCP tools for company ownership, officers, cross-company appointment history, secured charges, insolvency notices and related registry evidence — the consuming agent decides how to investigate, not the server.
Every data source is a legally-mandated register with a free official API. Zero paywalls.
Details
- Repository
- github.com/paulieb89/uk-due-diligence-mcp
- Website
- bouch.dev
- Package
uk-due-diligence-mcp- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026