npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

companies-house-mcp-server

v3.1.0

Published

MCP server for Companies House API integration

Readme

Companies House MCP Server

Companies House MCP Server - Demo

Access UK company data through the Companies House API directly in MCP clients.

What it does

This MCP server provides comprehensive access to UK company information through 45+ endpoints, including:

Company Information

Search Capabilities

  • 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

Officers & Appointments

  • 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 & Documents

  • Filing history - accounts, annual returns, and other documents
  • Individual filing items - specific document details

Ownership & Control

  • 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

Financial

  • Registered charges - mortgages and debentures
  • Individual charge details - specific charge information

Setup

Get an API key

  1. Register at Companies House Developer Hub
  2. Create an application to get your API key

Install

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

Configure Claude Desktop

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"
      }
    }
  }
}

Build from source (optional)

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"
      }
    }
  }
}

Available Tools

Company Information Tools

search_companies

Search for companies by name or company number

{
  "query": "OpenAI",
  "items_per_page": 20,
  "start_index": 0
}

get_company_profile

Get detailed company information

{
  "company_number": "13448796"
}

get_registered_office_address

Get the registered office address

{
  "company_number": "13448796"
}

get_registers

Get information about company registers

{
  "company_number": "13448796"
}

get_insolvency

Get company insolvency information

{
  "company_number": "13448796"
}

get_exemptions

Get company exemptions

{
  "company_number": "13448796"
}

get_uk_establishments

Get UK establishments of a foreign company

{
  "company_number": "FC123456"
}

Search Tools

advanced_company_search

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_all

Search across all resource types

{
  "query": "technology",
  "items_per_page": 20
}

search_officers

Search for company officers

{
  "query": "John Smith",
  "items_per_page": 20
}

search_disqualified_officers

Search for disqualified officers

{
  "query": "Smith",
  "items_per_page": 20
}

alphabetical_search

Search companies alphabetically

{
  "query": "AAA",
  "items_per_page": 20
}

dissolved_search

Search dissolved companies

{
  "query": "Old Company",
  "items_per_page": 20
}

Officers Tools

get_officers

Get list of company officers

{
  "company_number": "13448796",
  "register_type": "directors",
  "items_per_page": 35
}

get_officer_appointment

Get specific officer appointment details

{
  "company_number": "13448796",
  "appointment_id": "AbCdEfGh"
}

get_officer_appointments_list

Get all appointments for an officer

{
  "officer_id": "OFFICER123",
  "items_per_page": 35
}

get_corporate_officer_disqualification

Get corporate officer disqualification details

{
  "officer_id": "CORP123"
}

get_natural_officer_disqualification

Get natural person disqualification details

{
  "officer_id": "PERSON123"
}

Filing History Tools

get_filing_history

Get company filing history

{
  "company_number": "13448796",
  "category": "accounts",
  "items_per_page": 25
}

get_filing_history_item

Get specific filing details

{
  "company_number": "13448796",
  "transaction_id": "MzM4NTY3"
}

Charges Tools

get_charges

Get list of company charges

{
  "company_number": "13448796",
  "items_per_page": 25
}

get_charge_details

Get specific charge details

{
  "company_number": "13448796",
  "charge_id": "CHARGE123"
}

Persons with Significant Control Tools

get_persons_with_significant_control

Get list of PSCs

{
  "company_number": "13448796",
  "items_per_page": 25
}

get_psc_individual

Get individual PSC details

{
  "company_number": "13448796",
  "psc_id": "PSC123"
}

get_psc_corporate_entity

Get corporate entity PSC details

{
  "company_number": "13448796",
  "psc_id": "CORP-PSC123"
}

get_psc_legal_person

Get legal person PSC details

{
  "company_number": "13448796",
  "psc_id": "LEGAL-PSC123"
}

get_psc_statements_list

Get PSC statements

{
  "company_number": "13448796",
  "items_per_page": 25
}

get_psc_statement

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

Architecture

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

Development

# Run tests
npm test

# Type checking
npm run typecheck

# Linting
npm run lint

# Build
npm run build

# Run locally
npm run dev

API Rate Limits

The Companies House API has rate limits:

  • 600 requests per 5 minutes per API key
  • Some endpoints may have additional restrictions

License

GNU Affero General Public License v3.0 - see LICENSE file for details.

For commercial licensing options, contact: [email protected]

© 2025 Stefano Amorelli (https://amorelli.tech)