/mcp

POST Same credits as the REST API

Protocol Model Context Protocol revision 2026-07-28. Clients on the 2025 revisions are served too — the endpoint answers both from the same tool definitions.

Give an AI assistant direct access to UK company data. Point any MCP client at one endpoint and it gains 15 read-only tools covering the registry, filed accounts, ownership, property, funding and news. Calls are authenticated with the API key you already have and drawn from the same monthly credit allowance — there is no separate plan, quota or bill.

Endpoint

MCP endpoint
https://api.ukdatalayer.com/mcp

Authenticate with X-API-Key or Authorization: Bearer, exactly as you do over REST. The endpoint accepts POST only.

Connect Claude Code

Terminal
claude mcp add --transport http ukdatalayer https://api.ukdatalayer.com/mcp \
  --header "X-API-Key: YOUR_API_KEY"

Connect any other client

Cursor, VS Code and most desktop clients take the same JSON. Drop this into the client's MCP configuration file.

mcp.json
{
  "mcpServers": {
    "ukdatalayer": {
      "type": "http",
      "url": "https://api.ukdatalayer.com/mcp",
      "headers": { "X-API-Key": "YOUR_API_KEY" }
    }
  }
}

Tools

Every tool is read-only. Start with search_companies to turn a name or a description into a company number, then pass that number to the rest.

ToolWhat it returnsCredits
search_companiesFind companies by what they do, not just by name. The entry point: turns a name or a description into the company number every other tool takes.1
get_companyThe registry profile: status, incorporation, address, SIC codes, size band. Optionally attaches other layers in the same call.1 + layers
get_financialsParsed figures from filed accounts, with a 17-ratio block and a link to the source filing.2 per period
get_officersDirectors and other officers, with appointment and resignation dates.1
get_ownershipPersons with significant control, shareholders, and any PSC exemption on file.2
get_filingsFiling history in plain English, each with its Companies House document link.1
get_chargesCharges registered against the company — the secured lending picture.1
get_propertiesLand Registry titles held in the company name, with price paid where published.1
get_grantsPublic grant awards matched to the legal entity, with funder and programme.1
get_fundraisingsEquity raised, reconstructed from filed share allotments.2
get_group_structureParents above and subsidiaries below, flat or as a nested tree.2
get_personOne person and every directorship they hold or have held.1
get_intelligenceWhat the company sells and who it sells to, derived from its verified website.1
get_newsRecent coverage, matched to the company rather than to a similar name.3 (1 stale)
get_credit_balanceCredits remaining, plan, and when the allowance resets.Free

Billing

  • A tool call costs exactly what the equivalent REST call costs. The same key, the same monthly allowance, the same usage meter in your dashboard.
  • Discovery is free: listing the tools never consumes a credit, and it keeps working after the allowance is spent so a client does not appear broken.
  • Failed calls are never charged, and neither is a definite nothing on record answer. The one exception is a live news lookup, which is billed on the work rather than the outcome because it costs us money upstream.
  • Each result reports what it cost and what is left, so an assistant can pace itself over a long run of lookups. get_credit_balance is free and answers the same question directly.

Working with the data

  • A null means not disclosed. It never means zero — most small companies do not publish turnover, and an absent figure is not a small one.
  • Long lists are trimmed to keep answers readable, and say so with a _truncated flag. The count fields always describe the full set, so a trimmed answer never reads as a complete one.
  • Ask for layers together rather than separately: one get_company call with include costs the same as the individual calls and takes one round trip.

Checking it by hand

The transport is plain JSON-RPC over HTTP POST, so you can exercise it with curl before wiring up a client.

tools/list
curl -X POST https://api.ukdatalayer.com/mcp \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {
      "_meta": {
        "io.modelcontextprotocol/protocolVersion": "2026-07-28",
        "io.modelcontextprotocol/clientCapabilities": {}
      }
    }
  }'