UK Due Diligence
Tools across five UK public registers. All official APIs. Give an agent a company name and it pulls corporate status, filing compliance, director networks, beneficial ownership chains, disqualification checks, insolvency notices, VAT validation, and property transactions.
Ask AI about UK Due Diligence
Powered by Claude Β· Grounded in docs
I know everything about UK Due Diligence. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
uk-due-diligence-mcp
Tools across five UK public registers. Zero paywalls. All official APIs.
Give an agent a company name and it pulls corporate status, filing compliance, director networks, beneficial ownership chains, disqualification checks, insolvency notices, VAT validation, and property transactions.
Every data source is a legally-mandated register with a free official API.
Data Sources
| Register | API | Auth |
|---|---|---|
| Companies House | api.company-information.service.gov.uk | API key (free) |
| Charity Commission | api.charitycommission.gov.uk | API key (free) |
| HMLR Land Registry | landregistry.data.gov.uk (SPARQL + REST) | None |
| The Gazette | thegazette.co.uk/all-notices (Linked Data) | None |
| HMRC VAT | api.service.hmrc.gov.uk | None |
Tools
| Tool | Register | Description |
|---|---|---|
company_search | Companies House | Search by name/keyword with status/type filters |
company_profile | Companies House | Full profile: status, filing compliance, charges |
company_officers | Companies House | Directors with high-appointment-count risk flag |
company_psc | Companies House | Beneficial owners, PSC chain, offshore flags |
disqualified_search | Companies House | Search disqualified directors by name |
disqualified_profile | Companies House | Full disqualification record, period, Act, companies |
charity_search | Charity Commission | Search by name, filter by registration status |
charity_profile | Charity Commission | Full record: trustees, finances, governing doc |
land_title_search | HMLR | Property ownership via SPARQL PPI query |
gazette_insolvency | The Gazette | Corporate insolvency notices (codes 2441-2460) |
gazette_notice | The Gazette | Full legal wording of a specific insolvency notice |
vat_validate | HMRC VAT | Trading name + address as registered for VAT |
search | All registers | Fan-out search across all registers β returns IDs for ChatGPT deep research |
fetch | All registers | Fetch a structured record by ID returned from search |
Prompts
Three workflow prompts orchestrate multi-step investigations. Available via get_prompt on tool-only clients (ChatGPT) and natively on protocol-aware clients (Claude, Inspector).
| Prompt | Description |
|---|---|
due_diligence | Full DD check β company, officers, PSC, gazette, disqualification |
charity_due_diligence | Charity profile + insolvency check |
director_check | Disqualification status check for an individual |
Connect
Hosted (no install)
{
"mcpServers": {
"uk-due-diligence": {
"type": "http",
"url": "https://uk-due-diligence-mcp.fly.dev/mcp"
}
}
}
Local (uvx)
export CH_API_KEY=your_key
export CHARITY_API_KEY=your_key
{
"mcpServers": {
"uk-due-diligence": {
"type": "stdio",
"command": "uvx",
"args": ["uk-due-diligence-mcp"]
}
}
}
API Keys
| Key | Where to get it |
|---|---|
CH_API_KEY | developer.company-information.service.gov.uk β free |
CHARITY_API_KEY | api-portal.charitycommission.gov.uk β free |
HMLR, Gazette, and HMRC VAT require no API key.
Demo
Run due diligence on Carillion PLC
The agent calls company_search to resolve the company number, then company_profile, company_officers, company_psc, and gazette_insolvency β reasoning across all five registries to surface risk signals.
Project Structure
uk-due-diligence-mcp/
βββ server.py # FastMCP init, tool registration, transport config
βββ companies_house.py # company_search, company_profile, company_officers, company_psc
βββ disqualified.py # disqualified_search, disqualified_profile
βββ charity.py # charity_search, charity_profile
βββ land_registry.py # land_title_search (SPARQL + REST)
βββ gazette.py # gazette_insolvency (JSON-LD, notice codes 2441-2460)
βββ hmrc_vat.py # vat_validate
βββ http_client.py # Shared httpx clients, retry backoff, error formatting
βββ inputs.py # Pydantic v2 input models
βββ fly.toml
βββ Dockerfile
βββ pyproject.toml
βββ .env.example
Technical Notes
The Gazette API
REST+RDF linked-data pattern. Corporate insolvency notice codes span 2441-2460. The read API is unauthenticated; auth is write-only (for placing notices).
HMLR Land Registry
Free endpoint at api.landregistry.data.gov.uk. Returns RDF/Turtle by default β
the SPARQL endpoint is used for Price Paid Index queries. Covers England and Wales only.
High-Appointment-Count Signal
Directors with 10+ other active appointments are flagged. A director on 40+ companies is a common pattern in nominee director operations and phoenix company structures.
Licence
MIT
