Access UK company data through the Companies House API directly in MCP clients.
This MCP server provides comprehensive access to UK company information through 45+ endpoints, including:
- Company profile - registration info, status, and key dates
- Registered office address - official company address
- Company registers - available registers
- Insolvency information - insolvency status and proceedings
- Exemptions - disclosure exemptions
- UK establishments - UK branches of foreign companies
- Company search - basic and advanced search with multiple filters
- Search all - unified search across all resource types
- Officer search - find company officers by name
- Disqualified officers search - search disqualified directors
- Alphabetical search - companies by name prefix
- Dissolved companies search - find dissolved companies
- Directors and officers - current and past company officials
- Individual officer appointments - specific appointment details
- Officer appointment history - all appointments for an officer
- Officer disqualifications - corporate and natural person disqualifications
- Filing history - accounts, annual returns, and other documents
- Individual filing items - specific document details
- Persons with significant control (PSC) - beneficial ownership
- PSC individuals, corporate entities, and legal persons - detailed PSC information
- PSC statements - notifications and declarations
- PSC verification states and full records
- Registered charges - mortgages and debentures
- Individual charge details - specific charge information
- Register at Companies House Developer Hub
- Create an application to get your API key
The server is available on npm and can be run directly using npx:
npm install -g companies-house-mcp-server
Or use it directly with npx (recommended):
npx companies-house-mcp-server
Add to your Claude Desktop config:
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"companies-house": {
"command": "npx",
"args": ["-y", "companies-house-mcp-server"],
"env": {
"COMPANIES_HOUSE_API_KEY": "your_api_key_here"
}
}
}
}
If you want to build from source:
git clone https://github.com/stefanoamorelli/companies-house-mcp.git
cd companies-house-mcp
npm install
npm run build
# Then use in Claude Desktop config:
{
"mcpServers": {
"companies-house": {
"command": "node",
"args": ["/absolute/path/to/companies-house-mcp/dist/index.js"],
"env": {
"COMPANIES_HOUSE_API_KEY": "your_api_key_here"
}
}
}
}
Search for companies by name or company number
{
"query": "OpenAI",
"items_per_page": 20,
"start_index": 0
}
Get detailed company information
{
"company_number": "13448796"
}
Get the registered office address
{
"company_number": "13448796"
}
Get information about company registers
{
"company_number": "13448796"
}
Get company insolvency information
{
"company_number": "13448796"
}
Get company exemptions
{
"company_number": "13448796"
}
Get UK establishments of a foreign company
{
"company_number": "FC123456"
}
Advanced search with multiple filters
{
"company_name": "Tech",
"company_status": "active",
"incorporated_from": "2020-01-01",
"incorporated_to": "2024-12-31",
"items_per_page": 20
}
Search across all resource types
{
"query": "technology",
"items_per_page": 20
}
Search for company officers
{
"query": "John Smith",
"items_per_page": 20
}
Search for disqualified officers
{
"query": "Smith",
"items_per_page": 20
}
Search companies alphabetically
{
"query": "AAA",
"items_per_page": 20
}
Search dissolved companies
{
"query": "Old Company",
"items_per_page": 20
}
Get list of company officers
{
"company_number": "13448796",
"register_type": "directors",
"items_per_page": 35
}
Get specific officer appointment details
{
"company_number": "13448796",
"appointment_id": "AbCdEfGh"
}
Get all appointments for an officer
{
"officer_id": "OFFICER123",
"items_per_page": 35
}
Get corporate officer disqualification details
{
"officer_id": "CORP123"
}
Get natural person disqualification details
{
"officer_id": "PERSON123"
}
Get company filing history
{
"company_number": "13448796",
"category": "accounts",
"items_per_page": 25
}
Get specific filing details
{
"company_number": "13448796",
"transaction_id": "MzM4NTY3"
}
Get list of company charges
{
"company_number": "13448796",
"items_per_page": 25
}
Get specific charge details
{
"company_number": "13448796",
"charge_id": "CHARGE123"
}
Get list of PSCs
{
"company_number": "13448796",
"items_per_page": 25
}
Get individual PSC details
{
"company_number": "13448796",
"psc_id": "PSC123"
}
Get corporate entity PSC details
{
"company_number": "13448796",
"psc_id": "CORP-PSC123"
}
Get legal person PSC details
{
"company_number": "13448796",
"psc_id": "LEGAL-PSC123"
}
Get PSC statements
{
"company_number": "13448796",
"items_per_page": 25
}
Get specific PSC statement
{
"company_number": "13448796",
"statement_id": "STMT123"
}
Additional PSC tools available:
get_psc_individual_beneficial_owner
get_psc_individual_verification
get_psc_individual_full_record
get_psc_corporate_entity_beneficial_owner
get_psc_legal_person_beneficial_owner
get_psc_super_secure
get_psc_super_secure_beneficial_owner
The codebase follows a modular architecture for maintainability and scalability:
src/
├── api/ # API client modules
│ ├── base-client.ts # Base HTTP client with auth
│ ├── company-api.ts # Company endpoints
│ ├── search-api.ts # Search endpoints
│ ├── officers-api.ts # Officers endpoints
│ ├── filing-api.ts # Filing history endpoints
│ ├── charges-api.ts # Charges endpoints
│ ├── psc-api.ts # PSC endpoints
│ └── client.ts # Main API client aggregator
├── handlers/ # MCP request handlers
│ ├── company-handlers.ts
│ ├── search-handlers.ts
│ ├── officers-handlers.ts
│ ├── filing-handlers.ts
│ ├── charges-handlers.ts
│ └── psc-handlers.ts
├── tools/ # Tool definitions
│ └── tools-definition.ts
├── types/ # TypeScript types & schemas
│ ├── company.ts
│ ├── search.ts
│ ├── officers.ts
│ ├── filing.ts
│ ├── charges.ts
│ ├── psc.ts
│ └── index.ts
└── mcp-server.ts # Main MCP server
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lint
# Build
npm run build
# Run locally
npm run dev
The Companies House API has rate limits:
- 600 requests per 5 minutes per API key
- Some endpoints may have additional restrictions
GNU Affero General Public License v3.0 - see LICENSE file for details.
For commercial licensing options, contact: stefano@amorelli.tech
© 2025 Stefano Amorelli (https://amorelli.tech)