Bringing UK Companies House Data to Your AI Stack — A No‑Nonsense Guide to companies‑house‑mcp

1. What You Get
Feature | Why It Matters |
---|---|
Company search (search_companies ) | Keyword lookup across the full CH register. |
Company profile (get_company_profile ) | Legal status, incorporation date, addresses, SIC codes, etc. |
Officer list (get_company_officers ) | Directors and secretaries, past and present. |
Filing history (get_company_filings ) | All documents filed, handy for compliance checks. |
All four tools are exposed in a clean JSON schema, instantly discoverable through tools/list
GitHub. Under the hood it’s a TypeScript codebase that talks to Companies House via Axios and authenticates with the standard API key (basic‑auth username, blank password) developer.company-information.service.gov.uk.
2. Architecture in Plain English
Stdio MCP server — the default entry point (
src/index.ts
). Perfect for local dev or when your LLM runtime can spawn a child process.Fastify HTTP bridge — start
npm run start:http
and you get REST endpoints plus an MCP bridge endpoint (/mcp/bridge
) so remote or serverless agents can still speak MCP without a socket GitHub.
That dual‑transport design means you can begin on localhost, then Dockerize and ship to Railway or AWS with zero code changes (a ready‑made Dockerfile
and docker‑compose.yml
are included).
3. Install It (Three Commands, No Excuses)
For production: npm run build && npm start
or just docker compose up
if containers are your jam GitHub.
4. Using It from an LLM
The server spits back the raw Companies House payload; you format it however you like. Same pattern for profiles, officers, and filings. Because MCP normalises error handling, a 404 or bad company number returns a structured McpError
, not some cryptic Axios stack trace GitHub.
5. Hard Truths & Limitations
It’s early‑stage — six commits, one lonely star, and no tests beyond a stubbed Jest example. Assume bugs.
Rate‑limited upstream — Companies House caps you at 600 requests per five minutes; the repo doesn’t include built‑in throttling, so add your own middleware or cache aggressively developer.company-information.service.gov.uk.
No OAuth / streaming — only the public REST endpoints are covered. If you need real‑time streaming or account‑filing, you’ll be coding it yourself.
Security basics left to you — the README reminds you to enable HTTPS and CORS, but enforcement is on the implementer GitHub.
6. Extending or Contributing
The maintainer left a full development guide with project scaffolding, TypeScript types, and a step‑by‑step roadmap for adding new tools or endpoints GitHub. If you want PSC (People with Significant Control) data or bankruptcy info, follow that blueprint and open a PR — the code is small and readable.
7. Verdict
If you need UK company data inside an LLM workflow right now, companies-house-mcp
is a pragmatic starting point. It’s not production‑hardened, but it saves days of boilerplate and plays nicely with both local and remote AI runtimes. Just remember to respect the 600‑calls limit, wrap the server behind HTTPS, and keep an eye on upstream API changes. Contribute back and we might all end up with a rock‑solid MCP micro‑service for the UK’s corporate registry.
Cut the fluff, ship the code.