MCP server for the UK Companies House public register — connects Claude, Codex, Cursor, Zed and other MCP clients to live company data
This MCP server provides 15 read-only tools for accessing UK Companies House public register data. Tool names follow a clear verb_noun pattern (search, get profile, list officers, etc.). Descriptions are present and action-oriented, with most in the 50-150 character range, well within the 10-1024 guideline. Input schemas are explicitly defined with type information and parameter descriptions. However, there are meaningful gaps: output schemas are not documented in the evaluation materials, error handling lacks recovery guidance, and some parameter descriptions could be more prescriptive about constraints and valid ranges. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible in the source. Overall, this is a solid mid-tier implementation, better than most community servers, but short of production-grade polish.
Get the charges (mortgages, debentures, etc.) registered against a company
Get disqualification information for an officer
Download a filed document from Companies House (returns document metadata and binary content)
Get exemptions data for a company (e.g., exemptions from filing certain documents)
Get filing history for a company, showing all documents filed at Companies House
Get insolvency information for a company, including administration, receivership, and liquidation cases
Get all appointments (past and current) for an individual officer
Output schemas are not documented. LLMs cannot know what fields to expect in tool responses, which breaks downstream tool chaining and forces agents to infer structure from partial data.
Parameter constraint descriptions are generic. E.g., 'Number of results per page (default: 20, max: 100)' appears verbatim across many tools, but lacks guidance on when to use lower/higher values. Describe impact: 'Lower limits reduce latency; higher limits return more matches but increase parsing complexity.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | 2024-11-05+ | v1 |
Search for officers (directors, secretaries) by name
Get the current officers (directors, secretaries, etc.) of a company
Get the full company profile including status, type, incorporation date, and registered office
Get persons with significant control (PSC) — the ultimate beneficial owners of a company
Get PSC statements — filed statements explaining the company's position on persons with significant control
Get information about the registers a company maintains (members, directors, secretaries, charges, etc.)
Search the Companies House register for companies by name
Get UK establishments for an overseas company registered at Companies House
No tool annotations visible. Tools do not declare readOnlyHint=true (all are safe, non-destructive), idempotentHint=true (safe to retry), or error recovery guidance. Tool annotations improve LLM decision-making around retries and caching.
Error handling lacks recovery guidance. When a company_number is invalid or not found, tool descriptions do not indicate what the LLM should try next (e.g., call search() first, or clarify the company name with the user).
The 'document' tool is ambiguously named. 'download_document' or 'get_filing_document' would be clearer that it retrieves binary content. Current name could be confused with 'get_document' (metadata only).