Skip to main content
Glama

UK Business Tools - Ledgerhall

Server Details

Once connected, your AI agent can:

Check any UK company — directors, shareholders, filing history, disqualified officers
Research property — comparable sales, EPC ratings, Rightmove listings, rental yields, stamp duty
Search case law and legislation — court judgments, Acts, Hansard debates, HMRC guidance
Query GOV.UK — search 700k+ pages, resolve postcodes to councils, find policy documents
Run due diligence — cross-reference Companies House, Charity Commission, Land Registr
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 63 of 63 tools scored. Lowest: 2.8/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clear, distinct purpose within its domain, aided by domain-specific prefixes. There is no ambiguity between tools even across domains.

Naming Consistency5/5

All tools follow a consistent prefix_descriptive_name pattern in snake_case. Within each domain, naming conventions are uniform, making it predictable.

Tool Count5/5

With 63 tools covering multiple distinct domains (due diligence, government, legal, property), each domain is appropriately scoped and every tool serves a clear function.

Completeness5/5

The tool set provides comprehensive coverage for its stated purpose, including search, retrieval, analysis, and validation across all relevant registers and databases with no significant gaps.

Available Tools

65 tools
dd_charity_profileGet Charity ProfileA
Read-onlyIdempotent
Inspect

Fetch the full Charity Commission profile for a charity number.

Returns trustees, latest income/expenditure, insolvency flags, governing document type, classifications, and countries of operation. Use charity_search first to find the charity number.

ParametersJSON Schema
NameRequiredDescriptionDefault
charity_numberYesCharity Commission registration number (e.g. '1234567'). Returned by charity_search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressNoRegistered address of the charity (joined address lines).
insolventNoTrue if the charity is flagged as insolvent.
reg_statusNoRegistration status code ('R', 'RM').
charity_nameNoRegistered charity name.
charity_typeNoCharity type.
latest_incomeNoLatest filed annual income in GBP.
trustee_namesNoTrustees on record. Truncated to 30 entries.
charity_numberYesCharity registration number.
who_what_whereNoWho/What/Where classification entries. The list may be truncated truncated to 50 entries.
reg_status_labelNoHuman-readable registration status.
in_administrationNoTrue if the charity is in administration.
latest_expenditureNoLatest filed annual expenditure in GBP.
trustee_names_totalNoTotal trustees upstream before truncation.
date_of_registrationNoDate of first registration.
who_what_where_totalNoTotal classification entries upstream before truncation.
charity_co_reg_numberNoCompanies House number for charities also registered as companies (Charitable Incorporated Organisations, etc.).
countries_of_operationNoCountries the charity operates in (capped at 10 upstream).
trustee_names_truncatedNoTrue if the trustee list was truncated.
who_what_where_truncatedNoTrue if the classification list was truncated.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is clear. The description adds value by detailing the specific data returned (trustees, income, insolvency flags, etc.), providing behavioral context beyond the annotations.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the core purpose. Every sentence adds value with no wasted words.

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

Completeness4/5

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

The description lists the main data fields returned. With an output schema present, the agent can infer the full structure. It is adequate for a single-parameter lookup tool, though it does not mention error handling or pagination.

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

Parameters5/5

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

The input schema already has full description coverage (100%) for the only parameter, charity_number. The description reinforces this by stating it is returned by charity_search, adding useful context for the agent.

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

Purpose5/5

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

The description clearly states the tool fetches the full Charity Commission profile for a charity number, listing specific data fields like trustees, income, expenditure, etc. It is easily distinguished from its sibling dd_charity_search, which is used to find charity numbers.

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

Usage Guidelines4/5

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

The description explicitly advises using charity_search first to find the charity number, providing clear guidance on the prerequisite step. However, it does not mention when not to use this tool or any alternatives beyond the search tool.

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

dd_company_officersGet Company OfficersA
Read-onlyIdempotent
Inspect

Fetch active officers for a Companies House company number.

Returns directors, secretaries, and other active officers with appointment dates, nationality, and country of residence. Resigned officers are excluded. Pagination is handled internally — do NOT pass items_per_page or start_index; this tool takes only company_number.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_indexNoIgnored — all officers are returned in one call.
company_numberYesCompanies House company number (8 digits, e.g. '03782379'). Returned by company_search.
items_per_pageNoIgnored — pagination is handled internally. Only accepted to avoid call failures.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal officers returned (filtered by include_resigned).
officersNoOfficer records.
company_numberYesCompanies House company number.
include_resignedYesWhether resigned officers were included in this result.
high_appointment_count_flagNoNumber of active officers with 10+ total appointments, or null if appointment counts were not fetched. Non-zero values are a nominee/phoenix director risk signal.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds that resigned officers are excluded and pagination is internal, which are useful behavioral details beyond what annotations provide.

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

Conciseness5/5

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

Two sentences: first clearly states purpose, second adds essential details (exclusions, pagination). No redundant information; every sentence earns its place.

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

Completeness5/5

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

Given tool has an output schema, the description fully covers the input and behavior without needing to explain returns. Complexities like pagination and exclusions are addressed, making it complete for the tool's scope.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds meaning by stating that start_index and items_per_page are ignored and gives an example company_number format. This clarifies the role of parameters beyond the schema.

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

Purpose5/5

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

The description clearly states it 'Fetch active officers for a Companies House company number' and specifies the returned objects (directors, secretaries, etc.) and excludes resigned officers. It is distinct from sibling tools like dd_company_profile, which covers broader company data.

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

Usage Guidelines4/5

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

Provides explicit guidance that pagination is handled internally and warns not to pass items_per_page or start_index, only company_number. Lacks explicit comparison to alternatives but strongly implies correct usage.

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

dd_company_profileGet Company ProfileA
Read-onlyIdempotent
Inspect

Fetch the full Companies House profile for a company number.

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

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
accountsNoAccounts filing status and due dates.
sic_codesNoStandard Industrial Classification codes.
has_chargesNoTrue if the company has outstanding registered charges (secured debt), derived from the /charges endpoint. A due diligence signal.
company_nameNoRegistered company name.
company_typeNoCompanies House company type code.
company_numberYesCompanies House company number.
company_statusNoCurrent status (active, dissolved, in liquidation, etc.).
date_of_creationNoIncorporation date (ISO YYYY-MM-DD).
confirmation_statementNoConfirmation statement filing status and next due date.
registered_office_addressNoRegistered office address as returned by Companies House.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds valuable details about the return data (status, address, SIC codes, compliance flags, charges) which is beyond what annotations provide. No contradiction.

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

Conciseness5/5

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

Three sentences: purpose, return data, usage tip. Front-loaded, no filler, every sentence adds value.

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

Completeness5/5

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

Given single required parameter, existence of output schema, and clear annotations, the description fully covers what the tool does, what it returns, and its prerequisite. No gaps.

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

Parameters4/5

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

Schema coverage is 100% with a clear description of the company_number parameter. The description adds context that the number comes from company_search, providing useful integration hint beyond the schema.

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

Purpose5/5

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

Description clearly states 'Fetch the full Companies House profile for a company number', with specific verb and resource. It distinguishes from sibling tools like dd_company_search (used to find the company number) and other company-related tools.

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

Usage Guidelines4/5

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

Explicitly advises to use company_search first to obtain the company number, providing clear prerequisite and integration guidance. Does not list all alternatives but context is sufficient.

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

dd_company_pscGet Persons with Significant ControlA
Read-onlyIdempotent
Inspect

Fetch Persons with Significant Control (beneficial ownership) for a company.

Returns PSC entries with natures of control, nationality, and country of residence. Flags overseas corporate PSC entries as a beneficial ownership risk signal. Returns an explanatory note for widely-held PLCs with no registrable PSC.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
pscNoPersons with Significant Control records.
noteNoExplanatory note when total=0. Typical for widely-held listed PLCs where no single person or entity holds 25%+ of shares or voting rights.
totalYesTotal PSC entries returned for this company.
company_numberYesCompanies House company number.
overseas_corporate_psc_flagNoNumber of corporate PSCs registered outside the UK. Non-zero values indicate an offshore beneficial ownership chain.
Behavior4/5

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

Annotations indicate readonly, idempotent, non-destructive behavior. Description adds behavioral context: flags overseas corporate PSC entries as risk signals and returns an explanatory note for widely-held PLCs with no registrable PSC.

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

Conciseness5/5

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

Three sentences with high information density: first sentence states core purpose, second lists returned fields, third notes special behaviors. No wasted words.

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

Completeness5/5

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

Tool has simple input (one parameter) and output schema exists (not shown). Description covers purpose, returned data, and special cases. No gaps for a straightforward read tool.

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

Parameters3/5

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

Schema coverage for parameters is 100%; company_number is described in the schema as 'Companies House company number (8 digits...) Returned by company_search.' The description does not enhance parameter semantics beyond the schema.

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

Purpose5/5

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

Description clearly states it fetches Persons with Significant Control (beneficial ownership) and specifies returned fields (natures of control, nationality, country of residence). The tool name and behavior differentiate it from sibling tools like dd_company_profile or dd_company_officers.

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

Usage Guidelines3/5

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

Usage context is implied by the purpose (for beneficial ownership data), but no explicit when-to-use, when-not-to-use, or alternative recommendations are provided.

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

dd_disqualified_profileGet Disqualified Director ProfileA
Read-onlyIdempotent
Inspect

Fetch the full disqualification record for a director by officer ID.

Returns all disqualification orders: reason, Act/section cited, disqualification period, and associated company names. Use disqualified_search first to find the officer ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
officer_idYesCompanies House officer ID. Returned by disqualified_search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoOfficer name.
surnameNoFamily name, if split upstream.
forenameNoGiven name, if split upstream.
officer_idYesCompanies House officer ID looked up.
nationalityNoDeclared nationality.
officer_kindYesWhich CH endpoint returned the record: 'natural' (individual) or 'corporate' (legal entity).
date_of_birthNoDate of birth on record.
disqualificationsNoAll disqualification orders attached to this officer.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing the specific data returned (reason, Act, period, company names) beyond what annotations provide.

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

Conciseness5/5

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

Three sentences: purpose, return details, usage advice. Each sentence adds essential information without redundancy. Front-loaded with the core action.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, output schema exists, strong annotations), the description fully covers what the agent needs: what it does, what it returns, and how to prepare the input.

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

Parameters4/5

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 context that the officer ID comes from 'disqualified_search', which helps the agent understand how to obtain the parameter value.

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

Purpose5/5

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

The description clearly states the verb 'Fetch', the resource 'full disqualification record', and the input 'by officer ID'. It distinguishes itself from the sibling 'dd_disqualified_search' by implying it is the follow-up step.

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

Usage Guidelines4/5

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

The description explicitly instructs to use 'disqualified_search first to find the officer ID', providing clear sequential guidance. It does not list alternatives but the context from sibling tools makes the workflow clear.

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

dd_fetchFetch Full Record from UK Due Diligence RegisterA
Read-onlyIdempotent
Inspect

Fetch the full record for an ID returned by search.

Routes by prefix to the appropriate register:

  • company:{number} → Companies House full profile

  • charity:{number} → Charity Commission full profile

  • disqualification:{officer_id} → Disqualified director full record

  • notice:{notice_id} → Gazette notice full legal text

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPrefixed record ID returned by search. Format: company:{number}, charity:{number}, disqualification:{officer_id}, or notice:{notice_id}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds routing rules based on ID prefix, which is behavioral context beyond annotations.

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

Conciseness5/5

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

Very concise, using a short intro and bulleted list. Every sentence is informative with no redundancy.

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

