companieswise

companieswise

Provides verified UK company lookup and number validation for AI agents using official Companies House data. Enables lookup of registered details by number, validation of company number format, and search by company name.

Category
Visit Server

README

<div align="center">

<img src="https://qinisolabs.github.io/companieswise/logo.svg" width="96" height="96" alt="Qiniso" />

companieswise

Verified UK company lookup & number validation for AI agents — official Companies House data, not guesses.

Verified, trustworthy data tools for AI agents. "Qiniso" means "truth" in Zulu.

Website · npm · MCP Registry

</div>


Ask an LLM "what's the registered name and status of company 00445790?" and it will answer confidently — and usually wrongly: invented names, the wrong status, a fabricated incorporation date. Company records live in the Companies House register, not a model's weights. companieswise looks the number up in the official Companies House snapshot and returns the real registered details — or an honest "not found" instead of a guess.

⚠️ Read this first — what the data is

  • UK-wide (England & Wales, Scotland, Northern Ireland).
  • A monthly snapshot of the live register. Company status is as of the dataset date, not real-time — a company dissolved last week may still read "Active" until the next snapshot, and dissolved companies are generally absent. For current status, check the live register.
  • Not advice. Not legal, financial, credit, or KYC/AML advice, and not a substitute for statutory due diligence.

Install

{ "mcpServers": { "companieswise": { "command": "npx", "args": ["-y", "companieswise"] } } }

Then load the real data once (the package ships with only a small sample):

npx -p companieswise companieswise-update

This downloads the latest monthly Companies House snapshot (~tens of MB) to a local cache. Re-run it whenever you want to refresh; a GitHub Action rebuilds the snapshot monthly, so companieswise-update always fetches the current month. Until you run it, validate_company_number works fully and lookup_company/search_company clearly say they're on the sample.

Optional: live mode (BYO key)

By default companieswise serves the monthly snapshot (offline, no key). If you set a free Companies House API key, it switches to live queries against the official Companies House API instead — real-time register status, including dissolved companies, on your own key (no shared rate limit):

{
  "mcpServers": {
    "companieswise": {
      "command": "npx",
      "args": ["-y", "companieswise"],
      "env": { "COMPANIESWISE_CH_API_KEY": "your-companies-house-api-key" }
    }
  }
}

lookup_company and search_company use the live API when the key is set (results tagged "dataset": "live") and fall back to the snapshot when it isn't ("dataset": "snapshot"), so it's always clear which you're getting. validate_company_number is offline either way. The key is sent only to the official Companies House API. CH_API_KEY is accepted as an alias.

Use it as a library

npm i companieswise
import { lookupCompany, validateCompanyNumber, searchCompany } from "companieswise";

validateCompanyNumber("SC123456");   // { valid: true, prefix: "SC", meaning: "Company registered in Scotland" }
validateCompanyNumber("6").number;   // "00000006" — normalises/zero-pads
lookupCompany("00000006");           // official name, status, type, incorporation date, postcode, SIC — or found:false
searchCompany("greggs");             // companies whose registered name contains your words

A well-formed number that isn't in the snapshot returns found: false with a clear note — it never invents a company.

Tools — 3

Tool What it answers
lookup_company A company's official registered details by number (name, status, type, incorporation date, registered postcode, primary SIC)
validate_company_number Is this a well-formed UK company number, and what does its prefix denote? (format only — there is no check digit)
search_company Reverse lookup — find a company's number from its name

Data & monthly auto-refresh

The data is the Companies House Free Company Data Product (UK-wide, live register), published under the Open Government Licence v3.0. Because the real dataset is ~5.6M companies — far too large to bundle into an npm package — the design splits code from data:

  • Code ships on npm (tiny).
  • Data is built monthly by a GitHub Action (.github/workflows/refresh-data.yml) that downloads the official snapshot, compiles a compact artifact, and publishes it as a GitHub Release asset.
  • companieswise-update downloads that artifact into a local cache; every response reports its datasetVersion (the snapshot date).

No API key, no rate limit, no per-request cost — lookups run locally against the cached snapshot. See ARCHITECTURE.md for why, and the hosted/real-time path.

What it is not

  • Not real-time. Monthly snapshot of the live register; status is as of the dataset date. For live status use the Companies House API/website.
  • Not the full register. The free snapshot is live companies; dissolved companies are generally absent (absent ≠ "never existed").
  • Not advice, and not a statutory KYC/AML check.
  • Not a guesser — unknown numbers return an honest "not found".

License

Apache-2.0. Company data © Crown copyright, Companies House, Open Government Licence v3.0; see NOTICE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured