Skip to main content
Glama

Get Company Filing History

company_filing_history
Read-onlyIdempotent

Fetch one page of a company's Companies House filing chronology.

Returns the raw source facts for each filing — transaction ID, form type/category, dates, and the description_values CH uses to render its own text — as delivered upstream, not interpreted into DD conclusions. links.document_metadata on each filing is the identifier a future document-retrieval tool would need; no document content is fetched here.

Unlike company_officers/company_psc/company_charges, this does NOT auto-fetch every page — a long-lived company's filing history is unbounded in practice (a decades-old PLC can carry thousands of filings). total_count/returned/has_more are always reported truthfully for whatever page and category filter was requested; nothing is silently truncated. Narrow with category= for a specific slice (e.g. category='mortgage' for charge-related filings, category='insolvency' for administration/liquidation filings) — a note is included when an unfiltered history is large.

A company_number that doesn't resolve to any company returns a structured not_found error, distinct from a genuine zero-filing result — Companies House's filing-history endpoint alone cannot tell these apart, so existence is confirmed separately when the result would otherwise be empty.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by CH filing category — comma-separated for multiple, e.g. 'mortgage' or 'mortgage,officers'. Omit for all categories. Common values: accounts, confirmation-statement, officers, address, capital, mortgage, persons-with-significant-control, incorporation, insolvency, resolution, annual-return, change-of-name, change-of-constitution, gazette, miscellaneous.
start_indexNoPagination offset. Default 0. Re-call with start_index=start_index+returned while has_more is true.
company_numberYesCompanies House company number (8 digits, e.g. '03782379'). Returned by company_search.
items_per_pageNoResults per page (Companies House caps at 100 regardless of a higher value). Default 100.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoAdvisory note, e.g. suggesting a category filter when total_count is large and no category was applied. Informational only — never a truncation.
filingsNoFilings on this page.
categoryNoThe category filter applied to this query, or null if unfiltered.
has_moreYesTrue if start_index + returned < total_count.
returnedYesFilings returned on this page.
start_indexYesPagination offset used for this page.
total_countYesTotal filings matching this query (across all pages).
company_numberYesCompanies House company number.
items_per_pageYesPage size actually used (CH caps at 100 regardless of a higher request).
filing_history_statusNoUpstream filing-history status (e.g. 'filing-history-available').

Schema Changelog

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

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description richly discloses semantics: it returns raw upstream facts rather than interpreted DD conclusions, enforces single-page semantics, reports pagination fields truthfully, and never silently truncates. It also narrates the structured not_found error distinction—valuable operational detail not evident from annotations.

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 front-loaded with the essential purpose, then layers nuance: raw facts, pagination behavior, category filtering, and error semantics. It is longer than one-liners, but every sentence carries operational value for an agent deciding whether to invoke the tool and how to interpret its result.

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?

Given the tool's complexity, a rich output schema is already present, and the description covers what the agent cannot easily infer: the unbounded pagination problem, the distinction between empty results and not_found, truthful pagination counters, and the non-retrieval of document content. It is complete enough to support correct invocation and interpretation.

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?

Schema description coverage is 100%, so parameters are already well-documented in the input schema. The description does not systematically add per-parameter semantics, but it adds meaningful usage context such as why category filtering matters (unbounded histories) and how pagination fields behave (start_index=start_index+returned while has_more). That lifts it to the correct baseline but not above.

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 starts with a specific verb ('Fetch') and resource ('one page ... Companies House filing chronology'), accurately reflecting the tool's scope as paginated/chronological rather than exhaustive. It simultaneously differentiates from sibling tools like company_officers, company_psc, and company_charges by noting the no-auto-fetch behavior, making it easy for an agent to select this tool without opening schemas.

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

Usage Guidelines5/5

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

It explicitly contrasts this tool with company_officers/company_psc/company_charges, states when pagination is required rather than auto-fetched, and advises narrowly using category= for large histories. It also tells the agent that document content is not retrieved and points to links.document_metadata as a future identifier, providing clear when-to-use/when-not-to-use guidance.

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.