Completeness4/5

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

Given the simple single-parameter tool with full schema and output schema, the description adequately covers routing behavior. Minor omission: no mention of possible errors or limitations, but not critical for this tool.

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

Parameters4/5

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

The schema already describes the id parameter format with 100% coverage. The description adds context that the id comes from search and elaborates on the prefix formats, adding value beyond the schema.

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

Purpose5/5

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

The description clearly states it fetches the full record for an ID returned by search, and lists four specific routing prefixes, distinguishing it from sibling tools that target individual registers.

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

Usage Guidelines4/5

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

It implies use after a search (id returned by search) and explains routing by prefix, effectively guiding the agent to use this tool instead of separate per-register tools, though it does not explicitly mention alternatives.

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

dd_gazette_insolvencySearch Gazette Corporate Insolvency NoticesA
Read-onlyIdempotent
Inspect

Search The Gazette's insolvency notice index by entity name.

Searches the Gazette's insolvency endpoint which covers corporate notice codes: winding-up orders (2443), administration orders (2448), liquidator appointments (2452), striking-off notices (2460), and more. Results are sorted by severity — winding-up orders and administration orders appear first.

Each result includes a notice_numeric_id. Read the full legal wording via the notice://{notice_numeric_id} resource.

The Gazette is the official UK public record. A notice here means the event has been formally published and is legally effective.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoFilter notices up to this date (YYYY-MM-DD)
start_dateNoFilter notices from this date (YYYY-MM-DD)
entity_nameYesCompany or individual name to search for in Gazette insolvency notices
max_noticesNoCap on notices returned, applied after severity/date sort. Default 20. The Gazette insolvency feed returns up to 100 results per search — raise to 100 to see the full set.
notice_typeNoFilter by notice code (e.g. '2441' winding-up petition, '2443' winding-up order, '2448' administration order, '2460' striking-off). Omit to search all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticesNoMatching notices, sorted by severity (desc) then date (desc).
end_dateNoUpper bound of the date range filter, if any.
start_dateNoLower bound of the date range filter, if any.
entity_nameYesEntity name that was searched.
total_noticesYesTotal notices returned after deduplication, sorting, and cap.
max_notices_capYesThe max_notices cap applied. Upstream may have more matching notices.
notice_type_filterNoNotice code filter applied, or null if all codes searched.
Behavior5/5

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

The description adds significant behavioral context beyond annotations: results are sorted by severity (winding-up orders first), each result includes a notice_numeric_id, and the Gazette is the official UK public record with legal effect. This complements the annotations (readOnlyHint, idempotentHint, etc.) well.

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

Conciseness5/5

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

The description is concise with three well-structured paragraphs. The first sentence front-loads the core purpose. Subsequent paragraphs add necessary detail without verbosity. Every sentence adds value.

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

Completeness4/5

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

The description covers the tool's purpose, notice types, sort order, output usage, and legal significance. It lacks mention of pagination or the max_notices cap (though schema covers it), and no error handling details. However, with annotations and output schema present, it is nearly complete.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described in the schema. The description does not add new parameter details beyond schema but provides context like notice codes. As per guidelines, baseline 3 is appropriate since schema already handles parameter documentation.

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

Purpose5/5

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

The description clearly states the tool searches The Gazette's insolvency notice index by entity name. It specifies the resource (corporate insolvency notices) and action (search by name), and lists relevant notice codes. In the context of sibling tools like dd_gazette_notice (which likely retrieves a single notice), this tool is well-differentiated.

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

Usage Guidelines3/5

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

The description implies usage for searching insolvency notices but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No mention of prerequisites or preferred scenarios. The agent must infer from the context.

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

dd_gazette_noticeGet Gazette Notice Full TextA
Read-onlyIdempotent
Inspect

Fetch the full legal wording of a Gazette notice by numeric notice ID.

Returns the complete JSON-LD linked-data record for the notice: parties, legal basis, court, and full text. Use gazette_insolvency first to find notice_numeric_id values.

ParametersJSON Schema
NameRequiredDescriptionDefault
notice_idYesNumeric Gazette notice ID. Returned as notice_numeric_id by gazette_insolvency.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to restate safety. It adds value by describing the return type (JSON-LD linked-data record) and fields (parties, legal basis, court, full text), which goes beyond annotations.

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

Conciseness5/5

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

Two concise, well-structured sentences. First sentence states the core action, second explains what is returned and how to obtain the ID. No fluff, front-loaded.

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

Completeness5/5

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

For a simple tool with one parameter, annotations, and an output schema, the description fully covers purpose, usage prerequisite, parameter source, and return structure. Nothing missing.

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

Parameters4/5

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

Schema coverage is 100% and the description reinforces the parameter's meaning by stating 'numeric notice ID' and tying it to the sibling tool output. The description adds context about the ID's origin, enhancing understanding.

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

Purpose5/5

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

Clearly states 'Fetch the full legal wording of a Gazette notice by numeric notice ID.' It specifies the verb (fetch), resource (Gazette notice), and method (by numeric notice ID), and distinguishes from sibling tool dd_gazette_insolvency by implying a different step in the workflow.

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

Usage Guidelines5/5

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

Explicitly directs users to 'Use gazette_insolvency first to find notice_numeric_id values,' providing a clear prerequisite and indication of when to use this tool versus its sibling.

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

dd_get_promptBInspect

Get a prompt by name with optional arguments.

Returns the rendered prompt as JSON with a messages array. Arguments should be provided as a dict mapping argument names to values.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the prompt to get
argumentsNoOptional arguments for the prompt

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

Without annotations, the burden falls entirely on the description. It mentions 'rendered prompt' and return format, but fails to disclose read-only nature, side effects, or authentication needs. Minimal behavioral context.

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

Conciseness5/5

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

Three concise sentences, front-loaded with purpose. No redundancy or filler. Every sentence adds distinct information.

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

Completeness3/5

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

Adequate for a 2-param tool with output schema. Mentions return format ('messages array'). Lacks error handling or usage context (e.g., when name not found). Could briefly address alternatives.

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

Parameters4/5

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

Schema has 100% coverage, but description adds value: 'Arguments should be provided as a dict mapping argument names to values' clarifies the structure beyond the schema's 'Optional arguments for the prompt'.

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

Purpose4/5

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

The description clearly states 'Get a prompt by name', providing a specific verb and resource. While it doesn't explicitly differentiate from siblings like dd_list_prompts or law_get_prompt, the purpose is unambiguous.

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

Usage Guidelines2/5

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 (e.g., dd_list_prompts for listing, law_get_prompt for legal prompts). The description lacks context for choosing this tool.

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

dd_list_promptsAInspect

List all available prompts.

Returns JSON with prompt metadata including name, description, and optional arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Describes return format (JSON with prompt metadata), but lacks mentions of side effects or authentication. Sufficient for a read-only list tool with no annotations.

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

Conciseness5/5

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

Two sentences, zero wasted words. Front-loaded with key action. Perfectly concise.

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

Completeness5/5

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

Fully adequate given zero parameters and presence of output schema. No missing information for a simple list tool.

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

Parameters4/5

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

No parameters in input schema; description correctly indicates no parameters needed. Baseline score applies.

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

Purpose5/5

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

Clearly states 'List all available prompts' with specific verb and resource. Distinguishes from sibling 'law_list_prompts' by domain prefix 'dd'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives like 'law_list_prompts'. Usage context is implied but not detailed.

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

dd_vat_validateValidate UK VAT Number (HMRC)A
Read-onlyIdempotent
Inspect

Validate a UK VAT number against the HMRC register.

Returns the trading name and address as registered with HMRC for VAT purposes. The VAT-registered trading address often differs from the Companies House registered address — that discrepancy is a due diligence signal worth noting.

ParametersJSON Schema
NameRequiredDescriptionDefault
vat_numberYesUK VAT registration number. Accepts: 'GB123456789', '123456789', 'GB 123 456 789'. GB prefix and spaces normalised automatically.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYesTrue if HMRC confirmed the VAT number is currently registered. False means HMRC returned 404 (not registered / deregistered).
vat_numberYesCanonical VAT number in 'GB<9 digits>' format.
trading_nameNoTrading name registered with HMRC for VAT. Compare with the Companies House name — discrepancies are a due diligence signal.
registered_addressNoVAT-registered trading address. May differ from the Companies House registered office address.
consultation_numberNoHMRC consultation reference number for this lookup.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by disclosing that the returned trading address often differs from Companies House address, which is a useful behavioral trait for due diligence. No contradictions.

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

Conciseness5/5

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

Two concise sentences: the first states purpose, the second describes return value and a key insight. No wasted text.

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

Completeness5/5

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

Given the presence of an output schema, the description covers input purpose, high-level return values, and an important usage note. It is complete for a simple validation tool.

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

Parameters3/5

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

Schema coverage is 100%, and the schema description already explains accepted formats and normalization. The description does not add additional parameter context beyond what is in the schema.

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

Purpose5/5

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

The description clearly states it validates a UK VAT number against the HMRC register and returns the trading name and address. It is specific and distinct from sibling tools, all of which are unrelated companies, law, property, or charity tools.

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

Usage Guidelines4/5

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

The description implies use for due diligence checks, noting the VAT address discrepancy signal. While it does not explicitly state when to use or not use vs alternatives, the sibling list shows no other VAT validation tool, so context is clear.

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

gov_govuk_get_contentGet GOV.UK PageA
Read-onlyIdempotent
Inspect

Get metadata and navigable section index for a GOV.UK page.

Returns the page title, document type, publication dates, and a list of sections with their anchor IDs and headings. Use govuk_get_section to read the body of a specific section, or govuk_grep_content to search within the page body.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_pathYesGOV.UK base_path, e.g. '/universal-credit' or 'universal-credit'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, so the description adds value by detailing the return content (title, dates, sections). No contradictory or missing behavioral traits.

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

Conciseness5/5

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

Two concise sentences. First sentence captures purpose, second specifies outputs and sibling tools. No filler content.

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

Completeness5/5

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

Given the presence of an output schema, the description sufficiently explains the tool's role as an index pointer for GOV.UK content, and how it orchestrates with other tools.

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

Parameters3/5

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

The only parameter 'base_path' has a description in the schema with example format. Schema coverage is 100%, so the description does not need to add more. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets metadata and navigable section index for a GOV.UK page, listing specific outputs (title, dates, sections). It also distinguishes itself from sibling tools like govuk_get_section and govuk_grep_content.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool: to get the index first, then use govuk_get_section for reading a section or govuk_grep_content for searching. This provides clear guidance on alternatives.

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

gov_govuk_get_organisationGet GOV.UK OrganisationA
Read-onlyIdempotent
Inspect

Get the profile of a UK government organisation by its slug.

Returns name, acronym, type, status, web URL, and parent/child organisations. Use govuk_list_organisations to browse all organisations and discover slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesOrganisation slug, e.g. 'hm-revenue-customs'. Find slugs via govuk_list_organisations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNoOrganisation slug, e.g. 'hm-revenue-customs'. Usable with govuk_search filters.
typeNoOrganisation type, e.g. 'ministerial_department', 'executive_agency', 'non_ministerial_department', 'public_corporation'.
stateNoGOV.UK status, e.g. 'live', 'closed', 'transitioning'.
titleNoFull organisation title.
acronymNoOrganisation acronym, if set.
web_urlNoAbsolute https://www.gov.uk URL for the organisation page.
contact_detailsNoContact details block from GOV.UK (phone, email, address) when available.
child_organisationsNoTitles of child organisations / agencies under this body.
parent_organisationsNoTitles of parent organisations this body reports into.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. Description adds value by listing returned fields, though output schema exists. No contradictions.

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

