mcpField
U
UK Due Diligence

UK Due Diligence

Remote
bouch.devBusiness & Marketing3Updated today

About UK Due Diligence

UK Due Diligence is an MCP server for agents conducting UK company, charity, insolvency and sanctions research. It combines official registry records with atomic tools for tracing ownership, appointments, charges and notices.

Key features

  1. 01Search Companies House and charity records
  2. 02Trace officers and beneficial ownership
  3. 03Review secured charges and insolvency notices
  4. 04Search Land Registry sale transactions
  5. 05Screen names against sanctions lists
  6. 06Search and fetch across registers

Use cases

  1. 01Check a company’s status and secured charges
  2. 02Trace a director’s current and past appointments
  3. 03Review insolvency notices and legal wording
  4. 04Screen a company and its officers for sanctions

MCP support

Exposes registry search and record-retrieval tools to MCP clients, including company, charity, land transaction, Gazette and sanctions data. Supports hosted HTTP and local stdio connections.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://uk-due-diligence-mcp.fly.dev/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
pypiuk-due-diligence-mcp1.0.3

Tools

18
ParameterTypeRequiredDescription
querystringYesCompany name or keyword to search for
start_indexintegerNoPagination offset. Default 0.
company_typeanyNoFilter by company type (e.g. 'ltd', 'llp'). Omit to search all.
company_statusanyNoFilter by company status (e.g. 'active', 'dissolved'). Omit to search all.
items_per_pageintegerNoNumber of results to return (max 100). Default 20.

Details

From the project 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 OFSI, 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.

PyPI SafeSkill Glama smithery badge Install in VS Code Install in VS Code Insiders Install in Cursor


Data sources

RegisterAPIAuthCoverage
Companies Houseapi.company-information.service.gov.ukAPI key (free)UK-wide
Charity Commissionapi.charitycommission.gov.ukAPI key (free)England & Wales
HMLR Land Registrylandregistry.data.gov.uk (SPARQL)NoneEngland & Wales
The Gazettethegazette.co.uk (Linked Data)None (read)UK-wide
OFSI / OFAC / EU / UN sanctionsconsolidated list filesNoneInternational

Quick start

Hosted (no install)
{
  "mcpServers": {
    "uk-due-diligence": {
      "type": "http",
      "url": "https://uk-due-diligence-mcp.fly.dev/mcp"
    }
  }
}
Local (uvx)
{
  "mcpServers": {
    "uk-due-diligence": {
      "type": "stdio",
      "command": "uvx",
      "args": ["uk-due-diligence-mcp"]
    }
  }
}

See Configuration for the environment variables it needs.


Tools

Companies House

ToolDescription
company_searchSearch by name/keyword, filter by status/type
company_profileStatus, filing compliance, registered address, has_charges summary
company_officersDirectors/secretaries; each carries an officer_id
company_pscBeneficial owners, PSC chain, overseas-corporate-PSC flag
officer_appointmentsFull appointment history for a person by officer_id — including dissolved or insolvent companies not named anywhere else
company_chargesComplete secured-charge history: status, dates, secured parties, what each charge covers
disqualified_searchSearch disqualified directors by name
disqualified_profileFull disqualification record: period, Act, associated companies

Charity Commission

ToolDescription
charity_searchSearch by name, filter by registration status
charity_profileFull record: trustees, income/expenditure, governing document

HMLR Land Registry

ToolDescription
land_title_searchPrice Paid Index sale transactions by postcode — not title ownership (see Limitations)

The Gazette

ToolDescription
gazette_insolvencyCorporate insolvency notices across the Gazette's notice-code taxonomy (codes 2401-2465)
gazette_noticeFull legal wording of a specific notice

Sanctions

ToolDescription
sanctions_screenScreen a name against the OFSI/OFAC/EU/UN consolidated lists

Cross-register

ToolDescription
searchFan-out search across all registers — returns IDs (for ChatGPT deep research)
fetchFetch a structured record by ID returned from search

Examples

Resolve "TAS Engineering" to a company number and check whether it has any outstanding charges.

→ company_search to find the company number, then company_charges for the full secured-debt picture (not just the has_charges summary).

Has Gareth Davies (director of company 06333469) been connected to any other companies, including ones that no longer exist?

→ company_officers to get his officer_id, then officer_appointments to surface every company he's held an appointment at, current or historic.

Is "MEL Precision Limited" in the middle of insolvency proceedings, and what does that actually mean legally?

→ gazette_insolvency to find the notices, then gazette_notice to read the full legal wording before drawing conclusions from the notice label alone.

Screen "Acme Trading Ltd" and its officers against sanctions lists.

→ company_officers for the officer names, then sanctions_screen against the company name and each officer.


Limitations

Things worth knowing before trusting output:

  • land_title_search returns Price Paid transactions, not ownership. It does not return current proprietor/title data — HMLR's Price Paid Index only records historic sale transactions.
  • Sanctions screening is exact/alias matching, not compliance clearance. A company/entity legal name matches reliably; person names with transliteration variants may not. An empty result is not a guarantee of clearance, and a hit on a common name may need disambiguation.
  • has_charges: null means the check could not be confidently completed — a charges-endpoint outage, or a charge with an unrecognized status. Treat it as unresolved, not as "no charges."
  • officer_appointments returns historical relationships. Companies House doesn't auto-resign a director when a company enters insolvency — check company_status on each appointment, not just resigned_on.
  • Official-source data can be incomplete or delayed. These are the same registers a human would check, with the same latency and gaps.

Configuration

VariableRequired forWhere to get it
CH_API_KEYAll Companies House toolsdeveloper.company-information.service.gov.uk — free
CHARITY_API_KEYCharity Commission toolsapi-portal.charitycommission.gov.uk — free

HMLR, The Gazette, and the sanctions lists require no credentials.


Project structure

uk-due-diligence-mcp/
├── server.py           # FastMCP init, tool/resource registration, transport config
├── companies_house.py  # company_search/profile/officers/psc, officer_appointments, company_charges
├── disqualified.py     # disqualified_search, disqualified_profile
├── charity.py          # charity_search, charity_profile
├── land_registry.py    # land_title_search (SPARQL Price Paid Index)
├── gazette.py          # gazette_insolvency, gazette_notice
├── sanctions.py        # sanctions_screen (OFSI/OFAC/EU/UN consolidated lists)
├── search_fetch.py     # search, fetch (cross-register fan-out)
├── models.py           # Pydantic v2 output models
├── http_client.py      # Shared httpx clients, retry backoff, error formatting
├── fly.toml
├── Dockerfile
├── pyproject.toml
└── .env.example

Licence

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.