freshcrate
Skin:/
Home > MCP Servers > uk-due-diligence-mcp

uk-due-diligence-mcp

UK due diligence MCP server โ€” Companies House, corporate research, compliance checks

Why this rank:Recent releaseHealthy release cadenceStrong adoption

Description

UK due diligence MCP server โ€” Companies House, corporate research, compliance checks

README

uk-due-diligence-mcp

Nine 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, insolvency notices, VAT validation, and property transactions.

Every data source is a legally-mandated register with a free official API.

PyPI


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
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)
vat_validate HMRC VAT Trading name + address as registered for VAT

Setup

Install from PyPI

pip install 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.

Local development

git clone https://github.com/paulieb89/uk-due-diligence-mcp
cd uk-due-diligence-mcp

cp .env.example .env
# Fill in your API keys

pip install -e .
python server.py

Server starts at http://localhost:8080/mcp.

Fly.io deployment

fly launch --name uk-due-diligence-mcp --region lhr
fly secrets set CH_API_KEY=xxx CHARITY_API_KEY=xxx
fly deploy

Connecting

Claude Code / .mcp.json

{
  "mcpServers": {
    "uk-due-diligence": {
      "type": "http",
      "url": "https://uk-due-diligence-mcp.fly.dev/mcp"
    }
  }
}

Claude.ai / other MCP clients

{
  "mcpServers": {
    "uk-due-diligence": {
      "url": "https://uk-due-diligence-mcp.fly.dev/mcp"
    }
  }
}

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
โ”œโ”€โ”€ 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

Release History

VersionChangesUrgencyDate
v1.4.0## Breaking: `vat_validate` is removed The tool never worked in production. Measured 2026-09-09 before removing it: | Evidence | Result | |---|---| | `uk_due_diligence_tool_calls_total{tool="vat_validate"}` | **14 errors, 0 successes** | | Control in the same query | `company_search` ok=302, `sanctions_screen` ok=260 | | Prod's error branch | *invalid-or-expired*, interpolating `HMRC_ENV=sandbox` | | HMRC's lookup endpoint without credentials | `401 MISSING_CREDENTIALS` | The control returninHigh9/9/2026
v1.3.0## What's Changed * fix: Companies House and Gazette registry data correctness by @paulieb89 in https://github.com/paulieb89/uk-due-diligence-mcp/pull/4 * feat: officer appointment history and related-company discovery by @paulieb89 in https://github.com/paulieb89/uk-due-diligence-mcp/pull/5 * feat: Companies House charge records (BOU-40) by @paulieb89 in https://github.com/paulieb89/uk-due-diligence-mcp/pull/6 * chore: remove MCP prompts, fix packaging bug, refresh README by @paulieb89 in httpsHigh8/23/2026
v1.2.0## v1.2.0 โ€” Structured errors + shared observability Every failure this server can anticipate now returns a structured, agent-actionable error payload (`error_category` / `is_retryable` / `attempted` / `description`) instead of a raw exception string or โ€” worse โ€” a silent empty result. Highlights: - **Adopt [mcpfleet-obs](https://github.com/uk-agents/mcpfleet-obs) 0.1.0**: fleet-standard Prometheus metrics (same family names, new `error_category` label, wider latency buckets) and client trackiMedium7/29/2026
v1.1.1## Fixes - **disqualified_search** now accepts `name` as an alias for `query` โ€” multiple LLM clients were consistently guessing `name` and failing schema validation. Both params are published in the JSON schema. - **gazette_insolvency** now accepts `name` (canonical) and `query`, with `entity_name` kept as a deprecated alias โ€” same failure class. - **vat_validate**: - GB prefix is now stripped only from the start of the number (previously `GB` was removed from anywhere in the string). - NonHigh7/28/2026
v1.0.8**Full Changelog**: https://github.com/paulieb89/uk-due-diligence-mcp/compare/v1.0.7...v1.0.8High5/7/2026
v1.0.5**Full Changelog**: https://github.com/paulieb89/uk-due-diligence-mcp/compare/v1.0.4...v1.0.5High5/1/2026
v1.0.4Release matching PyPI v1.0.4 โ€” fastmcp 3.2.4 security patch, packages section in server.json for Official MCP Registry.High4/20/2026
main@2026-04-20Latest activity on main branchHigh4/20/2026
0.0.0No release found โ€” using repo HEADHigh4/11/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

tradememory-protocolDecision audit trail + persistent memory for AI trading agents. Outcome-weighted recall, SHA-256 tamper detection, 17 MCP tools.v0.5.5
memoraGive your AI agents persistent memory.v0.4.0
markdown-vault-mcpGeneric markdown collection MCP server with FTS5 + semantic search, frontmatter-aware indexing, and incremental reindexingv4.1.0
jdocmunch-mcpThe leading, most token-efficient MCP server for documentation exploration and retrieval via structured section indexingv1.136.1
voicemodeNatural (2-way) voice conversations with Claude Codev8.12.0

More in MCP Servers

difyProduction-ready platform for agentic workflow development.
tabularisA lightweight, cross-platform database client for developers. Supports MySQL, PostgreSQL and SQLite. Hackable with plugins. Built for speed, security, and aesthetics.
ai-agents-from-zero ๐Ÿš€ 2026 ๆœ€็ณป็ปŸ็š„ AI Agent ้€ŸๆˆๆŒ‡ๅ—๏ฝœๆ™บ่ƒฝไฝ“ๅฎžๆˆ˜ๆ•™็จ‹ ยท ๅฎŒๆ•ดๅญฆไน ่ทฏๅพ„ + ๅฎžๆˆ˜้กน็›ฎ + ้ข่ฏ•้ข˜ๅบ“ ยท ๅฏนๆ ‡ๅคงๆจกๅž‹ๅบ”็”จๅผ€ๅ‘ๅทฅ็จ‹ๅธˆๅฒ—ไฝ ยท ่ฆ†็›–LangChain / LangGraph / Coze / Dify / MCP / skills / LLM / RAG / ๆ็คบ่ฏ ยท ไผไธš็บง้ƒจ็ฝฒไธŽๅพฎ่ฐƒ ยท ไปŽ0ๅˆฐไผไธš็บง่ฝๅœฐ + ไปŽๅญฆไน ๅˆฐไธŠ็บฟ้กน็›ฎ + ้ข่ฏ•ๅ‡†ๅค‡ไธ€ไฝ“ๅŒ–
studioOpen-source control plane for your AI agents. Connect tools, hire agents, track every token and dollar