Conciseness5/5

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

Two efficient sentences, front-loaded with action, no unnecessary words.

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

Completeness5/5

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

Given output schema exists, sibling tool referenced, and return fields mentioned, description is complete for a lookup tool.

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

Parameters3/5

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

Schema coverage is 100% and schema description already explains slug parameter well. Description does not need to add more; baseline 3 applies.

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

Purpose5/5

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

Description clearly states it gets a UK government organisation profile by slug, lists return fields (name, acronym, type, etc.), and distinguishes from sibling tool govuk_list_organisations.

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

Usage Guidelines5/5

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

Explicitly instructs to use govuk_list_organisations to browse organisations and discover slugs, providing clear when-to-use guidance.

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

gov_govuk_get_sectionGet GOV.UK Page SectionA
Read-onlyIdempotent
Inspect

Get the HTML content of one named section of a GOV.UK page.

Use govuk_get_content first to get the list of available section anchors, then call this with the anchor of the section you want to read.

ParametersJSON Schema
NameRequiredDescriptionDefault
anchorYesSection anchor ID from govuk_get_content sections list
base_pathYesGOV.UK base_path, e.g. '/universal-credit'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it returns HTML content, which is useful but not deeply behavioral. No contradictions.

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

Conciseness5/5

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

Two sentences, no wasted words. The purpose and usage are clearly front-loaded.

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

Completeness4/5

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

The description provides the necessary context given the output schema exists and annotations cover safety. It could mention that the HTML is from a specific section, but it's sufficient for a simple read tool.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The tool description does not add extra meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states 'Get the HTML content of one named section of a GOV.UK page,' which is a specific verb and resource. It also indicates a prerequisite (use govuk_get_content first), distinguishing it from other GOV.UK tools.

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

Usage Guidelines4/5

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

The description gives explicit usage guidance: use govuk_get_content first to get anchors, then call this tool with the anchor. While it does not list when not to use, the workflow is clear and effectively guides the agent.

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

gov_govuk_grep_contentSearch within a GOV.UK content bodyA
Read-onlyIdempotent
Inspect

Find body sections in a GOV.UK content item matching a pattern.

Returns a list of {anchor, heading, snippet, match} hits — small per-section snippets centred on the match — so the LLM can decide which full sections to read via govuk_get_section.

Use this when answering content-based questions ("what does this guide say about X?", "find the bit about eligibility") rather than navigating by section number.

Pattern is regex; if it doesn't compile, falls back to literal substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesRegex or literal substring to search for within the page body, e.g. 'payment' or 'eligible.*income'
max_hitsNoMaximum number of matching sections to return (1–100)
base_pathYesGOV.UK base_path, e.g. '/guidance/register-for-vat' or '/universal-credit'
case_insensitiveNoIf true (default), match case-insensitively

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYesMatching sections in document order
patternYesThe pattern that was searched for
base_pathYesThe content item that was searched
truncatedYesTrue if hit count reached max_hits and more matches may exist
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds that it returns a list of {anchor, heading, snippet, match} hits and that pattern compilation failure falls back to literal substring, which is useful beyond annotations.

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

Conciseness5/5

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

The description is only 4 sentences, front-loaded with purpose and return structure, and each sentence adds value. No wasted words.

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

Completeness5/5

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

With 100% schema coverage, an output schema, and good annotations, the description covers purpose, usage, return format, and fallback behavior. It is complete for an LLM to select and use the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the description does not need to add much. It reinforces that pattern is regex, but provides no additional 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.

Purpose5/5

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

The description clearly states 'Find body sections in a GOV.UK content item matching a pattern', specifying verb and resource. It distinguishes from sibling tools like govuk_get_section by noting that it returns snippets for the LLM to decide which sections to read.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this when answering content-based questions ... rather than navigating by section number', providing clear context. It falls short of a 5 because it does not mention specific alternatives or when not to use it.

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

gov_govuk_list_organisationsList GOV.UK OrganisationsA
Read-onlyIdempotent
Inspect

List all UK government organisations registered on GOV.UK.

