Skip to main content
Glama
EdwardRadford

companies-house-mcp

list_officers

Read-onlyIdempotent

Retrieve a company's directors, secretaries, and LLP members with appointment dates, occupation, nationality, and birth month/year. Optionally include resigned officers.

Instructions

List a company's directors, secretaries and LLP members, with appointment dates, occupation, nationality and month and year of birth.

active_count and resigned_count cover the whole company even when one page does not. Addresses are deliberately left out.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoOfficers per page, before resigned ones are removed.
start_indexNoOffset for paging. Use next_start_index from a previous result.
company_numberYesCompanies House company number, e.g. 00445790 or SC123456. Spaces and missing leading zeros are fine. Get it from search_companies if you only have a name.
include_resignedNoInclude former officers. Off by default: most questions are about who is in post.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
officersYes
active_countYes
company_numberYes
resigned_countYes
next_start_indexNoPass this as start_index to get the next page. Null when there are no more results.
resigned_omittedNoResigned officers on this page left out because include_resigned was false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it warns that active_count and resigned_count span the entire company even when pagination truncates the list, and it notes that addresses are deliberately omitted. These nuances help an agent interpret results correctly and avoid assuming data completeness.

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 two short, information-dense sentences. The first sentence states the tool's purpose and output fields, and the second covers two important behavioral caveats. There is no fluff, and the key information is front-loaded.

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

Completeness4/5

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

For a paginated list tool with an output schema, the description covers the essential purpose and two critical behavioral notes (company-wide counts and address omission). It does not explain pagination mechanics, but the schema documents start_index and limit. Given the output schema exists, the description is sufficiently complete for an agent to call the tool correctly.

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 provides a 100% description coverage for all four parameters, including defaults, ranges, and usage notes. The description itself does not elaborate on parameters beyond what the schema already states. Since the schema carries the full semantic load, a baseline score 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 opens with a specific verb ('List') and resource ('a company's directors, secretaries and LLP members'), then enumerates the exact data returned. This clearly differentiates it from sibling tools like list_filings or list_charges, which serve different resources.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it list exclusions. It does provide a practical hint inside the company_number parameter description—'Get it from search_companies if you only have a name'—but this is about obtaining an input, not about selecting the tool itself. The purpose is clear enough for an agent to infer appropriate usage, but explicit guidance is absent.

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