Companies House Control MCP Server
Pricing
from $50.00 / 1,000 tool calls
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
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.
3. The newest filing usually has no document — and the id lives only in the document link
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 1983effective_period.
Tools
| tool | what it answers |
|---|---|
search_companies | Companies matching a name, with number, status line and previous-name matches |
get_company_profile | Name, status, type, incorporation date, registered office, SIC codes, previous names |
get_filing_history | The filing-history listing, newest first, with document-processing state |
get_control | Persons with significant control: who, what control, status, notified date |
explain_limits | What 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
| Event | Price |
|---|---|
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.