Returns a paginated list of organisations including their slug, acronym, type, and status. Use this to browse the full government structure or discover slugs for use with govuk_get_organisation or govuk_search filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based)
per_pageNoResults per page (1–50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes1-based page number requested.
totalNoTotal number of organisations across all pages, if reported by GOV.UK.
has_moreYesTrue if more organisations exist beyond this page. Re-call with page=page+1 to fetch the next page.
per_pageYesMax organisations requested per page.
returnedYesNumber of organisations returned in this response.
total_pagesNoTotal number of pages available, if reported by GOV.UK.
organisationsNoOrganisations on this page, in the order returned by GOV.UK.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. Description adds that it returns a paginated list including slug, acronym, type, and status, enhancing transparency without contradiction.

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

Conciseness5/5

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

Two sentences, each earning its place: first states purpose, second adds return details and usage guidance. No redundancy.

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

Completeness5/5

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

With an output schema present and annotations covering safety, the description provides sufficient context: purpose, return fields, and usage for a simple paginated list tool.

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

Parameters3/5

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

Schema covers both parameters (page, per_page) with descriptions and defaults at 100% coverage. Description doesn't add extra meaning beyond schema, so baseline 3.

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

Purpose5/5

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

The description clearly states 'List all UK government organisations registered on GOV.UK' with a specific verb and resource, and differentiates from siblings by mentioning slugs for use with related tools.

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

Usage Guidelines4/5

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

Explicitly tells when to use: 'browse the full government structure or discover slugs for use with govuk_get_organisation or govuk_search filters'. No explicit when-not, but clear context.

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

gov_govuk_lookup_postcodeLook Up UK PostcodeA
Read-onlyIdempotent
Inspect

Look up a UK postcode to retrieve its local authority, region, constituency, and other administrative geography.

Useful for determining which council area, parliamentary constituency, or NHS region a postcode falls within. Commonly used to direct users to the correct local service on GOV.UK (e.g. council tax, planning, waste).

Uses the postcodes.io public API (no key required).

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode, e.g. 'SW1A 2AA' or 'NG1 1AA'. Spaces optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codesNoGSS codes for all administrative geographies covering this postcode.
regionNoONS region, e.g. 'East Midlands'.
countryNoCountry, e.g. 'England', 'Scotland', 'Wales', 'Northern Ireland'.
latitudeNoLatitude in decimal degrees (WGS84).
postcodeNoCanonicalised postcode as returned by postcodes.io.
longitudeNoLongitude in decimal degrees (WGS84).
admin_countyNoAdministrative county, where applicable (null in unitary areas).
local_authorityNoLocal authority / council covering the postcode.
nhs_integrated_care_boardNoNHS Integrated Care Board, where available.
parliamentary_constituencyNoParliamentary constituency (pre-2025 boundary).
parliamentary_constituency_2025NoParliamentary constituency under the 2025 boundaries.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that it uses the postcodes.io public API with no key required, and lists the types of administrative geography returned (local authority, region, constituency, NHS region). This provides useful behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is concise: three short paragraphs, each serving a distinct purpose (core action, use cases, API details). No redundant sentences; every sentence adds value.

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

Completeness5/5

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

Given the tool's simplicity (one required parameter, no enums, output schema present), the description covers purpose, usage context, and external API behavior. Annotations cover safety and idempotency. Nothing essential is missing.

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

Parameters3/5

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

The input schema has 100% coverage and already describes the parameter (postcode) with format examples. The description does not add additional semantic detail beyond what the schema provides. According to guidelines, with high schema coverage the baseline is 3.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Look up a UK postcode to retrieve its local authority, region, constituency, and other administrative geography.' It uses a specific verb ('look up') and identifies the resource (postcode) and output types. No sibling tool performs this function, so it is well distinguished.

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

Usage Guidelines4/5

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

The description provides explicit use cases: 'Useful for determining which council area, parliamentary constituency, or NHS region a postcode falls within' and 'commonly used to direct users to the correct local service on GOV.UK.' While it does not state when not to use it or name alternatives, the context is clear and sufficient given the absence of similar tools.

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

law_bills_get_billGet Bill DetailA
Read-onlyIdempotent
Inspect

Get full detail for a specific parliamentary bill.

Returns sponsors, current stage, long title, summary, and Royal Assent date if enacted. Summary text is capped per max_summary_chars — check summary_truncated in the response to see if it was cut.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesBillDetailInput with bill_id and optional max_summary_chars.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesBill ID
urlYesParliament URL for this bill
is_actNoWhether the bill has received Royal Assent
stagesNoLegislative stages the bill has passed through
summaryNoBill summary text, possibly truncated per max_summary_chars. Check summary_truncated and summary_original_length for full-text info.
sponsorsNoBill sponsors
long_titleNoFull long title
short_titleYesShort title of the bill
current_houseNoHouse where the bill currently sits
current_stageNoCurrent legislative stage
originating_houseNoHouse where the bill was introduced
royal_assent_dateNoDate Royal Assent was given
summary_truncatedNoTrue if summary was cut to fit max_summary_chars
summary_original_lengthNoOriginal summary length in characters before any truncation
Behavior4/5

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

The description adds behavioral context beyond annotations by noting that the summary is capped per max_summary_chars and that summary_truncated indicates truncation. This is valuable despite the readOnlyHint and idempotentHint already being clear.

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

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the verb and resource, and every sentence adds value. No wasted words.

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

Completeness5/5

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

Given the presence of an output schema and only two parameters (one required), the description fully covers the tool's behavior and output characteristics. No further details are needed.

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

Parameters4/5

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 enhances the max_summary_chars parameter by explaining its impact on the summary and the truncation check, adding practical guidance.

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

Purpose5/5

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

The description clearly states the tool's purpose as retrieving full detail for a specific parliamentary bill, and it explicitly lists the fields returned (sponsors, current stage, long title, summary, Royal Assent date). This distinguishes it from sibling tools like search.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, though the context implies it should be used after searching for bills. No direct guidance on when not to use it or what to do with the output.

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

law_bills_search_billsSearch Parliamentary BillsA
Read-onlyIdempotent
Inspect

Search UK parliamentary bills by keyword, session, house, or legislative stage.

Returns a paginated page of bill summaries including title, current stage, and whether it has become an Act. Use bills_get_bill with the bill ID for full detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesBillSearchInput with query, optional session/house/stage filters, pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription
billsNoMatching bills. Use the integer `id` field from any bill to call bills_get_bill for full detail.
limitYesMaximum results requested in this call
queryYesThe search term that was used
totalNoTotal results matching the query across all pages, if the upstream API reported it. None if unknown.
offsetYesNumber of results skipped before this page
has_moreYesTrue if more results exist beyond this page. Re-call with offset=offset+returned to fetch the next page.
returnedYesNumber of results actually on this page
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds context about paginated results and the return fields (title, stage, Act status), going beyond annotations without contradiction.

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

Conciseness5/5

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

Two sentences: first defines action and filters, second describes output and hints at sibling. No redundant information, highly efficient.

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

Completeness5/5

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

Given the rich input schema and presence of output schema, the description adequately covers pagination and key return fields, making it complete for usage without further context.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description summarizes filter options but does not add new meaning beyond the schema's parameter descriptions.

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

Purpose5/5

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

The description clearly states it searches UK parliamentary bills with specific filters (keyword, session, house, legislative stage) and distinguishes from the sibling tool 'bills_get_bill' by directing users there for full detail.

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

Usage Guidelines4/5

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

It explains when to use this tool (initial search with filters) and mentions the alternative for full detail, but does not explicitly state when not to use this tool or exclude other scenarios.

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

law_case_law_grep_judgmentSearch within a UK Court JudgmentA
Read-onlyIdempotent
Inspect

Find paragraphs in a single judgment whose text matches a pattern.

Returns a list of {eId, snippet, match} hits — small per-paragraph snippets centred on the match — so the LLM can decide which full paragraphs to read via judgment://{slug}/para/{eId}.

Use this when answering content-based questions ("what did the judges say about negligence?", "find the test for foreseeability", "did this case cite Donoghue?") rather than navigating by paragraph number (which uses the index resource).

Pattern is regex; if it doesn't compile, falls back to literal substring search.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesInput schema for case_law_grep_judgment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYesMatching paragraphs in document order
slugYesThe judgment slug that was searched
patternYesThe pattern that was searched for
truncatedYesTrue if hit count reached max_hits and more matches may exist
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds valuable behavioral details: pattern is regex with fallback to literal, returns specific format with {eId, snippet, match}, and suggests how to retrieve full paragraphs. No contradictions.

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

Conciseness5/5

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

Two succinct, well-structured paragraphs. Front-loaded with the core action and output, followed by usage guidance. No unnecessary words.

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

Completeness5/5

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

Given the annotations, full schema coverage, and presence of an output schema, the description is complete. It explains purpose, behavior, usage, and return format adequately for an AI agent.

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

Parameters4/5

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

Schema coverage is 100%, so descriptions exist for all parameters. The description adds context about the regex fallback behavior and how the output is used, which aids parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Find paragraphs' and resource 'single judgment'. It distinguishes from sibling tools like law_judgment_get_paragraph by emphasizing content-based search versus navigation by paragraph number.

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

Usage Guidelines5/5

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

Explicitly tells when to use: 'answering content-based questions' and when not: 'rather than navigating by paragraph number'. Names alternative tool for navigation.

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

law_citations_networkGet Case Citation NetworkA
Read-onlyIdempotent
Inspect

Map all citations within a judgment — cases cited, legislation referenced, SIs, EU law.

Fetches the judgment XML from TNA and parses all OSCOLA citations within it. Returns citations grouped by type for easy analysis. Each bucket is de-duplicated and sorted.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCitationsNetworkInput with case_uri (TNA slug, e.g. 'uksc/2024/12').

Output Schema

ParametersJSON Schema
NameRequiredDescription
eu_refsNoRetained EU law references, e.g. 'Regulation (EU) 2016/679'
si_refsNoStatutory Instrument references, e.g. 'SI 2018/1234'
case_uriYesThe judgment URI that was fetched and parsed
law_report_refsNoLaw report citations, e.g. '[2020] 1 WLR 100'
total_citationsYesSum of all de-duplicated citations across every bucket
legislation_refsNoLegislation section references, e.g. 's.47 Companies Act 2006'
neutral_citationsNoNeutral citations referenced, e.g. '[2020] UKSC 14'
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value by explaining the internal behavior: fetches XML from TNA, parses OSCOLA citations, groups by type, de-duplicates, sorts. No contradiction with annotations.

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

Conciseness4/5

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

The description is concise with 4 sentences, each adding meaningful information. Front-loaded with the core purpose. Could be slightly more concise by combining the last two sentences, but no wasted content.

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

Completeness4/5

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

Given the tool has an output schema, the description does not need to detail return values. It adequately explains what the tool does, how it works, and the output structure (grouped, de-duplicated, sorted). Missing error handling details, but overall complete for a simple read-only tool.

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

Parameters3/5

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

The input schema is simple with one parameter (case_uri) and provides a 100% descriptive coverage including format guidance (TNA slug, not full URL). The description repeats 'case_uri' but adds no new semantics 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.

Purpose5/5

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

Clearly states the tool maps all citations within a judgment, specifying four types (cases, legislation, SIs, EU law). Distinguishes from sibling tools like law_citations_parse (parsing individual citations) and law_citations_resolve (resolving). Verb 'map' plus resource 'citation network' is specific and unique.

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

Usage Guidelines3/5

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

The description implies usage when wanting to get a full citation network from a judgment. However, it does not explicitly state when to use this tool over alternatives (e.g., law_citations_parse for extracting a single citation) or when not to use it. No exclusions or prerequisites are mentioned.

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

law_citations_parseParse OSCOLA CitationsA
Read-only
Inspect

Extract and classify all OSCOLA legal citations from free text.

Identifies: neutral citations ([2024] UKSC 12), law reports ([2024] 1 WLR 100), legislation sections (s.47 Companies Act 2006), SIs (SI 2018/1234), and retained EU law (Regulation (EU) 2016/679).

Ambiguous citations (e.g. bare [2024] EWHC without division) are optionally disambiguated via LLM sampling. Resolves citations to TNA / legislation.gov.uk URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCitationsParseInput with text (max 50,000 chars) and disambiguate flag.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ambiguousYesCitations with confidence < 0.7; may have been partially disambiguated via sampling
citationsYesAll successfully parsed citations (confidence >= 0.7)
text_lengthYesCharacter length of the input text
parse_duration_msYesTime taken to parse, in milliseconds
Behavior4/5

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

Annotations provide readOnlyHint=true and destructiveHint=false. Description adds behavioral details: classification of citation types, optional LLM disambiguation, and URL resolution, which are not in annotations. No contradictions.

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

Conciseness5/5

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

Description is well-structured with bullet points for citation types, front-loaded, and every sentence adds value. No redundant information.

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

Completeness4/5

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

Given the output schema exists, description need not explain return values. It covers input parameters, citation types, and disambiguation behavior sufficiently. Could mention limitations or edge cases for completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond schema (e.g., 'Resolves citations to TNA / legislation.gov.uk URLs'), but not enough to raise the score.

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

Purpose5/5

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

Description explicitly states 'Extract and classify all OSCOLA legal citations from free text' and lists specific citation types, clearly distinguishing the tool's function from siblings like 'law_citations_network' and 'law_citations_resolve'.

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

Usage Guidelines4/5

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

Implies usage when extracting citations from text, but does not explicitly state when to avoid or compare with sibling tools. However, the context of sibling names suggests alternative citation tools, providing some guidance.

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

law_citations_resolveResolve Single OSCOLA CitationA
Read-onlyIdempotent
Inspect

Parse and resolve a single OSCOLA citation to its canonical URL.

Supports: neutral citations, SIs, legislation sections, retained EU law. Returns parsed fields and resolved_url if resolvable. Raises ValueError if no recognised citation is found in the input.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCitationsResolveInput with a single citation string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYesOriginal citation text as found in the source
pageNoStarting page in the law report
typeYesClassification of the citation type
yearNoYear component of the citation
courtNoCourt code: UKSC, UKPC, EWCA Civ, EWCA Crim, EWHC (KB), EWHC (Ch), EWHC (Comm), EWHC (Fam), EWHC (Pat), EWHC (IPEC), UKUT (IAC), UKUT (TCC), UKUT (AAC), UKUT (LC), EAT, UKFTT (TC), UKFTT (GRC)
numberNoJudgment number within the year
volumeNoReport volume number (for law reports)
sectionNoSection number referenced
si_yearNoSI year (for SI YYYY/NNN citations)
si_numberNoSI number
confidenceYesParse confidence 0.0–1.0. Citations below 0.7 are ambiguous and may have been sent for LLM disambiguation.
resolved_urlNoTNA Find Case Law or legislation.gov.uk URL if successfully resolved
report_seriesNoLaw report series abbreviation: WLR, AC, QB, KB, Ch, All ER, EWCA Civ, etc.
legislation_titleNoTitle of legislation (for s.NN Act YYYY citations)
Behavior5/5

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

The description discloses that the tool raises ValueError on unrecognized input and returns parsed fields with a resolved_url if resolvable. Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate safety, and no contradictions are present.

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

Conciseness5/5

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

The description is exceptionally concise: 4 short sentences covering purpose, supported types, output, and error handling. It is front-loaded and every sentence adds value.

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

Completeness5/5

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

Given the simple input (one parameter) and presence of an output schema (context signals), the description fully covers purpose, supported inputs, error cases, and output characteristics. No gaps are apparent.

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

Parameters4/5

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

With 100% schema description coverage, the description minimally adds beyond the schema, but it reinforces the 'single' constraint and provides examples in the schema description. The description's mention of supported citation types adds limited semantic value.

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

Purpose5/5

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

The description clearly states the tool parses and resolves a single OSCOLA citation to its canonical URL, which is specific and distinct from sibling tools like law_citations_parse (parsing only) or law_citations_network (likely multiple citations).

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

Usage Guidelines4/5

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

The description implies this tool is for single citations and lists supported citation types, but does not explicitly compare with siblings or provide exclusion criteria. However, the title 'Resolve Single' and context of sibling tool names offer some guidance.

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

law_committees_get_committeeGet Committee DetailA
Read-onlyIdempotent
Inspect

Get detail for a parliamentary committee including current membership.

Fetches committee metadata and member list in parallel.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCommitteeDetailInput with committee_id from committees_search_committees.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesCommittee ID
urlNoParliament URL for this committee
nameYesCommittee name
emailNoContact email
houseNoCommons, Lords, or Joint
phoneNoContact phone number
membersNoCurrent committee members
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds the behavioral trait of parallel fetching, which adds value beyond annotations.

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

Conciseness5/5

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

Two concise sentences, no redundancy, front-loaded with key information.

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

Completeness4/5

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

Given the presence of output schema and annotations, the description adequately covers the tool's function. Minor gap: does not mention output shape, but output schema compensates.

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

Parameters3/5

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

Schema coverage is 100% and parameter description clearly states the source of committee_id. The tool description adds no further parameter meaning, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it fetches details for a parliamentary committee including membership, and distinguishes it from sibling search tools by specifying 'get detail' and 'current membership'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this versus alternatives (e.g., search committees or evidence). The parameter hint that committee_id comes from search results implies a sequence but does not fully clarify usage context.

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

law_committees_search_committeesSearch Parliamentary CommitteesA
Read-onlyIdempotent
Inspect

Search or list UK parliamentary select committees.

Returns committee names, house, and active status. Use committees_get_committee with the committee ID for membership detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCommitteeSearchInput with optional query, house, active_only, limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
houseNoHouse filter applied, or None
queryNoName substring filter applied, or None
totalYesNumber of committees returned in this call
committeesNoMatching committees. Use committees_get_committee for membership detail.
active_onlyYesWhether results were restricted to currently active committees
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds minimal behavioral context beyond confirming it is a search operation. It does not contradict annotations.

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

Conciseness5/5

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

The description is two short sentences with an additional line, all front-loaded and to the point. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the rich annotations and detailed schema, the description provides sufficient context. It includes the purpose, return values, and a link to a related tool. The existence of an output schema (not shown) may cover return format details.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning beyond the schema; it only summarizes the return fields.

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

Purpose5/5

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

The description clearly states the tool searches or lists UK parliamentary select committees and specifies returned fields (names, house, active status). It differentiates from the sibling tool 'law_committees_get_committee' by directing the user there for membership detail.

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

Usage Guidelines4/5

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

The description tells the user when to use this tool (search/list committees) and refers to an alternative for getting membership detail. However, it does not explicitly state when not to use this tool or provide exclusions.

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

law_committees_search_evidenceSearch Committee EvidenceA
Read-onlyIdempotent
Inspect

Search oral and written evidence submitted to a parliamentary committee.

Returns ONE PAGE of evidence (default 20). Free-text titles are capped per max_title_chars; witness lists are capped at 10 per item. For committees with many submissions, re-call with offset=offset+returned while has_more is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCommitteeEvidenceInput with committee_id, evidence_type, offset/limit pagination, and max_title_chars.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYesMax evidence items requested for this page
offsetYesNumber of evidence items skipped before this page
evidenceNoEvidence items in this page. Titles are capped per max_title_chars; witness lists are capped at 10 per item.
has_moreYesTrue if there may be more evidence beyond this page. Re-call with offset=offset+returned to fetch the next page. Conservative: when evidence_type='both', True if either oral or written upstream page came back full.
returnedYesNumber of evidence items actually returned in this call
committee_idYesCommittee ID this page belongs to
evidence_typeYesEvidence type filter applied to this query
Behavior5/5

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

Annotations already indicate readOnly, openWorld, idempotent, and non-destructive. The description adds rich behavioral context beyond annotations: pagination behavior, title and witness capping, splitting of limit when evidence_type='both', and the need to re-call for more pages. No contradictions.

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

Conciseness5/5

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

The description is concise (4 sentences, ~60 words), front-loaded with the main purpose, and each sentence provides distinct value: purpose, pagination, capping, and pagination strategy. No unnecessary words.

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

Completeness5/5

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

Given the tool's complexity (pagination, parameter interactions, capping) and the availability of output schema, the description covers all essential aspects: how to paginate, what caps apply, how limit splits. It implies the committee_id source (from sibling tool). Complete for an agent to use correctly.

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

Parameters4/5

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

Input schema has 100% description coverage for all parameters, so baseline is 3. The description adds extra practical semantics: default 20, splitting when 'both', witness list cap at 10, and pagination offset logic. This goes beyond the schema descriptions, justifying a 4.

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

Purpose5/5

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

The description clearly states the tool searches oral/written evidence for a parliamentary committee. It distinguishes itself from sibling tools like law_committees_search_committees and law_committees_get_committee by focusing specifically on evidence within a committee.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use this tool: to search evidence. It also includes pagination instructions (re-call with offset+returned while has_more is true) and notes default page size and capping. However, it does not explicitly list alternatives or when not to use, so it's not a full 5.

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

law_get_promptAInspect

Get a prompt by name with optional arguments.

Returns the rendered prompt as JSON with a messages array. Arguments should be provided as a dict mapping argument names to values.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the prompt to get
argumentsNoOptional arguments for the prompt

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as error handling, permission requirements, or side effects. It mentions the return format but does not disclose what happens if the prompt name is invalid or if arguments are malformed.

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

Conciseness5/5

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

The description is concise with three sentences, each serving a purpose. The first sentence states the core action, and subsequent sentences detail the return format and argument format, with no redundancy.

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

Completeness4/5

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

Given the presence of an output schema and the tool's simplicity, the description adequately covers the essential aspects: purpose, return format, and argument structure. It could mention the source of prompt names but is sufficient for its complexity.

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

Parameters4/5

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

While the schema descriptions cover both parameters, the description adds value by specifying that arguments must be a dictionary mapping names to values, clarifying the structure beyond the schema's 'additionalProperties: true'.

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

Purpose5/5

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

The description clearly states the verb 'Get a prompt by name' and specifies the resource, making the purpose unambiguous. It distinguishes from sibling tools like law_list_prompts by focusing on retrieval of a single prompt.

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

Usage Guidelines2/5

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 like law_list_prompts or other law tools. No prerequisites or exclusions are mentioned, 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.

law_hmrc_check_mtd_statusCheck MTD VAT StatusA
Read-onlyIdempotent
Inspect

Check a business's Making Tax Digital VAT mandate status via the HMRC API.

NOTE: Connects to the HMRC sandbox by default. Set HMRC_API_BASE env var to 'https://api.service.hmrc.gov.uk' for production. Requires HMRC_CLIENT_ID and HMRC_CLIENT_SECRET environment variables (OAuth 2.0). Returns whether the business is mandated for MTD, effective date, and trading name.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesHMRCMTDStatusInput with the 9-digit VAT Registration Number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
vrnYesVAT Registration Number queried
mandatedYesWhether this business is mandated for MTD VAT
trading_nameNoRegistered trading name if available
effective_dateNoDate from which MTD obligation applies
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and non-destructive. Description adds behavioral context: sandbox default connection, required environment variables, and the specific return fields (mandated status, effective date, trading name). No contradiction with annotations.

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

Conciseness5/5

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

Six sentences, front-loaded with purpose and key notes. Each sentence adds value: purpose, environment setup, credentials, return value. No redundant information.

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

Completeness5/5

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

Given the output schema exists (context signal), the description covers all necessary aspects: what the tool does, prerequisites (env vars), and what it returns. Adequate for a simple check tool.

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

Parameters3/5

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

Schema coverage is 100% with a detailed description for vrn (9 digits, min/max length, GB prefix handling). Description reiterates the VRN format but adds no new meaning beyond the schema.

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

Purpose5/5

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

Description clearly states the tool checks a business's Making Tax Digital VAT mandate status via HMRC API. The verb 'check' and resource 'MTD VAT status' are specific and distinguish it from sibling tools like law_hmrc_get_vat_rate or dd_vat_validate.

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

Usage Guidelines4/5

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

Description provides clear context: connects to sandbox by default, requires setting HMRC_API_BASE for production, and needs HMRC_CLIENT_ID and HMRC_CLIENT_SECRET. It does not explicitly state when not to use or list alternatives, but sibling tools are sufficiently distinct.

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

law_hmrc_get_vat_rateGet VAT Rate for CommodityA
Read-onlyIdempotent
Inspect

Look up the UK VAT rate for a commodity or service type.

Returns the rate category (standard 20%, reduced 5%, zero 0%, exempt), effective date, and any relevant conditions or exceptions. Uses a static lookup table current as of 22 Nov 2023 (Autumn Statement). Rates may have changed — always verify against GOV.UK for recent Budgets.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesHMRCVATRateInput with the commodity_code (description of goods or service).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateYesVAT rate category
notesNoAny additional notes or conditions on this rate
commodity_codeYesCommodity code or description queried
effective_fromYesDate from which this rate applies
rate_percentageYesApplicable rate as percentage: 20.0 (standard), 5.0 (reduced), 0.0 (zero/exempt)
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds value by explaining the data source (static lookup table), and what is returned (rate category, effective date, conditions). It also warns about potential changes, which is not covered by annotations.

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

Conciseness5/5

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

The description is three sentences: first states purpose, second lists return content, third provides a caveat. It is concise, front-loaded, and every sentence adds value. No superfluous information.

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

Completeness5/5

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

With an output schema available and annotations covering safety, the description provides sufficient context: purpose, return contents, data source limitations, and a verification warning. It is complete for an agent to decide and invoke correctly.

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

Parameters3/5

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

The input schema has one parameter (commodity_code) with a description that already includes examples. The tool description adds that it is for a 'commodity or service type' but doesn't significantly expand beyond the schema. Given 100% schema description coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Look up the UK VAT rate for a commodity or service type.' The title 'Get VAT Rate for Commodity' reinforces this. It specifies the resource (UK VAT rate) and action (look up), and distinguishes from siblings which are unrelated (e.g., company searches, legislation).

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

Usage Guidelines4/5

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

The description provides usage context by mentioning it uses a static lookup table from a specific date and advises verifying against GOV.UK for recent changes. This guides the agent on when to use and cautions about staleness. It doesn't explicitly list alternatives, but no sibling tool does the same function, so it's sufficient.

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

law_hmrc_search_guidanceSearch HMRC GuidanceA
Read-onlyIdempotent
Inspect

Search GOV.UK for HMRC tax guidance documents.

Returns matching guidance titles, URLs, summaries, and last-updated dates. Searches the official GOV.UK content API filtered to HMRC publications.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesHMRCGuidanceSearchInput with query (topic to search).

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe search query that was run
totalYesNumber of guidance documents returned in this call
resultsNoMatching HMRC guidance pages. Each entry's `summary` is capped per the max_summary_chars input parameter.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, providing safety profile. The description adds that it uses the GOV.UK API with HMRC filter, but does not discuss rate limits or other behaviors. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and return information, no unnecessary words. Highly efficient.

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

Completeness5/5

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

Given the simple single-parameter tool with an existing output schema, the description provides sufficient context: purpose, return values, and data source. No gaps identified.

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

Parameters3/5

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

Schema coverage is 100% with a well-described parameter (query with examples). The description does not add additional parameter details beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it searches for HMRC tax guidance documents on GOV.UK, specifies the return fields (titles, URLs, summaries, dates), and distinguishes from other search tools by the HMRC filter.

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

Usage Guidelines4/5

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

The description implies usage for HMRC guidance searches, and given sibling tools like gov_govuk_search, the HMRC filter provides clear context. However, it does not explicitly state when not to use this tool or mention alternatives.

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

law_judgment_get_headerGet Judgment HeaderA
Read-onlyIdempotent
Inspect

Get metadata for a UK court judgment: parties, judges, neutral citation, court, dates.

Use case_law_search to find the slug, then call this for orientation before reading specific paragraphs via judgment_get_paragraph.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesJudgment slug, e.g. 'uksc/2024/12' or 'ewca/civ/2023/450'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

Description adds context beyond the readOnly and idempotent annotations by listing the specific metadata fields. No contradictions with annotations.

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

Conciseness5/5

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

Extremely concise: 3 lines with front-loaded purpose. Every sentence earns its place, no redundancy.

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

Completeness5/5

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

Given there is an output schema (not shown), the description adequately covers purpose, workflow, and parameter usage. No missing critical information.

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

Parameters3/5

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

The sole parameter 'slug' is well-documented in the input schema with examples. The description mentions the slug but does not add new semantic meaning beyond what the schema already provides.

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

Purpose5/5

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

Description clearly states it gets metadata (parties, judges, citation, court, dates) for a UK court judgment. It uses a specific verb and resource, and distinguishes itself from sibling tool for reading paragraphs.

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

Usage Guidelines5/5

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

Explicitly guides the agent to first use case_law_search to find the slug, then call this tool for orientation, then use the sibling tool for paragraphs. Provides a clear workflow and context.

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

law_judgment_get_indexGet Judgment Paragraph IndexA
Read-onlyIdempotent
Inspect

Get the paragraph navigation index for a UK court judgment.

Returns eId: first_line pairs for every paragraph. Use this to discover paragraph identifiers, then call judgment_get_paragraph to read specific ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesJudgment slug, e.g. 'uksc/2024/12'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already indicate read-only and idempotent behavior; description adds detail on output format (eId: first_line pairs) without contradiction.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and clear structure, no extraneous text.

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

Completeness5/5

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

Given simple tool with one param and output schema, description fully explains purpose, usage, and output format.

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

Parameters3/5

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

Schema covers 100% of the single parameter with description, but description adds no additional semantics beyond the schema.

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

Purpose5/5

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

Description clearly states it gets a paragraph navigation index for a UK court judgment, distinguishing it from sibling judgment_get_paragraph.

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

Usage Guidelines5/5

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

Explicitly says to use this to discover paragraph identifiers, then call judgment_get_paragraph to read specific ones, providing direct guidance on workflow.

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

law_judgment_get_paragraphGet Judgment ParagraphA
Read-onlyIdempotent
Inspect

Get a single paragraph from a UK court judgment by its LegalDocML eId.

Use judgment_get_index first to discover available eIds. Returns the paragraph XML content (400–1,700 tokens typical).

ParametersJSON Schema
NameRequiredDescriptionDefault
eIdYesParagraph eId from judgment_get_index, e.g. 'para_12'. Numeric strings like '12' are accepted and normalized to 'para_12'.
slugYesJudgment slug, e.g. 'uksc/2024/12'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds value by specifying the return format (paragraph XML content) and typical token range, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no unnecessary words, and front-loads the core purpose. Every sentence serves a purpose.

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

Completeness5/5

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

With an output schema present (as indicated by context signals), the description does not need to detail return values. It covers the essential purpose, prerequisite, and typical output length. The tool is simple and the description is complete for its complexity.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters (slug and eId). The description mentions eId and slug but does not add significant new meaning beyond what the schema provides. Hence, baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'single paragraph from a UK court judgment', and the method 'by its LegalDocML eId'. It effectively distinguishes from sibling tools like law_judgment_get_index and law_judgment_get_header.

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

Usage Guidelines4/5

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

The description explicitly instructs to 'Use judgment_get_index first to discover available eIds', providing a clear prerequisite. It also notes the typical token range, aiding in expectations. It does not explicitly state when not to use, but the context is sufficient.

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

law_legislation_get_sectionGet Legislation SectionA
Read-onlyIdempotent
Inspect

Retrieve a specific section of a UK Act or Statutory Instrument.

Returns the full section text, territorial extent, in-force status, and prospective flag. Content is capped per max_chars (default 10,000, ~2,500 tokens) — raise max_chars for unusually long definition sections. Check content_truncated in the response to see if it was cut.

IMPORTANT: Always check extent — a section may apply to England & Wales but not Scotland or Northern Ireland.

Alternative: read the resource template legislation://{type}/{year}/{number}/section/{section} to get raw CLML XML directly. Use this tool when you want the parsed structured response (extent, in-force, version_date) instead of raw XML.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYestype, year, number, section identifier, optional max_chars.

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYesSection title or heading
extentNoTerritorial extent: list of 'England', 'Wales', 'Scotland', 'Northern Ireland'. Empty list means unknown — do not assume full UK extent.
contentYesPlain text content of the section, possibly truncated per max_chars. Check content_truncated and original_length for full-text information.
in_forceNoWhether this section is currently in force; None if unknown
warningsNoNon-fatal retrieval or parsing warnings the caller should disclose where relevant.
prospectiveNoTrue if this section has not yet come into force; None if unknown
version_dateNoDate of the version retrieved
source_formatNoSource parsed for this response. html_fallback means CLML XML was unavailable and text was parsed from the public HTML page.
section_numberYesSection number, e.g. '47', '12A', 'Schedule 2'
original_lengthNoOriginal plain-text length in characters before any truncation
content_truncatedNoTrue if content was cut to fit max_chars
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds behavioral details beyond annotations: content truncation with max_chars cap, the need to check 'content_truncated' flag, and the territorial extent check. No contradictions.

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

Conciseness5/5

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

The description is very concise: a single sentence for purpose, one for what it returns, one for truncation behavior, one for critical guidance, and one for alternatives. Every sentence is necessary and well-placed.

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

Completeness5/5

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

Given the complexity of UK legislation and the presence of an output schema, the description is complete. It covers return fields (full text, extent, in-force status, prospective flag), truncation behavior, important checks, and the alternative method. No gaps remain.

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

Parameters4/5

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

Schema description coverage is 100% with clear descriptions for each parameter. The description adds extra value: for 'section' it clarifies to use only numeric part and not schedules; for 'max_chars' it explains default and when to raise it. This enhances schema information.

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

Purpose5/5

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

The description clearly states 'Retrieve a specific section of a UK Act or Statutory Instrument', specifying the verb, resource, and scope. It distinguishes itself from the sibling resource template alternative by noting this tool provides a parsed structured response.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use this tool (for parsed structured response) vs the alternative (raw XML via resource template). It also gives critical guidance: always check 'extent' and 'content_truncated', and advises when to increase max_chars for long sections.

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

law_legislation_get_tocGet Legislation Table of ContentsA
Read-onlyIdempotent
Inspect

Retrieve the table of contents for a UK Act or SI.

Returns structural elements (parts, chapters, sections, schedules) with XML id and title, e.g. 'section-47: Definitions'. When calling legislation_get_section, pass only the numeric part — use '47', not 'section-47'.

Large statutes (Companies Act 2006 has 1300+ items) are paginated via offset/limit. Check has_more and total_items on the response.

Alternative: read the resource template legislation://{type}/{year}/{number}/toc for the full TOC as a newline-separated id: title string (no pagination). Use this tool when you need the structured LegislationTOC response with offset/limit/has_more for stepping through Companies-Act-scale lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesLegislationGetTocInput with type, year, number, offset, limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYesLegislation type code echoed from the request
yearYesYear of enactment echoed from the request
itemsNoTOC entries in XML document order, formatted as '<id>: <title>', e.g. 'section-47: Definitions'. When calling legislation_get_section pass only the numeric part ('47', not 'section-47').
limitYesPage size applied after offset
numberYesChapter or SI number echoed from the request
offsetYesOffset applied to the full TOC item list
has_moreYesTrue if more items remain beyond offset+returned
returnedYesNumber of items in this response
total_itemsYesTotal number of structural items parsed from the XML, before offset/limit. Use this to know the full size of the TOC.
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and no destruction. The description adds crucial behavioral details: pagination with offset/limit, has_more/total_items, and large statute handling. No contradictions.

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

Conciseness5/5

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

Nine sentences packed with information, no redundancy. Front-loaded with purpose, well organized, each sentence contributes meaningfully. Concise without being terse.

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

Completeness5/5

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

Given output schema exists, return values need not be detailed. The description covers pagination, alternative, ID usage, and large statute handling. Complete for a paginated structured tool.

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

Parameters4/5

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

Schema coverage is 100% with full parameter descriptions. The description adds value with pagination usage hints (offset/limit) and the important note about using numeric IDs only. This goes beyond baseline 3.

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

Purpose5/5

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

The description clearly states it retrieves the table of contents for UK Acts or SIs, specifying structural elements returned. It distinguishes from the resource template alternative, making the purpose 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.

Usage Guidelines5/5

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

Explicitly states when to use this tool (when structured response with pagination is needed) and when to use the alternative resource template. Also provides guidance on using numeric IDs with legislation_get_section.

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

law_list_promptsAInspect

List all available prompts.

Returns JSON with prompt metadata including name, description, and optional arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

No annotations provided. Description mentions it returns metadata but doesn't discuss side effects or auth; operation is simple and read-only.

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

Conciseness5/5

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

Two sentences, directly conveys purpose and output structure, no wasted words.

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

Completeness5/5

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

Given simplicity and presence of output schema, description fully covers the tool's functionality.

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

Parameters4/5

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

No parameters (schema coverage 100%), description adds meaning by specifying return structure.

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

Purpose5/5

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

Clearly states it lists all available prompts and returns metadata. Distinguishes from sibling get_prompt tools.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives, but contextually it's a listing action before drilling into specific prompts.

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

law_parliament_find_memberFind Member of ParliamentA
Read-onlyIdempotent
Inspect

Search for a current or former MP or Lord by name.

Returns all members matching the name query, each with the integer id required by parliament_member_debates and parliament_member_interests, plus party, constituency, house, and current-sitting status.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFindMemberInput with the name (full or partial).

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe name that was searched
totalYesNumber of members matching the query
membersNoMatching members. Use the integer `id` field from any member to call parliament_member_debates or parliament_member_interests.
Behavior4/5

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

Annotations already mark it as read-only and idempotent. The description adds that it returns all matches (not just current) and specifies the returned fields, which is helpful. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, and each sentence adds distinct value: search description and result details with cross-tool context. No wasted words.

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

Completeness5/5

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

Given the tool's simplicity, the description covers what it does, what it returns, and how it connects to other tools. An output schema exists to document the return structure, so completeness is high.

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

Parameters3/5

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

The input schema has 100% coverage with a clear description of the 'name' parameter. The description repeats that it searches by name but does not add new semantic details 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.

Purpose5/5

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

The description clearly states it searches for a current or former MP or Lord by name, specifies the returned fields (id, party, constituency, house, status), and directly ties the id to other sibling tools (parliament_member_debates and parliament_member_interests), making purpose and unique value very clear.

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

Usage Guidelines4/5

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

The description implies usage for obtaining member IDs needed for other parliament tools, and hints that multiple results may be returned. However, it does not explicitly state when not to use it (e.g., for searches by constituency) or compare with alternatives beyond the two sibling tools.

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

law_parliament_member_debatesGet Member DebatesA
Read-onlyIdempotent
Inspect

Retrieve Hansard contributions by a specific member, optionally filtered by topic.

Use parliament_find_member first to obtain the integer member ID. Each contribution's text field is capped at 3000 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesMemberDebatesInput with member_id and optional topic filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size requested
topicNoTopic phrase filter applied, if any
totalYesNumber of contributions returned in this call
offsetNoSkip applied to this page
has_moreNoTrue if a full page was returned (more may exist)
member_idYesParliament Members API member ID
contributionsNoHansard contributions for the member. Each `text` field is capped at 3000 characters.
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds a useful constraint: each contribution's text is capped at 3000 characters. No contradictions with annotations.

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

Conciseness5/5

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

Three concise sentences: purpose, prerequisite, a output constraint. No unnecessary words, well-structured.

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

Completeness4/5

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

Given the output schema exists, the description doesn't need to detail return structure. It covers the main action, prerequisite, and a key constraint. Could mention pagination (offset/limit) but schema already describes it.

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

Parameters3/5

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

Schema coverage is 100%, so the schema itself documents parameters well. The description reiterates the member_id prerequisite but adds little beyond the schema. The 3000-character note pertains to output, not input parameters.

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

Purpose5/5

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

The description clearly states the tool retrieves Hansard contributions for a specific member with optional topic filtering. This distinguishes it from sibling tools like law_parliament_find_member (ID lookup) and law_parliament_search_hansard (cross-member search).

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

Usage Guidelines4/5

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

The description explicitly advises using parliament_find_member first to get the member ID, establishing a clear prerequisite. However, it does not contrast with alternatives like search_hansard for non-member-specific queries.

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

law_parliament_member_interestsGet Member Financial InterestsA
Read-onlyIdempotent
Inspect

Look up registered financial interests for a member of Parliament.

Returns ONE PAGE of interests (default 20, caller controls via limit). For prolific members (big donors, many directorships, extensive land holdings), re-call with offset=offset+returned while has_more is true to paginate. Description text is capped per max_description_chars; raise it for forensic provenance work that needs the full narrative.

Use parliament_find_member first to obtain the integer member_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesmember_id, optional category filter, pagination (offset/limit), and max_description_chars content cap.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYesMax interests requested for this page
offsetYesNumber of interests skipped before this page
categoryNoCategory filter applied to this query, or None for all categories
has_moreYesTrue if there may be more interests beyond this page. Re-call with offset=offset+returned to fetch the next page.
returnedYesNumber of interests actually returned in this call
interestsNoThe interests in this page. `description` text is capped per the max_description_chars input parameter.
member_idYesParliament Members API member ID
Behavior4/5

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

Description adds behavioral context beyond annotations: explains pagination behavior (one page per call, has_more flag), description truncation, and prerequisite tool call. Annotations already declare readOnly, idempotent, and non-destructive; description complements without contradiction.

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

Conciseness5/5

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

Four sentences covering purpose, pagination, description cap, and prerequisite. No redundant information. Front-loaded with essential action.

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

Completeness4/5

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

Covers pagination, parameter tuning, and prerequisite tool. Output schema presumably handles return values. Missing details on error handling or data freshness, but sufficient for effective use.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter explanations. The tool description adds minor value by summarizing pagination and description cap usage, but does not significantly enhance understanding beyond the schema.

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

Purpose5/5

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

Clearly states the tool looks up registered financial interests for a member of Parliament. Distinguishes from siblings by specifying the resource and context, and explicitly mentions using parliament_find_member first, which is a sibling tool, providing clear differentiation.

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

Usage Guidelines4/5

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

Provides guidance on pagination for prolific members and when to raise max_description_chars (forensic work). Implicitly advises default limit of 20 for focused responses. Could be more explicit about when to use this tool over other member-related tools, but prerequisites are clear.

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

law_parliament_search_hansardSearch Hansard DebatesA
Read-onlyIdempotent
Inspect

Search Hansard for parliamentary debates, questions, and speeches.

Returns contributions from MPs and Lords including date, party, debate title, and text (capped at 3000 chars per contribution). Useful for understanding legislative intent or political context.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesHansardSearchInput with query, optional date range, optional member filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size requested
queryYesThe phrase that was searched in Hansard
totalYesNumber of contributions returned in this call
memberNoMember name filter applied, if any
offsetNoSkip applied to this page (Hansard API: skip)
to_dateNoEnd date filter applied, if any
has_moreNoTrue if a full page was returned (more may exist; re-call with offset=offset+limit)
from_dateNoStart date filter applied, if any
contributionsNoMatching Hansard contributions. Each `text` field is capped at 3000 characters.
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by noting the 3000-character cap per contribution, which is a behavioral constraint not captured by annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loading the main action and then adding context. Every sentence is purposeful and concise.

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

Completeness4/5

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

The description covers the return fields (date, party, debate title, text) and character cap. With an output schema existing, this is sufficient for an agent to understand the tool. Pagination details are partially implied by the input schema, but not explicitly mentioned in the description.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter has a detailed description in the schema. The tool description does not add additional parameter-specific meaning, so it meets the baseline for full coverage.

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

Purpose5/5

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

The description clearly states it searches Hansard for parliamentary debates, questions, and speeches, and specifies that it returns contributions with date, party, debate title, and text. This distinguishes it from sibling tools like law_parliament_member_debates and law_parliament_search_petitions.

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

Usage Guidelines3/5

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

The description mentions it is 'useful for understanding legislative intent or political context,' providing a use case. However, it does not explicitly compare to alternatives or state when not to use it, so the guidance is present but limited.

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

law_parliament_search_petitionsSearch UK Parliament PetitionsA
Read-onlyIdempotent
Inspect

Search UK Parliament petitions by keyword.

Returns petition title, state, signature count, and dates for government response or parliamentary debate if applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesPetitionSearchInput with query and optional state filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitNoPage size requested
queryYesThe term that was searched in petitions
stateYesPetition state filter applied to this query
totalYesNumber of petitions returned in this call
offsetNoSkip applied to this page
has_moreNoTrue if a full page was returned (more may exist)
petitionsNoMatching petitions (title, state, signature count, key dates, URL).
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to reiterate these. The description adds context about return values (dates for response/debate) but does not disclose any other behavioral traits such as pagination, rate limits, or authentication needs. It meets the baseline for a read-only search with annotations.

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

Conciseness5/5

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

The description is two short sentences with no superfluous information. It front-loads the core purpose followed by return details. Every word adds value.

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

Completeness5/5

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

For a simple search tool with full schema coverage and an output schema (as indicated by context signals), the description adequately covers purpose and basic return fields. Pagination details are in the schema via offset/limit, and the description is sufficient for an agent to use this tool correctly.

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

Parameters3/5

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

Input schema coverage is 100% with detailed parameter descriptions. The description mentions 'by keyword' which aligns with the query parameter but adds no new semantic meaning beyond what schema provides. Baseline score of 3 is appropriate since schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the action ('Search UK Parliament petitions') and the method ('by keyword'), and lists specific return fields (title, state, signature count, dates). It distinguishes this from sibling search tools like law_bills_search_bills or law_parliament_search_hansard by focusing on petitions.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It only describes what it does, leaving the agent to infer usage from the tool name and context. There is no mention of when not to use it or which sibling tool to choose for other purposes.

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

law_parliament_vibe_checkParliamentary Policy Vibe CheckA
Read-only
Inspect

Assess the likely parliamentary reception of a policy proposal.

Searches Hansard for relevant debate contributions, then uses LLM sampling to classify sentiment and extract supporters, opponents, and key concerns.

Degrades gracefully if sampling is unavailable — returns contributions only.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesPolicyVibeInput with policy_text (full description) and topic (search keyword).

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe policy query that was analysed
key_concernsNoMain concerns raised in debate
contributionsYesRaw contributions retrieved from Hansard
key_opponentsNoMembers identified as opposed or critical
key_supportersNoMembers identified as supportive
sentiment_summaryNoLLM-generated sentiment summary (None if sampling unavailable)
Behavior5/5

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

The description adds valuable behavioral context beyond the annotations: it explains the two-step process (Hansard search then LLM sampling), the classification outputs (supporters, opponents, concerns), and the fallback behavior if sampling fails. Annotations only indicate read-only and open-world, so this is a substantial addition.

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

Conciseness5/5

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

The description is extremely concise (three sentences, 41 words) yet covers all essential aspects: purpose, method, and fallback behavior. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Given the tool's complexity (multiple steps, LLM sampling, fallback) and the presence of an output schema (unknown contents but present), the description provides sufficient context for an AI agent to understand the tool's capabilities, inputs, and behavior. No critical information is missing.

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

Parameters3/5

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

The input schema covers both parameters (topic and policy_text) with clear descriptions, including advice on term selection for topic. The description adds no further parameter semantics beyond what the schema already provides, 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.

Purpose5/5

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

The description clearly states the tool's purpose: to assess the likely parliamentary reception of a policy proposal by searching Hansard and using LLM sampling for sentiment analysis. This distinguishes it from sibling tools like law_parliament_search_hansard which only retrieve contributions, and law_parliament_member_debates which focus on a specific member.

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

Usage Guidelines4/5

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

The description implies when to use this tool (for assessing reception of a policy proposal) and mentions graceful degradation if sampling is unavailable, but does not explicitly state when not to use it or list alternatives such as direct Hansard search for raw contributions.

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

law_votes_get_divisionGet Division DetailA
Read-onlyIdempotent
Inspect

Get full detail for a parliamentary division including how each member voted.

Voter lists are truncated to 100 per side to fit response limits. Total voter counts are always accurate regardless of truncation.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesDivisionDetailInput with division_id and house.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesDivision ID
dateYesDate of the division
houseYesCommons or Lords
titleYesDivision title / motion text
passedYesWhether the motion passed
truncatedNoWhether voter lists were truncated to fit response limits
aye_votersNoMembers who voted Aye (may be truncated)
ayes_countYesTotal Aye votes
noe_votersNoMembers who voted No (may be truncated)
noes_countYesTotal No votes
total_aye_votersNoTotal number of Aye voters before truncation
total_noe_votersNoTotal number of No voters before truncation
is_government_winNoWhether the government won (Lords only)
Behavior5/5

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

Annotations already mark it as read-only and non-destructive. Description adds behavioral info: voter lists truncated to 100 per side, total counts accurate. This goes beyond annotations.

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

Conciseness5/5

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

Two sentences front-load purpose and limitation. No fluff.

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

Completeness5/5

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

With output schema present and only one required parameter, the description covers purpose, source of division_id, and a key limitation. It is complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. Description adds no extra 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.

Purpose5/5

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

Description clearly states 'Get full detail for a parliamentary division including how each member voted.' This is a specific verb+resource and distinguishes from sibling law_votes_search_divisions which searches for divisions.

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

Usage Guidelines4/5

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

Description implicitly guides usage by referencing 'division_id from votes_search_divisions results,' but does not explicitly state when not to use or provide alternatives. It is clear in context.

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

law_votes_search_divisionsSearch Parliamentary DivisionsA
Read-onlyIdempotent
Inspect

Search parliamentary divisions (votes) in the Commons or Lords.

Returns division summaries including title, date, vote counts, and whether the motion passed. Use votes_get_division with the division ID for full voter lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesDivisionSearchInput with optional query, house, date range, member filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
houseYesCommons or Lords
limitNoPage size requested
queryNoThe search term, if any (None = browse recent)
totalYesNumber of divisions returned in this call
offsetNoSkip applied to this page
has_moreNoTrue if a full page was returned (more may exist)
divisionsNoMatching divisions. Use the integer `id` field with votes_get_division to fetch the full voter list.
Behavior5/5

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

The description aligns with annotations (readOnlyHint, idempotentHint, non-destructive) and discloses what the tool returns (summaries with title, date, vote counts, pass/fail). No contradictions.

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

Conciseness5/5

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

Two concise sentences: first states purpose and scope, second explains return content and directs to sibling. Front-loaded and no wasted words.

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

Completeness5/5

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

Given the presence of an output schema (not shown but noted), the description sufficiently covers purpose, usage, and behavior. It is complete for a search tool with clear parameters and sibling guidance.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The tool description does not add significant semantic value beyond the schema, only restating the search scope. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool searches parliamentary divisions in Commons or Lords, returning summaries. It distinguishes itself from the sibling tool votes_get_division by explicitly directing users there for full voter lists.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool (searching divisions) and when to use the sibling (votes_get_division for full voter lists), providing clear guidance on alternatives.

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

prop_epc_certificateA
Read-only
Inspect

Fetch a single EPC certificate by its lmk_key (certificate hash).

Use after property_epc_search has identified the correct cert — this is faster than property_epc(postcode, address) as it makes a direct lookup with no fuzzy matching or postcode re-fetch.

lmk_key is returned in every property_epc_search result.

Returns the full EPC certificate or None if not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
lmk_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

The description discloses key behavioral traits: it is a direct lookup with no fuzzy matching, returns the full certificate or None if not found. This aligns with the readOnlyHint annotation and adds context beyond what annotations provide.

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

Conciseness5/5

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

The description is four sentences, each serving a distinct purpose: function, usage context, performance rationale, and output specification. It is front-loaded and every sentence is necessary.

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

Completeness5/5

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

For a simple one-parameter read tool with an output schema (indicated by context signals), the description covers all needed information: purpose, when to use, parameter source, and return behavior. Nothing additional is required.

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

Parameters5/5

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

The input schema has 0% description coverage for the single parameter 'lmk_key', but the description compensates fully by defining it as a 'certificate hash' and explaining it is returned by property_epc_search. This adds essential meaning for correct invocation.

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

Purpose5/5

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

The description explicitly states 'Fetch a single EPC certificate by its lmk_key', providing a specific verb and resource. It distinguishes from siblings 'property_epc_search' and 'property_epc' by noting it is a direct lookup after search, making the tool's unique role clear.

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

Usage Guidelines5/5

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

The description gives clear when-to-use guidance: 'Use after property_epc_search has identified the correct cert' and explains it is faster than alternatives. It also tells the agent where to obtain the required key (from property_epc_search results), leaving no ambiguity.

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

prop_ppd_transactionsC
Read-only
Inspect

Raw Land Registry Price Paid transactions for a postcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
postcodeYes
property_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's claim of 'transactions' aligns with a read operation. However, the description adds little else, such as data freshness, ordering, pagination, or the effect of the limit parameter, which would be useful behavioral context.

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

Conciseness3/5

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

The description is a single sentence of 8 words, which is concise but overly brief. It sacrifices necessary detail for brevity, making it less helpful than it could be.

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

Completeness2/5

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

While the tool has an output schema, the description fails to explain the three input parameters beyond postcode. It omits details about limiting results and filtering by property type, leaving the agent with incomplete context for proper invocation.

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

Parameters2/5

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

With 0% schema description coverage, the description should clarify parameters beyond their names. It only mentions 'for a postcode,' ignoring the limit and property_type parameters. The agent receives no explanation of how these affect results.

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

Purpose4/5

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

The description clearly states the tool retrieves 'Raw Land Registry Price Paid transactions for a postcode,' specifying the data source and the primary filter. However, it does not explicitly distinguish itself from sibling property tools like prop_property_blocks or prop_property_comps, which could be used for similar but aggregated data.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, such as other property tools that provide different types of property data. There is no mention of when not to use it or what scenarios are appropriate.

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

prop_property_blocksB
Read-only
Inspect

Property block analysis — identify buildings with multiple flat sales (block-buy opportunities).

ParametersJSON Schema
NameRequiredDescriptionDefault
monthsNo
postcodeYes
search_levelNosector

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations indicate readOnlyHint=true, so safety is covered. Description adds 'analysis', which is consistent with read-only behavior. No further behavioral traits (e.g., limitations or data sources) are disclosed, but no contradiction with annotations.

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

Conciseness5/5

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

Single, front-loaded sentence with clear noun phrase. No wasted words. Every word earns its place.

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

Completeness2/5

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

Despite having an output schema, the description lacks mention of required inputs (postcode) or optional parameters. For a tool with 3 parameters and one required, the description should at least hint at the key input. It is incomplete for effective use.

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

Parameters1/5

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

Input schema has 3 parameters (months, postcode, search_level) with 0% description coverage. The tool description does not explain any parameter semantics, leaving the agent without guidance on how to use the required postcode or optional parameters. Given low coverage, the description should compensate but fails.

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

Purpose5/5

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

Description clearly identifies the tool's purpose: property block analysis to find buildings with multiple flat sales for block-buy opportunities. Verb 'identify' and resource 'buildings with multiple flat sales' are specific, and it distinguishes from sibling tools like prop_property_comps and prop_property_yield.

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

Usage Guidelines3/5

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

Description implies usage for block-buy opportunities but does not explicitly state when to use versus alternatives. No when-not or alternative tool mentions. Among siblings, other property analysis tools exist, but no guidance is provided.

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

prop_property_compsA
Read-only
Inspect

Comparable sales from Land Registry Price Paid Data.

Defaults return the standard residential set:

  • property_type=None means residential (F+D+S+T). Pass "F"/"D"/"S"/"T"/"O" for a single type, or "ALL" to disable type filtering (firehose).

  • transaction_category defaults to "A" (standard sales). Pass None to include category-B (bulk transfers, non-standard conveyances).

  • filter_outliers=False by default; set True for IQR-trimmed stats AND transaction list (1.5*IQR rule, needs >=4 prices).

limit caps returned transactions (max 200). enrich_epc attaches EPC floor area and price-per-sqft to each transaction — slower but richer.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
monthsNo
addressNo
postcodeYes
enrich_epcNo
search_levelNosector
property_typeNo
filter_outliersNo
transaction_categoryNoA

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Exceeds readOnlyHint annotation by detailing defaults, outlier trimming behavior ('IQR-trimmed stats AND transaction list'), and trade-offs (enrich_epc slower). Discloses max limit and category filtering.

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

Conciseness5/5

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

Highly concise: single sentence opening, then bullet points for defaults. Each sentence adds value, no fluff.

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

Completeness4/5

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

Given output schema exists, description adds relevant behavioral details (outlier thresholds, EPC enrichment cost). Covers most needed context for a 9-parameter tool.

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

Parameters4/5

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

With 0% schema coverage, description compensates by explaining key parameters (property_type, transaction_category, filter_outliers, enrich_epc, limit). Misses address, months, search_level but covers majority.

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

Purpose5/5

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

Clearly states 'Comparable sales from Land Registry Price Paid Data', a specific verb and resource. Distinguishes from siblings by focusing on comparable sales and explaining default residential set versus other property types.

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

Usage Guidelines3/5

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

Implies usage through parameter descriptions but does not explicitly state when to use this tool versus sibling tools like prop_ppd_transactions. No alternative recommendations provided.

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

prop_property_epcA
Read-only
Inspect

Energy Performance Certificate data for a UK property or postcode area.

With address: returns the matched EPC certificate for that specific property. Without address: returns an aggregated summary of every certificate at the postcode — count, rating distribution, property-type breakdown, floor-area range — plus a hint to call again with an address for single-property detail.

Returns None if no certificates exist for the postcode at all.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNo
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint: true, indicating no side effects. The description adds substantial behavioral context: the two modes of operation, the content of the aggregated summary (count, rating distribution, property-type breakdown, floor-area range), and the None return for missing data. It does not contradict the annotation.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose, and each sentence adds distinct value. There is no redundant or extraneous information, making it efficient for an agent to parse quickly.

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

Completeness5/5

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

Given the tool has two modes, an output schema (not shown), and annotations indicating read-only, the description provides sufficient detail for correct invocation. It covers both parameter combinations, explains the aggregated summary composition, and handles the edge case of missing certificates. The output schema likely details return fields, so the description does not need to enumerate them.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining the role of each parameter: 'postcode' is required for lookup, 'address' (optional) switches between aggregated and specific results. It also clarifies the return behavior for each case, adding meaning well beyond the bare schema.

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

Purpose5/5

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

The description clearly states it returns Energy Performance Certificate data for a UK property or postcode area. It distinguishes two modes: with address (specific property certificate) and without address (aggregated summary). This is specific, and the name 'prop_property_epc' indicates EPC data, differentiating it from siblings like prop_property_blocks or prop_property_comps.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use the address parameter versus not: with address returns single certificate, without returns aggregated summary. It also explains the case when no certificates exist (returns None) and hints to call again with address for detail. However, it does not explicitly compare to sibling tools or state when to use alternatives, leaving some inference to the agent.

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

prop_property_yieldA
Read-only
Inspect

Gross rental yield for a UK postcode.

Combines Land Registry sale comps (median sale price) with Rightmove rental listings (median monthly rent) to produce a gross yield percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthsNoPPD sale lookback period (default 24).
postcodeYesUK postcode (e.g. "NG1 2NS").
search_levelNoPPD search granularity — "postcode", "sector" (default), or "district".sector
auto_escalateNoWiden the PPD search area on thin markets — postcode→ sector→district. Default True. Set False for strict-locality only.
property_typeNoFilter sales by type. None (default) = residential set (F+D+S+T). Pass "F"/"D"/"S"/"T"/"O" for one type, "ALL" for firehose.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds context by explaining the computation from two data sources. This enriches transparency without contradicting annotations, though further details on data freshness or limitations could improve it.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and contains no wasted words. It is optimally concise for an AI agent.

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

Completeness4/5

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

Given the presence of an output schema, the lack of return value explanation is acceptable. The description covers the main function and data sources, but could mention yield formula or edge cases for full completeness.

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

Parameters3/5

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

Input schema coverage is 100%, and the description adds no additional meaning to parameters beyond their schema descriptions. The baseline score of 3 is appropriate given that the schema already handles param semantics.

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

Purpose5/5

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

The description clearly states it computes 'Gross rental yield for a UK postcode' using two specific data sources (Land Registry and Rightmove), making the verb and resource precise. Among sibling tools, it uniquely produces yield, differentiating itself effectively.

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

Usage Guidelines3/5

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

The description implies usage for rental yield calculations but does not explicitly contrast with sibling tools like prop_rental_analysis or prop_property_comps. No when-to-use or when-not-to-use guidance is provided beyond the basic function.

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

prop_rental_analysisB
Read-only
Inspect

Rental market analysis and achievable rent estimate.

auto_escalate widens the search area when fewer than 5 listings are found (thin market). Response includes thin_market, escalated_from, escalated_to fields when escalation occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNo
postcodeYes
auto_escalateNo
purchase_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

The description discloses the auto_escalate mechanism and response fields for thin markets. This adds value beyond the readOnlyHint annotation, which already indicates no 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.

Conciseness5/5

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

The description is highly concise, using three short sentences to convey purpose and key behavior. Every sentence adds value without redundancy.

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

Completeness3/5

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

While the description covers main functionality and thin-market handling, it lacks parameter details and does not describe the output schema, despite its existence. Adequate but incomplete for full autonomous use.

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

Parameters2/5

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

With 0% schema description coverage, the description only clarifies the auto_escalate parameter. It does not explain postcode format, radius units, or the purpose of purchase_price, leaving significant gaps.

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

Purpose4/5

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

The description clearly states it provides 'rental market analysis and achievable rent estimate,' which is specific. However, it does not distinguish from similar sibling tools like prop_property_yield or prop_property_comps, slightly reducing clarity.

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

Usage Guidelines2/5

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

The description lacks guidance on when to use this tool versus alternatives. It only explains an internal behavior (auto_escalate) but does not mention contexts, prerequisites, or scenarios where other tools are preferable.

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

prop_rightmove_listingA
Read-only
Inspect

Full detail for a single Rightmove listing (URL or numeric ID).

include_images fetches and embeds photos and floorplans as MCP image content. max_images caps the number of property photos (default 3); floorplans always included.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_imagesNo
include_imagesNo
property_url_or_idYes
Behavior4/5

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

Describes optional image embedding behavior, caps, and floorplan inclusion. Annotations already indicate readOnlyHint, so this adds value beyond annotations.

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

Conciseness5/5

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

Two sentences: purpose first, then parameter details. No fluff, front-loaded.

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

Completeness4/5

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

Covers image handling well. Could mention what 'full detail' includes (e.g., price, address) since no output schema, but adequate for a straightforward listing tool.

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

Parameters4/5

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

With 0% schema coverage, description explains 'include_images' and 'max_images' effects. 'property_url_or_id' is self-explanatory but not elaborated; overall good compensation.

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

Purpose5/5

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

Explicitly states 'full detail for a single Rightmove listing', with clear verb (get) and resource. Sibling 'prop_rightmove_search' is for searching, so this is distinct.

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

Usage Guidelines4/5

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

Context is clear: use when you have a specific listing URL or ID. However, no explicit when-not or comparison to siblings like 'prop_rightmove_search'.

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

prop_stamp_dutyB
Read-only
Inspect

UK Stamp Duty Land Tax (SDLT) calculation with full breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYes
non_residentNo
first_time_buyerNo
additional_propertyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's 'calculation' aligns. However, no additional behavioral traits (e.g., UK-specific rules, input ranges) are disclosed beyond what annotations provide.

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

Conciseness4/5

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

Single sentence, highly concise and front-loaded with purpose. Somewhat underspecified, but no wasted words.

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

Completeness2/5

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

Despite having 4 parameters and an output schema, the description fails to clarify what 'full breakdown' includes (e.g., tax bands, surcharges). Leaves significant gaps for the agent to interpret.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no explanation for parameters like price, non_resident, first_time_buyer, or additional_property. The user must infer their meaning solely from the schema, which lacks descriptions.

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

Purpose5/5

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

The description explicitly states 'UK Stamp Duty Land Tax (SDLT) calculation with full breakdown,' which clearly identifies the tool's function as a tax calculator. It is distinct from sibling tools like property search or law tools.

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

Usage Guidelines2/5

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, such as when a simple estimate vs. exact calculation is needed. Lacks context for when not to use it.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources