UK due diligence MCP server — Companies House, Charity Commission, HMLR, Gazette, HMRC VAT
SaferSkills independently audited Uk Due Diligence Mcp (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.paulieb89/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.
| 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 |
| 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 |
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 |
{
"mcpServers": {
"uk-due-diligence": {
"type": "http",
"url": "https://uk-due-diligence-mcp.fly.dev/mcp"
}
}
}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"]
}
}
}| 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.
Run due diligence on Carillion PLCThe 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.
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.exampleREST+RDF linked-data pattern. Corporate insolvency notice codes span 2441-2460. The read API is unauthenticated; auth is write-only (for placing notices).
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.
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.
MIT
<!-- mcp-name: io.github.paulieb89/uk-due-diligence-mcp -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.