Companies House Control MCP Server avatar

Companies House Control MCP Server

Pricing

from $50.00 / 1,000 tool calls

Go to Apify Store
Companies House Control MCP Server

Companies House Control MCP Server

Answer questions about UK companies from the Companies House public register: company profile, filing history, and who the register says controls the company.

Pricing

from $50.00 / 1,000 tool calls

Rating

0.0

(0)

Developer

NexGen Watch

NexGen Watch

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Categories

Share

Answer questions about UK companies from the Companies House public register — profile, filing history, and who the register says controls the company — live, for onboarding and investigation work.

The source, and why this one

The Companies House REST API is key-gated: measured today it answers 401 {"error":"Empty Authorization header"}. This server uses the public company-information web service, which needs no key, no login and no cookie — the same contract as our shipped UK register watch product.

Four things this server gets right that a naive read gets wrong

Every one measured live against the source on 2026-07-30.

1. The search page contains a template that looks exactly like a result

A document-wide scan of <li class="type-company"> returns 21 rows on a live search page. One of them lives inside <script id="hit-template"> and its company name is the literal string {{{title}}}. Scoped to the results container the same scan returns 20, none of them templates.

This server extracts the results container first, and refuses if it is missing — rather than falling back to a document-wide scan, which is the bug itself.

2. Search matches previous names, so a hit need not contain your query

Measured: searching tesco returns KFORD TYRES (GORNAL) LTD at rank 2, because its previous name was TESCO TYRES LTD. Correct register behaviour, and surprising if you assume otherwise. Every row carries the register's own match note.

The transaction id appears only inside the "View PDF" link, and the register says of the newest filing that the document "is being processed and will be available in 10 days". Anything keyed on that link drops exactly the newest filing. Rows without one get a deterministic key from date + type + description, and document_available tells you which kind of key you are holding.

4. The public PSC page carries no official identifier

The only link inside a person-with-control block is a feedback survey. The strongest identity the page offers is company number + normalised name + notified-on date, and every record says so rather than implying a Companies House id.

Also: the date beside a previous company name is a period (

14 Dec 1981 - 25 Aug 1983
), not a ceased date. It is reported as effective_period.

Tools

toolwhat it answers
search_companiesCompanies matching a name, with number, status line and previous-name matches
get_company_profileName, status, type, incorporation date, registered office, SIC codes, previous names
get_filing_historyThe filing-history listing, newest first, with document-processing state
get_controlPersons with significant control: who, what control, status, notified date
explain_limitsWhat this server will and will not say, and the four traps above. Read before acting.

Scope

The UK Companies House public register. One jurisdiction. Officer appointments, charges, disqualifications and the contents of filing documents are separate pages this server does not open — only the filing-history listing.

This server reports what the public register prints. It does not verify identity, does not certify ownership or control, and its PSC records carry no official Companies House identifier.

robots.txt on that host is 404 — no Disallow and no Crawl-delay — and every outbound call is paced anyway through one shared strict-pacing bucket at 2 requests/second, deliberately slower than the 5/s used against JSON APIs because each call renders a page.

Pricing

EventPrice
Server start (apify-actor-start)$0.05, charged once per server run by the platform
Tool call (mcp-tool-call)$0.05 flat per completed tool call

No other events. Memory is pinned to 1024 MB so the start fee is charged once — on this platform the start event bills once per gigabyte.

Errors and notices are not charged. A malformed company number, an empty query, or a Companies House read failure returns without billing.

A sourced "not on the register" IS charged. If the register returns 404 for a well-formed company number, that is the answer to the question asked — and so is a search that matches nothing.

If a tool call cannot be billed correctly, the call fails rather than serving free.