Companies House MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Companies House MCP Serverget filing history for company 01234567"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Companies House MCP Server
Access UK company data through the Companies House API directly in MCP clients.
Features
45+ tools covering the full Companies House API:
Company info — profile, registered address, registers, insolvency, exemptions, UK establishments
Search — companies (basic & advanced), officers, disqualified officers, dissolved companies, alphabetical
Officers — directors list, appointments, disqualifications
Filing history — accounts, annual returns, document details
PSC (ownership) — individuals, corporate entities, legal persons, statements, verification
Charges — mortgages, debentures, charge details
Related MCP server: companies-house-mcp
Setup
1. Get an API key
Register at the Companies House Developer Hub and create an application.
2. Configure your MCP client
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on Mac, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"companies-house": {
"command": "npx",
"args": ["-y", "companies-house-mcp-server"],
"env": {
"COMPANIES_HOUSE_API_KEY": "your_api_key_here"
}
}
}
}Build from source (optional)
git clone https://github.com/stefanoamorelli/companies-house-mcp.git
cd companies-house-mcp
npm install && npm run buildThen point your MCP client to node /path/to/companies-house-mcp/dist/index.js.
Development
npm test # Run tests
npm run typecheck # Type checking
npm run lint # Linting
npm run build # Build
npm run dev # Run locallyAPI 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.
For commercial licensing: stefano@amorelli.tech
© 2025 Stefano Amorelli (https://amorelli.tech)
Available Tools
37 toolsadvanced_company_searchC
Advanced search for companies with multiple filters
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | Location | |
| sic_codes | No | SIC codes (comma separated) | |
| start_index | No | Starting index for pagination | |
| company_name | No | Company name to search for | |
| company_type | No | Company type | |
| dissolved_to | No | Dissolved to date (YYYY-MM-DD) | |
| company_number | No | Company number to search for | |
| company_status | No | Company status (active, dissolved, etc.) | |
| dissolved_from | No | Dissolved from date (YYYY-MM-DD) | |
| items_per_page | No | Number of results per page (1-100) | |
| company_subtype | No | Company subtype | |
| incorporated_to | No | Incorporated to date (YYYY-MM-DD) | |
| incorporated_from | No | Incorporated from date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as read-only nature, authentication needs, rate limits, or side effects. For a search tool, it fails to state whether it returns list or aggregates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it omits critical details. It is not verbose, but the brevity sacrifices clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 optional parameters and no output schema, the description is too sparse. It does not explain how filters combine, pagination behavior, or expected output format, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a minimal description. The tool description adds no extra meaning beyond the schema. Baseline 3 is appropriate as the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs an 'advanced search for companies', which is specific. However, it does not differentiate from sibling tools like 'search_companies' or 'alphabetical_search', missing details on what makes this search advanced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With sibling tools like 'search_companies', the description lacks criteria for choosing this advanced search over simpler ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alphabetical_searchB
Search companies alphabetically by name prefix
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name prefix | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions the search method (alphabetical) but does not describe return format, pagination behavior, authentication needs, or side effects. This is insufficient for a tool without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the core purpose. It is front-loaded and contains no unnecessary information, though additional structure (e.g., listing use cases) could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no output schema, and moderate complexity. The description adequately explains the search purpose but omits details about return structure or pagination behavior, which would be useful given the absence of an output schema. It is minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions, achieving 100% coverage. The description adds the value 'alphabetically', which clarifies the ordering semantics beyond the schema's 'Company name prefix'. This is a meaningful addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search companies alphabetically by name prefix' clearly states the verb (Search), resource (companies), and method (alphabetically by name prefix). It effectively distinguishes this tool from siblings like 'search_companies' and 'advanced_company_search' which imply different search modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'search_companies' or 'advanced_company_search'. It lacks context like prerequisites or exclusions, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dissolved_searchB
Search for dissolved companies
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Dissolved company name to search for | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the purpose without disclosing behavior such as search algorithm, results format, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and concise, but lacks any structure beyond a single phrase. It is not verbose, but also not well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description should explain return values and pagination behavior. It does not, leaving the agent guessing about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the parameter names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and resource ('dissolved companies'), clearly distinguishing it from siblings like 'search_companies' which likely returns only active companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other search tools (e.g., 'advanced_company_search', 'search_companies'). Lacks context of when it is appropriate or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_charge_detailsC
Get details of a specific charge
| Name | Required | Description | Default |
|---|---|---|---|
| charge_id | Yes | The charge ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get details', implying a read operation, but fails to mention any behavioral traits such as idempotency, rate limits, or whether it requires specific permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. While it lacks depth, it wastes no words and efficiently communicates the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and two required parameters, the description is incomplete. It does not explain what details are returned (e.g., fields, pagination) or any constraints, leaving significant gaps for a data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with parameter descriptions 'The charge ID' and 'The company number' being minimal but sufficient. The tool description does not add any extra meaning beyond the schema, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details of a specific charge' clearly states the verb and resource, indicating it retrieves information about a single charge. However, it does not differentiate from the sibling tool 'get_charges', which likely lists charges, but the purpose is still clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent without direction on when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chargesB
Get charges registered against a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| start_index | No | Starting index for pagination | |
| company_number | Yes | The company number | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states what it does but not behavioral traits like pagination, result format, or whether it returns a list. Minimal disclosure beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words, effectively communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 3 parameters and no output schema, description omits crucial context like pagination behavior, default values, and how to interpret the response. Schema covers parameters but description should tie them together.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond what's already in the schema for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'get' and resource 'charges registered against a specific company', clearly distinguishing it from sibling tools like 'get_charge_details'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned. The sibling 'get_charge_details' exists for single charge details, but description does not guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileB
Get detailed profile information for a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, error handling, or what happens if the company number is invalid. The description is too brief to compensate for the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. However, it could be slightly more informative without becoming verbose (e.g., hinting at output contents).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is too minimal. It does not explain what 'detailed profile information' includes, leaving the agent uncertain about the scope of the return data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema describes the only parameter ('company_number') as 'The company number'. The description adds no additional meaning beyond this, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed profile information for a specific company'). It succinctly distinguishes this tool from sibling search tools like 'advanced_company_search' and specific detail tools like 'get_charges'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., individual detail tools like get_officers, get_charges). No context on prerequisites or typical use cases is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_officer_disqualificationB
Get disqualification details for a corporate officer
| Name | Required | Description | Default |
|---|---|---|---|
| officer_id | Yes | The officer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks behavioral details such as authentication needs, rate limits, or what specific disqualification details are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence but is too minimal; sacrifices useful context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple structure, the description should hint at response contents, but it does not, leaving the tool's output ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already defines the single parameter. The description adds no further meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description clearly indicate the tool retrieves disqualification details for a corporate officer, distinguishing it from sibling 'get_natural_officer_disqualification'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_natural_officer_disqualification', nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_contentC
Fetch a document content (PDF)
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | The document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only indicates fetching PDF content, but fails to mention whether it returns binary data, requires authentication, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is efficient but omits important details. It is front-loaded but lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It does not explain return values, error handling, or how the content is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter with a basic description. The tool's description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'document content (PDF)', indicating what the tool does. However, it does not differentiate from sibling tools like get_document_metadata, which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_metadataC
Fetch a document's metadata
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | The document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'Fetch' implying a read operation, but it does not disclose authentication requirements, rate limits, error conditions, or what constitutes 'metadata'. The transparency is minimal and insufficient for an informed agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It conveys the core action efficiently. Every word earns its place in this minimal context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description should elaborate on what metadata is returned (e.g., fields, format). It does not, leaving the agent without sufficient context to understand the output or handle edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the 'document_id' parameter already described in the schema. The description adds no additional context or constraints beyond the parameter name and schema description. Baseline score of 3 is appropriate as no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb 'Fetch' and specifies the resource 'document's metadata'. It effectively distinguishes from sibling tools like 'get_document_content' which fetches actual document content. However, it does not explicitly state what is not included (e.g., scoping or filtering), leaving minor ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, no exclusions, and no context about typical use cases. The agent is left to infer usage solely from the tool name and sibling structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exemptionsB
Get company exemptions information
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but offers no behavioral details. It does not mention whether the tool is read-only, requires specific permissions, or has any side effects. The simplicity of the tool mitigates this slightly, but it is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and to the point, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter and no output schema, the description provides the necessary core purpose. However, it lacks information about the return format or what 'exemptions' entails, leaving gaps for an agent unfamiliar with the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter 'company_number' is already documented in the schema. The description adds no additional meaning, format, or source guidance, making it baseline adequate without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves company exemptions information, using a specific verb and resource. It distinguishes itself from sibling tools like get_company_profile or get_charges, though it could benefit from specifying the type of exemptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or context about when it is appropriate to use, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_historyB
Get filing history for a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of filing history | |
| start_index | No | Starting index for pagination | |
| company_number | Yes | The company number | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavior. It only states the action, omitting details like pagination, ordering, or that results are read-only. For a retrieval tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words) and front-loaded. However, it is so brief that it sacrifices completeness. It effectively communicates the core action without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description should explain the return format or pagination. It does not, making it only partially complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema (100% coverage). The description adds no extra meaning beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('filing history') for a specific company. It is concise and directly conveys the tool's primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_filing_history_item) or under what circumstances it is appropriate. With 37 sibling tools, differentiation is critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_history_itemB
Get details of a specific filing history item
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number | |
| transaction_id | Yes | The transaction ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies a read operation but does not disclose any behavioral traits such as authentication needs, rate limits, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain what 'details' are returned. It fails to specify the response structure or content, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no meaning beyond what the schema already provides, so baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a specific filing history item, using verbs 'Get' and 'specific', which distinguishes it from sibling 'get_filing_history' that lists items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_filing_history' or other detail retrieval tools. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insolvencyC
Get company insolvency information
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. It merely restates the purpose without disclosing traits like idempotency, rate limits, or what data fields are included. The agent gains little insight beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous words. It efficiently communicates the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is too sparse. It does not explain the expected output, any limitations, or how the insolvency information is structured. For a retrieval tool with no output schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter (company_number), so the baseline is 3. The description adds no additional semantic meaning beyond the schema's own description. It does not clarify formatting or constraints on company_number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and the resource (insolvency information) for a specific company. It distinguishes from sibling tools which cover other company data like profile, charges, officers, etc. However, it could be more specific about what insolvency information entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, such as whether a company must be active or insolvent. The description does not help the agent decide between this and other get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_natural_officer_disqualificationB
Get disqualification details for a natural officer
| Name | Required | Description | Default |
|---|---|---|---|
| officer_id | Yes | The officer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read operation but does not disclose auth requirements, rate limits, or what 'details' are returned. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter lookup with no output schema, the description is adequate but could be improved by explaining what details are returned or when the tool might fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a basic description 'The officer ID'. Description adds no additional meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'Get', resource 'disqualification details', and specifies 'natural officer' which clearly distinguishes from sibling 'get_corporate_officer_disqualification'. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_corporate_officer_disqualification'. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_officer_appointmentC
Get details of a specific officer appointment
| Name | Required | Description | Default |
|---|---|---|---|
| appointment_id | Yes | The appointment ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It indicates a read operation ('get details') but provides no additional behavioral traits such as authentication requirements, rate limits, or what exactly 'details' includes. It adds minimal value beyond stating the operation type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, achieving conciseness. However, it is too sparse to be fully informative, making it a borderline case. A score of 3 reflects adequate conciseness but insufficient completeness for the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of sibling tools like 'get_officer_appointments_list' and no output schema, the description lacks context needed for an agent to use it correctly. It does not explain what data is returned, how it relates to the list endpoint, or any constraints (e.g., company number must be valid). The description is incomplete for a retrieval tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its two parameters, so the schema already documents their meaning. The description does not add any additional context or constraints regarding the parameters (e.g., format, validation rules, or how they relate to the response). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves details of a specific officer appointment using a verb ('Get') and resource ('details of a specific officer appointment'). However, it does not explicitly differentiate itself from the sibling tool 'get_officer_appointments_list', which likely returns a list rather than a single appointment. The purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context (e.g., needing to first obtain an appointment ID from the list tool), or scenarios where this tool is appropriate. The description gives no usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_officer_appointments_listC
Get all appointments for a specific officer
| Name | Required | Description | Default |
|---|---|---|---|
| officer_id | Yes | The officer ID | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It does not disclose pagination behavior, ordering, rate limits, or that it returns a list of appointments. The schema implies pagination, but the description omits this, misleading agents into thinking 'all' means unbounded results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is concise. While it could be more informative, it contains no fluff and respects the agent's time. It earns its place by stating the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with pagination), no output schema, and absence of annotations, the description is insufficient. It fails to explain return values, pagination behavior, or how it relates to siblings like 'get_officer_appointment'. An agent would lack context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with basic but adequate descriptions for each parameter. The tool description adds no additional meaning beyond the schema, so it meets the baseline but does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'appointments for a specific officer', distinguishing it from siblings like 'get_officer_appointment' (singular) and 'get_officers'. However, 'all appointments' slightly conflicts with pagination parameters, suggesting it returns a list but potentially not all in one request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'get_officer_appointment' for a single appointment or search tools. No exclusions or contextual hints are given, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_officersB
Get list of officers for a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| start_index | No | Starting index for pagination | |
| register_type | No | Type of register (directors, secretaries, llp-members) | |
| company_number | Yes | The company number | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose pagination behavior, return format, or any side effects. For a list tool, pagination details are essential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Front-loaded with purpose, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema, description lacks return structure details, pagination info, and error handling. Incomplete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are fully documented. Description adds no extra meaning beyond schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (get), resource (officers), and scope (for a specific company). Differentiates from siblings like search_officers or get_officer_appointment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With many sibling tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_persons_with_significant_controlC
Get persons with significant control for a specific company
| Name | Required | Description | Default |
|---|---|---|---|
| start_index | No | Starting index for pagination | |
| company_number | Yes | The company number | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. The description only states the basic purpose, omitting any details about pagination (start_index, items_per_page), data freshness, or potential errors. For a data retrieval tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it could be expanded slightly to include key differentiators without becoming verbose. The structure is clean but lacks useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of having many related sibling tools and no output schema, the description is too minimal. It does not explain the return format, pagination behavior, or how it differs from specialized PSC tools. The agent may misuse it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the descriptions in the schema are adequate (pagination, company number). The tool description adds no additional semantic meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states it gets persons with significant control for a specific company, which is clear but does not differentiate from sibling tools like get_psc_individual, get_psc_corporate_entity, etc. The verb 'Get' is generic, and the resource 'persons with significant control' is vague compared to specific PSC types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling PSC tools (e.g., for individuals vs. corporate entities). An agent would not know if this tool returns all PSC types or a subset, or if filtering is possible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_corporate_entityC
Get corporate entity with significant control
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only implies a read operation ('Get'). It does not disclose any behavioral details such as data freshness, permissions, or side effects, leaving the agent without sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. It is concise but could benefit from slight expansion for context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large set of sibling tools with subtle distinctions, the description is too minimal. It lacks differentiation from other corporate PSC tools and does not explain what a 'corporate entity with significant control' entails or when it is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'psc_id' and 'company_number'. The tool description adds no additional meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get corporate entity with significant control' clearly states the verb and resource. It distinguishes from individual PSC tools like 'get_psc_individual' but does not differentiate from other corporate PSC siblings such as 'get_psc_corporate_entity_beneficial_owner'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_psc_corporate_entity_beneficial_owner'. The description provides no context for selection among the many PSC-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_corporate_entity_beneficial_ownerC
Get corporate entity beneficial owner details
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only describes action as 'get' with no mention of side effects, authorization, data freshness, or response structure. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with clear action and target. No redundancy, but could include more useful information without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. Missing details about what 'details' means, any constraints, or differences from similar PSC tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters documented in schema). Description adds no additional meaning beyond what the schema already provides. Baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (Get) and resource (corporate entity beneficial owner details). Distinguishable from sibling tools by name and context, though no explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., get_psc_corporate_entity, get_psc_individual_beneficial_owner). No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_individualC
Get individual person with significant control
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action. It does not disclose any behavioral traits such as read-only nature, required permissions, rate limits, or what the response contains. The description fails to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks structure and additional context. While not verbose, it is under-specified for optimal agent assistance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, two parameters, no output schema, and many sibling tools, the description is incomplete. It does not specify return format or how it differs from similar PSC tools, leaving the agent without enough context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so schema coverage is high. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get individual person with significant control' uses a specific verb and resource, clearly indicating retrieval of an individual PSC. However, it does not distinguish this tool from siblings like get_psc_individual_beneficial_owner or get_psc_individual_full_record, which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives. With many similar sibling tools (e.g., get_psc_individual_full_record, get_psc_individual_beneficial_owner), the agent has no criteria to select this particular one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_individual_beneficial_ownerC
Get individual beneficial owner details
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states an action ('Get'), implying a read operation, but provides no details on authentication, rate limits, data freshness, side effects, or return behavior. The description adds no behavioral insight beyond what the tool name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is concise, but it comes at the cost of missing important information. It is front-loaded but fails to provide sufficient details for effective tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should hint at what details are returned (e.g., fields, structure). It does not. Additionally, given the context of many sibling tools, the description is too sparse to help an AI agent understand when to use this specific PSC variant. The schema covers parameters, but overall completeness is low.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters ('psc_id' and 'company_number') having descriptions in the schema. The description adds no additional meaning or examples for the parameters, but given the high schema coverage, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get individual beneficial owner details' clearly states a specific verb ('Get') and resource ('individual beneficial owner details'). The tool name itself is highly specific, but the description does not explicitly differentiate from closely related siblings like 'get_psc_individual' or 'get_psc_corporate_entity_beneficial_owner', which could cause confusion for an AI agent without additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives (e.g., for a specific PSC type), nor does it mention prerequisites, context, or when not to use it. With a large family of sibling tools, this lack of guidance is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_individual_full_recordC
Get individual PSC full record
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. The description merely states 'Get individual PSC full record' without disclosing any behavioral traits such as what 'full record' includes, authentication requirements, rate limits, or error handling. This is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it lacks structure and front-loading of key information. It is minimally concise but does not effectively convey the tool's purpose in a structured manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the domain (many similar sibling tools) and the absence of annotations and output schema, the description is highly incomplete. It fails to clarify what a 'full record' entails, how it differs from other PSC records, or what data to expect in the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions for the two parameters are basic but adequate ('The PSC ID', 'The company number'). Schema coverage is 100%, so the description adds no additional value beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get individual PSC full record' with a specific verb and resource. However, it does not differentiate from sibling tools like get_psc_individual or get_psc_individual_beneficial_owner, which are also related to individuals. The lack of explicit distinction lowers the score from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. Given the numerous sibling PSC tools (e.g., get_psc_individual, get_psc_individual_beneficial_owner, get_psc_individual_verification), the description provides no context for selection, resulting in a low score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_individual_verificationC
Get individual PSC verification state
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavior. It only states 'Get individual PSC verification state', implying a read operation, but provides no details about the return value, error conditions, or what exactly 'verification state' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words) and front-loaded. While it could include more context, it avoids unnecessary verbosity for a simple two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's many siblings and lack of output schema, the description is too brief. It does not explain how this tool differs from similar ones or what the verification state entails, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described in the schema. The description does not add additional meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'individual PSC verification state', which distinguishes it from other PSC tools like get_psc_individual or get_psc_individual_full_record. However, it does not explicitly explain why this tool is different from its siblings, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling PSC tools. The description lacks any context about use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_legal_personC
Get legal person with significant control
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description does not disclose behavioral traits such as read-only nature, authentication requirements, or side effects. It merely states the action without transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. However, it is too brief for a tool that could benefit from a bit more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain what the tool returns. Given the complexity, the description lacks completeness regarding return value or expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and contains adequate parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it gets a 'legal person with significant control', but does not differentiate this from sibling tools like get_psc_corporate_entity or get_psc_individual. The term 'legal person' may be ambiguous without further context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Siblings include many similar PSC tools, but the description provides no criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_legal_person_beneficial_ownerC
Get legal person beneficial owner details
| Name | Required | Description | Default |
|---|---|---|---|
| psc_id | Yes | The PSC ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It only says 'Get', which implies a read operation, but does not confirm side effects, permissions, or rate limits. This is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high number of sibling PSC tools and no output schema, the description is too brief. It does not explain what a 'legal person beneficial owner' is, what the response looks like, or how it differs from other PSC endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema fields. It does not explain the role of 'psc_id' or 'company_number' in the context of beneficial owner lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'legal person beneficial owner details'. It differentiates from siblings like 'get_psc_individual' or 'get_psc_corporate_entity' by specifying the legal person beneficial owner type. However, 'details' is somewhat generic, missing the specificity of what is retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings or when not to use it. The description is minimal and does not mention any context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_statementC
Get PSC statement details
| Name | Required | Description | Default |
|---|---|---|---|
| statement_id | Yes | The statement ID | |
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Get PSC statement details' but does not indicate whether this is a read-only operation, any permissions required, or what the response format looks like. The lack of any side-effect or safety information is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (single sentence) but lacks necessary details. While conciseness is valued, it comes at the expense of completeness, making the tool harder to use effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is insufficient given the context: no output schema, two parameters that are not explained in the description, and many sibling tools. The user is left to infer how to obtain a statement_id and what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes both parameters (statement_id and company_number). The description adds no additional meaning beyond what the schema provides, hence baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves details of a specific PSC statement, distinguishing it from the sibling tool get_psc_statements_list which returns a list. The verb 'Get' and resource 'PSC statement details' is specific, though it could be more explicit about what 'details' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_psc_statements_list or other PSC-related tools. There is no mention of prerequisites, such as needing a statement_id from a prior call, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_statements_listC
Get list of PSC statements
| Name | Required | Description | Default |
|---|---|---|---|
| start_index | No | Starting index for pagination | |
| company_number | Yes | The company number | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It only says 'get list', implying a read operation, but does not mention authorization, rate limits, or any side effects. The agent receives no insight into behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single phrase, which is concise but at the expense of informativeness. It is front-loaded but lacks detail that would help the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no output schema, and no annotations, the description is incomplete. It does not explain the nature of the result (e.g., a paginated list) or provide any context about PSC statements. The agent would need additional knowledge to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully describes all three parameters (company_number, start_index, items_per_page). The description adds no additional meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'get' and resource 'list of PSC statements', which is clear but does not distinguish from sibling tools like 'get_psc_statement' or other PSC-specific tools. The acronym 'PSC' is not expanded, leaving ambiguity for the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of pagination, filtering, or context in which this list is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_super_secureD
Get super secure person with significant control
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number | |
| super_secure_id | Yes | The super secure ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'Get super secure person with significant control' which provides no behavioral traits—no mention that it is a read operation, no explanation of authorization needs, rate limits, or return value specifics. This is critically insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but not appropriately informative. Conciseness is not valuable when it sacrifices clarity and utility. The sentence does not earn its place as it adds minimal new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 2 simple parameters and no output schema, the description is wholly inadequate. It does not explain the nature of the data returned, the significance of 'super secure', or how this fits with other PSC endpoints. For an agent, this offers no decision-making context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing basic descriptions for both parameters. However, the tool description adds no additional meaning beyond the schema. A baseline of 3 is considered, but the description fails to add value; for example, it could clarify the 'super_secure_id' is a unique identifier. Hence a score of 2 reflects the poor contextual enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get super secure person with significant control' is essentially a tautology of the tool name. It does not explain what 'super secure' means or how this tool differs from sibling tools like get_psc_individual or get_psc_super_secure_beneficial_owner. The purpose is only vaguely conveyed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided. There is no indication of when to use this tool versus the many other PSC-related tools, nor any prerequisites or context about access to 'super secure' data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psc_super_secure_beneficial_ownerC
Get super secure beneficial owner details
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number | |
| super_secure_id | Yes | The super secure ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'Get ... details', implying a read operation, but does not specify expected output format, authentication needs, or any side effects. More detail is needed for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, short and free of fluff. It is appropriately concise for a simple retrieval tool, though it could benefit from slightly more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling tools and no output schema, the description is incomplete. It does not describe the return format, what constitutes a 'super secure' beneficial owner, or how the parameters relate. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (company_number and super_secure_id). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate. However, it does not explain what a 'super_secure_id' is or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get super secure beneficial owner details' specifies a verb and resource, but it does not distinguish this tool from sibling PSC tools like get_psc_individual_beneficial_owner or get_psc_corporate_entity_beneficial_owner. The term 'super secure' is not explained, leaving ambiguity about its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives. Given the many similar PSC tools, the description should clarify the context (e.g., 'Use this for super-secure owners registered under specific regulations') but offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_registered_office_addressB
Get the registered office address of a company
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention authentication needs, rate limits, side effects, or any behavioral traits beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, and efficient sentence with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is minimally adequate but lacks details on output format, error conditions, or usage context. It is complete enough for a basic retrieval but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter ('company_number') as 'The company number', achieving 100% coverage. The description adds no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('registered office address') with the target ('a company'). It is specific and distinguishes from sibling tools like get_company_profile or get_registers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any exclusions or prerequisites. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_registersC
Get company registers information
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only says 'get information' without mentioning read-only nature, permissions, or any limitations. The description is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence is concise but too vague to be useful. It does not front-load key details or earn its place, as it provides minimal information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no output schema, no annotations) and the context of many sibling tools, the description is too sparse. It does not specify what data is returned or how it differs from other register tools, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter company_number, with a description in the schema. The tool description adds no additional meaning beyond what is already in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get company registers information', which is a clear verb+resource but vague about what 'registers' includes. With sibling tools like get_charges, get_exemptions, get_filing_history, it does not distinguish what this tool returns versus those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The sibling tools list includes many specific register-related tools, but the description offers no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uk_establishmentsC
Get UK establishments of a foreign company
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | The company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the action. It does not state whether the tool is read-only, what side effects exist, or any requirements like authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with one sentence, front-loading the key information. It is efficient but could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and no annotations, the description is minimal. It lacks information about what 'UK establishments' means, the output format, or any prerequisites, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already describes the 'company_number' parameter. The description adds no extra meaning beyond 'The company number', so it meets the baseline but adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'UK establishments of a foreign company', specifying the verb and resource. However, it does not differentiate from sibling tools like 'get_company_profile' or 'get_charges', which are similarly structured.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to use 'get_company_profile' instead. There is no mention of context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_allC
Search across all resource types
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only states 'Search' without indicating that the operation is read-only, its impact (e.g., no destructive actions), or any auth/rate-limit considerations. The pagination parameters hint at behavior but are not elaborated in text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words), which is concise but lacks necessary content. It is front-loaded but fails to earn its place by providing critical context. A slightly longer description with more detail would be more effective without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not specify the types of resources searched, the result structure, or how it differs from sibling tools like search_companies. The agent would need additional context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all three parameters have descriptions). The description 'Search across all resource types' adds no additional meaning to the parameters beyond what the schema provides. Since the schema already explains query, start_index, and items_per_page, the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search across all resource types' clearly specifies the verb 'Search' and the resource 'all resource types'. This distinguishes it from sibling tools that target specific types like companies or officers, indicating it is a general-purpose search. However, it lacks detail on what 'all resource types' includes, slightly reducing specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs. alternatives. It implies broad use but does not state when not to use it or mention specific siblings like search_companies or search_officers. This omission makes it hard for an agent to decide when this tool is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesB
Search for companies by name or company number
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name or number to search for | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the search action, omitting details like pagination behavior, rate limits, or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and three parameters, the description does not explain return format, pagination behavior, or result ordering. It is insufficient for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds minimal value beyond the schema, confirming the query parameter's purpose but not enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for companies by name or company number', identifying a specific verb and resource. It differentiates from siblings like 'advanced_company_search' by implying a basic search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like 'advanced_company_search' or 'alphabetical_search'. The context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_disqualified_officersC
Search for disqualified officers
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Disqualified officer name to search for | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., pagination limits, authorization requirements, whether it returns both active and past disqualifications). The bare description leaves the agent to infer behavior from the input schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (5 words), which provides no additional context. While it is concise, it sacrifices necessary detail. A single sentence may be insufficient for a search tool with three parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain return values, pagination behavior, or example usage. It does not, leaving the agent uncertain about the tool's output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about parameters beyond what the input schema already provides. Since schema coverage is 100%, the baseline is 3. The description does not explain formatting, interpretation, or constraints beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for disqualified officers' clearly states the verb (search) and the resource (disqualified officers). It is specific and distinct from sibling tools like search_officers or search_companies, which search for non-disqualified entities. However, it does not explicitly distinguish itself from these siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search_officers or get_natural_officer_disqualification. The description lacks any context about prerequisites, use cases, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_officersB
Search for company officers
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Officer name to search for | |
| start_index | No | Starting index for pagination | |
| items_per_page | No | Number of results per page (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description shoulders the full burden of behavioral disclosure. It fails to mention any behavioral traits such as pagination behavior, result ordering, whether it returns full officer details or summaries, or any side effects. For a search tool, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is good. However, it lacks structure – no breakdown of what the tool does in more detail. It is front-loaded with the purpose, but for a tool with three parameters and search behavior, a slightly longer description detailing pagination or result format would be more structured without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not mention what the tool returns (e.g., list of officer names, full profiles, total count). Given the presence of siblings like get_officers and get_officer_appointments_list, the agent needs to know the scope and format of results to decide correctly. The description is incomplete for a search tool with multiple parameters and no output guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains each parameter. The description adds no extra meaning beyond what the schema provides. The schema's parameter descriptions are clear (officer name for query, pagination fields). Baseline 3 is appropriate as the description does not degrade but also does not enhance semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for company officers' clearly states the action (search) and the resource (company officers). It distinguishes from siblings like get_officers (which retrieves officers for a specific company) and advanced_company_search (which searches companies). The verb+resource pattern is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives. Siblings include many officer-related tools (get_officers, get_officer_appointment, etc.), but the description does not explain when a general search is appropriate versus using a more specific retrieval endpoint. There are no 'when not to use' or 'see also' hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools target distinct resources (company, charges, officers, PSC), but the 12 PSC-related tools have highly similar names (e.g., get_psc_individual, get_psc_individual_beneficial_owner, get_psc_individual_full_record) that could cause confusion despite distinct descriptions.
The majority follow a get_ or search_ prefix with snake_case, but 'advanced_company_search' breaks the pattern (should be search_advanced_companies) and 'alphabetical_search'/'dissolved_search' lack a consistent verb prefix.
37 tools is on the high side. While they cover many aspects of Companies House data, the set feels bloated with numerous very specific PSC tools that could be merged or simplified.
The server covers most read-only aspects of the Companies House API (profile, charges, officers, PSC, filing history, insolvency, exemptions, documents). However, it lacks financial accounts endpoints and has no update/create tools, indicating a narrow focus.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Companies House MCP — UK statutory company registry (BYO key)
CompanyLens is a remote MCP server giving AI agents instant access to official company registry data across 19 jurisdictions in Europe, the Americas, and Asia-Pacific. Eighteen read-only tools let you search companies and people, look up officers and beneficial owners, map corporate networks through shared directors, screen names against the UK disqualified directors register, find every company at a registered address, and pull filing history — all from a single connector. Visit our website: https://companylens.io
75 MCP tools: SEC financials, FRED economics, IRS 990, FDA, FX, UK Companies House.
Company intelligence via UK Companies House and risk screening across 386 risk data sources.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA local MCP server that exposes the UK Companies House API as tools for Claude Desktop and Cowork, enabling company search, profile retrieval, officer lookup, and document downloads.
- AlicenseAqualityCmaintenanceEnables AI assistants to search and retrieve UK Companies House data including company profiles, officers, and filing history via the official API.41011MIT
- FlicenseNot gradedqualityBmaintenanceMCP server exposing the full UK Companies House Public Data API, enabling natural language queries for company profiles, search, officers, filing history, charges, insolvency, and persons with significant control, as well as downloading and reading PDF documents.
- FlicenseBqualityCmaintenanceProvides access to UK Companies House public data, enabling search and retrieval of company profiles, officers, filing history, and more through natural language queries.12
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/stefanoamorelli/companies-house-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server