uk-company-data
Server Details
Every UK company plus 35M Companies House accounts since 2008: lookup, search, alerts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- devladpopov/uk-company-data-mcp
- GitHub Stars
- 0
- Server Listing
- UK Company Data MCP server
TDQS
Scored across 11 tools
Most tools target clearly distinct resources or actions: lookup by number, search by name, compare, market stats, and full watchlist management. However, search_companies and find_triggers both search by financial criteria, and recent_changes overlaps with get_alerts' new-accounts alert, so some selection ambiguity remains.
All names use consistent snake_case, with a predictable watch_ prefix for watchlist operations and verb_noun patterns for most actions. Minor deviation: market_stats and recent_changes are noun phrases rather than verb_noun, but the overall convention is still readable and uniform.
11 tools sits comfortably within the ideal 3-15 range for a company-data and monitoring server. Each tool supports a distinct stage—search, lookup, comparison, statistics, triggers, recent changes, and watchlist lifecycle—without obvious bloat.
The surface covers search by name and financial criteria, lookup, side-by-side comparison, market stats, lead triggers, recent account publications, and full watchlist lifecycle (add/list/remove) plus alerts. Minor gaps exist, such as no officer/director lookup or filing-history endpoint, but core financial monitoring workflows are well supported.
Available Tools
11 toolscompare_companiesCInspect
Compare two UK companies side by side.
| Name | Required | Description | Default |
|---|---|---|---|
| company_a | Yes | First company number | |
| company_b | Yes | Second company number |
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 and adds almost nothing: it does not say what dimensions are compared, whether companies must be UK-registered entities, what happens if a number is invalid, or what the response contains. The only added context is the UK scope.
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 zero filler, and the key constraint (two companies) leads. It is efficient, though its brevity borders on under-specification rather than deliberate concision.
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 exists, so the description should explain what a comparison returns (which fields, whose data wins on conflict), but it does not. For a tool whose entire value is the comparison result, this leaves the agent guessing before it calls.
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 ('First company number', 'Second company number') are already documented in the schema. The description adds no format, source, or lookup semantics beyond the schema, so baseline 3 applies.
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?
States a specific verb (compare) and resource (two UK companies) with an explicit scope modifier (side by side). An agent can distinguish it from lookup_company, which handles a single company, though no sibling is named outright.
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 when-to-use or when-not-to-use guidance is given. The agent must infer from the name and 'two' that this is the multi-company variant rather than lookup_company or search_companies; nothing in the text routes it explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_triggersBInspect
Find companies matching specific financial triggers useful for B2B lead generation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| trigger | Yes | Type of trigger to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about whether this is a read-only query, how results are ordered, pagination behavior, or rate limits. Only the schema's limit range hints at result caps, which the description does not reinforce.
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 efficient sentence with the core purpose front-loaded and no filler. It is appropriately sized for the primary claim, though the terse phrasing leaves no room for the behavioral context a no-annotation tool needs.
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 no annotations and no output schema, the description is the only source of return-shape and safety information, and it supplies neither. For a discovery tool with a required trigger parameter, an agent still cannot tell what a result contains or how results are ranked.
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 each trigger enum value is self-describing, so the schema does the heavy lifting. The description adds no meaning about the trigger taxonomy (e.g., what 'cash_rich' or 'deteriorating' actually key on) beyond what the enum already conveys, matching the baseline for full schema 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?
States a specific verb+resource ('Find companies') and the discriminating scope ('matching specific financial triggers'), which distinguishes it from generic siblings like search_companies or lookup_company. It stops short of naming which sibling to use instead, so it is clear but not fully differentiated.
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 phrase 'useful for B2B lead generation' implies the intended scenario but never states when to prefer this over search_companies/compare_companies or what the trigger-based search cannot do. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_alertsBInspect
Monitoring alerts for your watchlist: status changes (liquidation, administration, strike-off), overdue accounts, newly registered or published accounts, new charges, negative net assets, and drops of 30%+ in net assets or cash between the last two iXBRL accounts. Sorted by severity.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Report published accounts since this date (YYYY-MM-DD). Default: 30 days ago. | |
| severity | No | Minimum severity to return (default info = all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real behavioral detail: it names the trigger conditions (30%+ drops between the last two iXBRL accounts, negative net assets, status changes) and states results are 'sorted by severity'. It stops short of describing auth needs, pagination, or whether it is strictly read-only, though the get_ prefix implies a read.
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 dense sentence that front-loads the resource and then enumerates alert types; every clause carries meaning. The long enumeration is justified by the breadth of alert categories, though it reads as a run-on list.
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 read-only list tool with no output schema, the description explains what is returned and how it is ordered, which is most of what an agent needs. The 'since' parameter's 30-day default in the schema covers the time window, leaving only minor gaps around result volume or truncation.
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 both 'since' and 'severity' (with its enum) are already fully documented in the schema. The description adds nothing about parameter syntax or defaults, so the standard baseline of 3 applies.
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 a specific resource ('Monitoring alerts for your watchlist') and enumerates the concrete alert categories returned, so an agent knows exactly what this tool surfaces. It does not, however, distinguish itself from siblings like find_triggers or recent_changes, which cover adjacent territory.
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 explicit guidance on when to call this versus alternatives such as find_triggers, recent_changes, or watch_list. Usage is only weakly implied by the phrase 'for your watchlist'; no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_companyAInspect
Look up a UK company by company number. Returns register details, latest financials (iXBRL figures as filed at Companies House and/or AI-extracted estimates from PDF accounts), risk signals and trajectory. Note: 'Total assets less current liabilities' and 'Creditors' are reported as filed; dates are balance sheet dates.
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | Companies House number, e.g. '12345678' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it delivers unusually useful disclosure: it distinguishes iXBRL figures as filed from AI-extracted PDF estimates, and warns which fields are reported as filed and that dates are balance-sheet dates. It does not cover error behavior, auth requirements, or read-only/cost implications, but the data-provenance caveat is real value beyond structured fields.
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?
Three front-loaded sentences: identity, return payload, then an accounting-semantics caveat. The final note is narrow but relevant to interpreting the returned figures, and nothing is padded.
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 no output schema, the description must summarize returns, and it does so concretely (register details, financials, risk signals, trajectory). Missing only edge cases such as not-found behavior or whether the payload is cached/stale, which keeps it from a 5.
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?
There is a single required parameter with 100% schema description coverage, including a format example, so the schema already does the work. The description adds only the qualifier 'UK' and no syntax or edge-case guidance 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?
States a specific verb (look up), resource (UK company), and lookup key (company number), which implicitly separates it from the name-based siblings search_by_name and search_companies. It stops short of naming those alternatives explicitly, so the differentiation is inferred rather than stated.
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 'by company number' phrasing implies you already have an identifier and therefore need this tool rather than a search tool, but the description never states when to prefer it over search_by_name/search_companies or what to do if you only have a name. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_statsBInspect
Get aggregate market statistics across all companies in the database.
| Name | Required | Description | Default |
|---|---|---|---|
| group_by | No | Group results by field |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation and states the aggregation scope, but says nothing about whether group_by affects the output shape, what statistics are computed, whether results are cached or expensive, or what the response looks like.
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 short sentence with no filler and the scope front-loaded. It is efficient, though arguably under-specified rather than genuinely tight — a second clause on the aggregate output or grouping behavior would have earned its place.
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 no annotations and no output schema, the description is the only source of behavioral and return-value information, and it omits what statistics are returned, the shape of grouped output, and any read-only or performance expectations. Inadequate for a tool whose structured metadata is this thin.
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% for the single group_by parameter, including its enum of risk_band, size_class, and trajectory. The description adds no meaning beyond the schema — it never mentions grouping or how the grouping changes results — so the baseline 3 applies.
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?
States a specific verb ('Get') and resource ('aggregate market statistics') with an explicit scope qualifier ('across all companies in the database'). The aggregate framing clearly separates it from per-company siblings like lookup_company or compare_companies, though no sibling is named.
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 scope phrase 'across all companies' implies when this tool is the right choice (market-wide rollups rather than individual company lookups), but there is no explicit when-to-use rule, no exclusions, and no pointer to compare_companies or search_companies for alternative needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_changesAInspect
List companies whose iXBRL accounts were published at Companies House in the last N days (by publication date; each row also shows the balance sheet date). Useful for monitoring a watchlist or finding fresh signal.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days (default 30) | |
| limit | No | Max results (default 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real behavioral content: it discloses that results are ordered/filtered by publication date and that each row also carries the balance sheet date, clarifying the shape of a return value with no output schema. It stops short of stating ordering guarantees, pagination/total-count behavior, or auth requirements, which keeps it from a 5.
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?
Two tight sentences with the core behavior front-loaded and the qualifier about publication vs. balance sheet date immediately following. The trailing use-case sentence is short and adds orientation without padding.
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 2-parameter read tool with no output schema and no annotations, the definition covers the core purpose and one returned field, but an agent still cannot know the full row shape (company name/number, accounts type), result ordering, or whether a total count is returned. Adequate but with clear gaps given the absence of structured output documentation.
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 ('days' and 'limit') are documented with defaults and min/max bounds. The description's 'last N days' merely restates the 'days' parameter and adds no syntax, format, or edge-case detail beyond the schema, so the baseline 3 applies.
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 gives a specific verb ('List'), a precise resource ('companies whose iXBRL accounts were published at Companies House'), and a scoping filter ('in the last N days'). The parenthetical clarifies that filtering is by publication date rather than balance sheet date, which is exactly the distinction an agent needs to avoid confusing this with a general company search or a balance-sheet-date lookup.
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?
It offers a use-case hint ('useful for monitoring a watchlist or finding fresh signal'), which implies when the tool is appropriate. However, it never names an alternative (e.g. search_companies, find_triggers, watch_list) or states when NOT to use it, so routing between this and its many siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_nameAInspect
Search all UK companies (Companies House register, ~5.6M) by name. Ranking: exact name match (ignoring LTD/LIMITED/PLC etc.) first, then active companies, then names starting with or containing the phrase, then other matches (words match as prefixes). Returns company numbers for lookup_company.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company name or partial name to search for | |
| limit | No | Max results (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses dataset size, that exact matches ignore legal suffixes (LTD/LIMITED/PLC), that active companies are boosted, and that words match as prefixes. It omits pagination/total-count behavior, but the ranking semantics are unusually well specified.
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?
Two sentences, zero filler, with the scope and dataset size front-loaded before the ranking detail. Every clause carries information the agent can act on.
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 two-parameter search tool with no annotations and no output schema, the definition covers purpose, scope, ranking, and return type adequately. It could go slightly further by naming the search_companies alternative or noting result-count/pagination 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 baseline is 3; the description earns above that by explaining match semantics for 'name' (partial names, legal-suffix-insensitive exact matching, prefix word matching) and by noting the result content. The 'limit' parameter is left to 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 gives a specific verb and resource ('Search all UK companies ... by name') and scopes the dataset ('Companies House register, ~5.6M'). It does not differentiate itself from the sibling search_companies, which is a plausible source of confusion, so it falls short of 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?
Usage is implied rather than stated: the ranking explanation tells the agent how results are ordered and 'Returns company numbers for lookup_company' chains it to a next step. However, there is no explicit when-to-use/when-not-to-use guidance and no comparison against the sibling search_companies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesCInspect
Search UK companies by financial criteria. Returns up to 50 matches.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| sort_by | No | Sort field | |
| risk_band | No | Filter by risk band | |
| size_class | No | Filter by size | |
| sort_order | No | Sort direction | |
| trajectory | No | Filter by trajectory | |
| min_employees | No | Minimum number of employees | |
| insolvency_proxy | No | Filter for insolvency proxy flag | |
| max_total_assets | No | Maximum total assets less current liabilities, in GBP | |
| min_total_assets | No | Minimum total assets less current liabilities, in GBP | |
| negative_net_assets | No | Filter for negative net assets |
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, and it only discloses the 50-match result cap. It says nothing about pagination or offsets (notable given the hard 50 ceiling), default sort behavior, whether results are ranked or arbitrarily ordered, or empty-result behavior.
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?
Two short sentences with zero filler, and the core capability is front-loaded before the result-count note. It is efficient, though arguably too terse for an 11-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?
For an 11-parameter, zero-required search tool with no annotations and no output schema, the description is thin: no result shape beyond a count, no default limit (20) or sort behavior, and no note on how filters combine. Sibling routing to search_by_name and compare_companies is also left implicit.
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 all 11 parameters (enums, limits, units like GBP for asset bounds) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
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?
States a specific verb and resource ("Search UK companies") plus the criteria family ("financial criteria"), which implicitly distinguishes it from the name-based search_by_name sibling. It stops short of naming that sibling or stating scope limits (e.g. UK-only, no name lookup), so it is clear but not fully differentiated.
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 explicit when-to-use or when-not-to-use guidance and no named alternative. "By financial criteria" implies it is the criteria-driven sibling of search_by_name, but the agent must infer that routing rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_addAInspect
Add UK companies (by company number) to your monitoring watchlist. The current Companies House state is snapshotted; get_alerts then reports status changes, overdue accounts, new accounts, new charges and financial deterioration. Watchlist size: 5 companies on Free, 50 on Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| company_numbers | Yes | Companies House numbers, e.g. ['00445790', 'SC123456'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavioral traits: a snapshot of current Companies House state is taken, downstream alerts cover status changes/overdue accounts/new charges/deterioration, and hard quotas exist (5 Free, 50 Pro). It stops short of stating duplicate-handling, auth requirements, or error behavior when the cap is exceeded.
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?
Three short sentences, front-loaded with the core action, then the downstream effect, then the constraint. Every sentence adds information; no filler.
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 no-annotation mutation tool with no output schema, the description covers purpose, side effect (snapshot), downstream use, and quota limits, which is most of what an agent needs. It leaves minor gaps around duplicate adds, quota-exceeded errors, and removal via watch_remove.
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 single parameter has 100% schema description coverage including an example format, so the schema already does the heavy lifting. The description only restates 'by company number' and adds no batching or limit semantics (maxItems=100 is left to 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?
States a specific verb and resource ('Add UK companies ... to your monitoring watchlist') and constrains the identifier form ('by company number'). It is clearly separable from siblings like watch_remove, watch_list, and get_alerts without opening any schema.
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?
It sketches the monitoring workflow by naming get_alerts as the downstream consumer, so the intent (set up monitoring) is implied. However, it never explicitly says when to prefer this over watch_remove/watch_list, how to obtain valid company numbers (e.g. via search_companies/lookup_company), or what to do when the watchlist quota is full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_listAInspect
Show your monitoring watchlist with each company's current status, accounts due date and latest balance sheet date.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only view operation but does not state permissions, side effects, or output format. It reveals the result fields, which is helpful, but stops short of full 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?
A single, well-structured sentence that front-loads the core action and lists the key returned fields. No wasted 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?
For a zero-parameter view tool with no annotations or output schema, the description adequately conveys what the tool returns. Slightly more context about the watchlist's purpose or update frequency could improve completeness.
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 tool takes no parameters, so there is nothing to document. The description focuses on return values, which is appropriate, though return semantics are not fully detailed.
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?
States a clear verb ('Show') and resource ('monitoring watchlist'), and specifies exactly what is returned: company status, accounts due date, and latest balance sheet date. This differentiates it from siblings like get_alerts or recent_changes.
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?
Usage is implied by the name and description (view your watchlist), but there is no explicit guidance on when to use this versus alternatives like get_alerts or recent_changes. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_removeCInspect
Remove companies from your monitoring watchlist.
| Name | Required | Description | Default |
|---|---|---|---|
| company_numbers | Yes | Companies House numbers to stop watching |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never states that this is a destructive/irreversible mutation, whether it requires an authenticated account, how it behaves on non-watched companies, or whether it is idempotent. 'Remove' is the only hint of the mutation semantics.
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 short sentence, front-loaded with the action and object, with no filler. It is efficient, though its brevity is partly the source of the missing behavioral detail rather than purely a virtue.
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 single-parameter tool with no output schema this is minimally adequate, but with zero annotations the description should at least flag the destructive nature and post-removal state. It omits anything an agent would need beyond the 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?
Schema description coverage is 100% ('Companies House numbers to stop watching'), so the single parameter is fully documented structurally. The description adds no format, batch, or ordering detail beyond what the schema already provides, making the baseline 3 correct.
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?
Clear verb ('Remove') plus resource ('companies ... from your monitoring watchlist'), which an agent can distinguish from watch_add at a glance. It stops short of naming siblings or clarifying scope beyond the watchlist concept, so it is clear but not fully differentiated.
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 versus watch_add/watch_list, no prerequisites, and no note about what happens if a company is not currently watched. Usage is only inferable from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
- First observed
compare_companies - First observed
find_triggers - First observed
get_alerts - First observed
lookup_company - First observed
market_stats - First observed
recent_changes - First observed
search_by_name - First observed
search_companies - First observed
watch_add - First observed
watch_list - First observed
watch_remove
Related MCP Connectors
UK company records from Companies House, with alerts on new filings, officer and status changes.
UK company data: search, officers, owners, shareholders, filed accounts, new companies, KYB checks.
UK public-record company intelligence: Companies House, payments, contracts, registers, watch lists
UK company data: profiles, iXBRL financials, directors, PSC chains, ECCTA. Hosted, no key.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides instant access to verified, enriched business intelligence for any UK company, including legal identity, financial health, web presence, and hiring activity in a single call.-
- FlicenseBqualityDmaintenanceProvides access to UK Companies House public data, enabling search and retrieval of company profiles, officers, filing history, and more through natural language queries.12-
- AlicenseAqualityAmaintenanceUnmodified government company data from 27 registries, live. Cross-border UBO chain walker for AI agents. 60+ tools covering GB, IE, NO, FR, DE, NL, PL, BE, CH, LI, MC, IM, IS, CY, AU, NZ, CA, TW, HK, MY, FI, CZ, ES, IT, KR, US — raw upstream fields preserved, no LLM extraction.1018Apache 2.0
- AlicenseNot gradedqualityBmaintenanceCompany data for Spain, France, the UK, Ireland and Poland — registry, KYB and sanctions.3,430 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.