Skip to main content
Glama

Get Company Profile

company_profile
Read-onlyIdempotent

Fetch the full Companies House profile for a company number.

Returns status, registered address, SIC codes, filing compliance (overdue accounts and confirmation statement flags), and whether the company has outstanding charges. Use company_search first to find the company number.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
company_numberYesCompanies House company number (8 digits, e.g. '03782379'). Returned by company_search.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountsNoAccounts filing status and due dates.
sic_codesNoStandard Industrial Classification codes.
has_chargesNoTrue if the company has at least one outstanding or part-satisfied charge (secured debt) — not yet fully discharged. False if every charge on record is fully satisfied, or there are none. Null if the charges check could not be completed, or if a charge was returned with an unrecognized status that can't be confidently classified. Use company_charges for the full charge-by-charge detail.
company_nameNoRegistered company name.
company_typeNoCompanies House company type code.
company_numberYesCompanies House company number.
company_statusNoCurrent status (active, dissolved, in liquidation, etc.).
date_of_creationNoIncorporation date (ISO YYYY-MM-DD).
confirmation_statementNoConfirmation statement filing status and next due date.
registered_office_addressNoRegistered office address as returned by Companies House.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / has_charges / anyOf
      Added value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / has_charges / default
      Previous value: -falseNew value: +null
    • changedOutput schema / properties / has_charges / description
      Previous value: -"True if the company has outstanding registered charges (secured debt), derived from the /charges endpoint. A due diligence signal."New value: +"True if the company has at least one outstanding or part-satisfied charge (secured debt) — not yet fully discharged. False if every charge on record is fully satisfied, or there are none. Null if the charges check could not be completed, or if a charge was returned with an unrecognized status that can't be confidently classified. Use company_charges for the full charge-by-charge detail."
    • removedOutput schema / properties / has_charges / type
      Removed value: -"boolean"
  2. Added
  3. Removed
  4. Added
  5. Removed
  6. Changed16 schema fields changed
    • removedInput schema / properties / response_format
      Removed value: -{
      -  "default": "markdown",
      -  "description": "Output format: 'markdown' or 'json'",
      -  "type": "string"
      -}
    • changedOutput schema / description
      Previous value: -"Generic wrapper for non-object return types."New value: +"Full Companies House profile for a single company number."
    • addedOutput schema / properties / accounts
      Added value: +{
      +  "description": "Accounts filing status and due dates.",
      +  "properties": {
      +    "last_accounts_made_up_to": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "ISO date the most recent filed accounts were made up to."
      +    },
      +    "next_due": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "ISO date the next set of accounts is due."
      +    },
      +    "overdue": {
      +      "default": false,
      +      "description": "True if accounts are past their due date at Companies House.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / company_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Registered company name."
      +}
    • addedOutput schema / properties / company_number
      Added value: +{
      +  "description": "Companies House company number.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / company_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Current status (active, dissolved, in liquidation, etc.)."
      +}
    • addedOutput schema / properties / company_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Companies House company type code."
      +}
    • addedOutput schema / properties / confirmation_statement
      Added value: +{
      +  "description": "Confirmation statement filing status and next due date.",
      +  "properties": {
      +    "next_due": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "ISO date the next confirmation statement is due."
      +    },
      +    "overdue": {
      +      "default": false,
      +      "description": "True if the confirmation statement is past its due date.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / date_of_creation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Incorporation date (ISO YYYY-MM-DD)."
      +}
    • addedOutput schema / properties / has_charges
      Added value: +{
      +  "default": false,
      +  "description": "True if the company has active registered charges (secured debt). A due diligence signal.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / raw
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Full raw Companies House profile payload. Use for any field not surfaced explicitly on this model.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / registered_office_address
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Registered office address as returned by Companies House.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / sic_codes
      Added value: +{
      +  "description": "Standard Industrial Classification codes.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "company_number"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  7. First observed

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds what data will be returned and note of compliance and charge flags, which is useful. It does not discuss rate limits, pagination, or response shape, but the output schema covers some of that burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with action and scope, and every sentence serves a purpose: main function, expected contents, and prerequisite step. There is no filler or unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with an output schema and fully documented input, the description is complete: it explains what the agent will get, why it might want this endpoint, and how to obtain the required company number. Nothing stands out as missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the only parameter: company_number includes format, max length, an example, and a pointer to company_search. The description reinforces the prerequisite but adds no meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('full Companies House profile'), and makes the scope concrete by enumerating the included data (status, address, SIC codes, compliance flags, charges). This clearly distinguishes it from the sibling tools focused on search, filings, officers, or charges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to 'Use company_search first to find the company number,' which is a clear precondition and usage cue. It does not explicitly contrast with the alternative company-specific endpoints (e.g., company_filing_history, company_charges), so it is clear but not fully exclusionary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation4/5

The domain-specific tools are clearly distinct (search vs profile for each register), and the generic search/fetch tools are designed to route across them. Potential overlap between company_officers and company_psc is resolved by clear descriptions of officers vs beneficial ownership. Slight ambiguity exists between generic fetch/search and the domain-specific counterparts, but the routing logic is well-documented.

Naming Consistency4/5

Most tools follow a consistent resource_action pattern with clear prefixes (charity_, company_, disqualified_, gazette_). Exceptions like company_officers, company_psc, sanctions_screen, and vat_validate deviate from the verb-first convention, and generic tools (fetch, search, get_prompt, list_prompts) do not follow the pattern. Overall, the naming is readable and predictable despite a few outliers.

Tool Count4/5

With 17 tools, the server sits slightly above the typical 3-15 well-scoped range, but the breadth of the domain (Companies House, Charity Commission, disqualifications, Gazette insolvency, sanctions, land registry, VAT) justifies the count. Each tool serves a distinct data source or action, and the two prompt-management tools are standard MCP utilities. The count feels appropriate rather than excessive.

Completeness4/5

The server covers the core due diligence workflow: searching and retrieving profiles for companies, charities, and disqualified directors, plus insolvency notices, sanctions screening, land transactions, and VAT validation. Minor gaps exist, such as no direct tool for company accounts or court judgments, but these are not core to the apparent purpose and can be worked around.