Skip to main content
Glama
Stealth-Labs-LTD

GovUK MCP Server

Gov.uk MCP Server

A comprehensive Model Context Protocol (MCP) server providing access to 27 UK government data sources and services. Built for Claude Desktop and other MCP-compatible clients.

Note: This is a hobby project, expect issues and use for demonstration purposes only.

๐ŸŒŸ Features

  • 33 Government APIs: Companies House, Parliament, NHS, Transport, and more

  • 15 Visual Widgets: Rich UI components via MCP Apps for data visualization

  • Production-Ready: Comprehensive input validation, error sanitization, rate limiting

  • Type-Safe: Full input validation with regex patterns

  • Secure: Sanitized errors, XSS protection, origin validation

  • Fast: Concurrent execution for bulk operations (voting records)

๐Ÿ’ฌ Example Prompts

Try asking:

  • "What are the five nearest postcodes to SW1A 1AA?"

  • "When is the next Bank Holiday?"

  • "How can I get from Brixton to St Pancras?"

  • "What's the status of the Circle Line?"

  • "Where's my nearest Hospital?"

  • "Who's my MP?"

  • "What's their voting record?"

Related MCP server: mcp-uk-ons

๐Ÿ“ฆ Installation

# Clone the repository
git clone https://github.com/brummiesteven/GovUK-MCP.git
cd GovUK-MCP

# Install dependencies
pip install -e .

# Or with dev dependencies
pip install -e ".[dev]"

๐Ÿ”‘ API Keys Setup

Create a .env file in the project root:

# Required for Companies House tools
COMPANIES_HOUSE_API_KEY=your_companies_house_key

# Required for EPC tools
EPC_API_KEY=your_email:your_epc_key

# Optional (works without but has lower rate limits)
TFL_API_KEY=your_tfl_key

API Key Requirements

Required APIs (2):

Optional APIs (1):

No Key Required (24 tools): Postcode, Food Hygiene, Bank Holidays, Gov.uk Search, Flood Warnings, Police Crime, Courts, Charity, NHS, Legislation, CQC, Parliamentary tools

๐Ÿš€ Usage

With Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gov-uk": {
      "command": "python",
      "args": ["-m", "gov_uk_mcp.server"],
      "env": {
        "COMPANIES_HOUSE_API_KEY": "your_key_here",
        "EPC_API_KEY": "your_email:your_key_here"
      }
    }
  }
}

Standalone (For Development)

python -m gov_uk_mcp.server

๐Ÿ› ๏ธ Available Tools (33)

Transport (6)

  • get_tube_status - All Tube lines status

  • get_line_status - Specific line status

  • plan_journey - Journey planner with step-by-step directions

  • get_bike_points - Santander Cycles availability

  • get_road_status - Major road conditions

  • search_stops - Find bus stops, stations, etc.

Business & Finance (6)

  • search_companies, get_company, get_company_officers, get_company_filing_history

  • search_charities, get_charity

Location & Geographic (5)

  • lookup_postcode, nearest_postcodes

  • search_food_establishments, get_flood_warnings, get_crime_by_postcode

Healthcare (5)

  • find_gp_surgeries, find_hospitals, find_pharmacies

  • search_cqc_providers, get_cqc_provider

Parliamentary (5)

  • find_mp, search_hansard, get_voting_record

  • search_divisions, search_questions, get_questions_by_mp

Other Services (4)

  • search_epc_by_postcode, find_courts, search_govuk, get_bank_holidays, search_legislation

๐ŸŽจ MCP Apps Widgets

This server includes 15 visual widgets compatible with MCP Apps-enabled clients. Widgets provide rich, interactive visualizations of API responses.

Widget

Description

tube-status

London Underground status with line colors

postcode-lookup

Location information grid

company-info

Companies House profile card

food-hygiene

FSA ratings with score indicators

flood-warnings

Environment Agency alerts

mp-info

MP profile with photo and party colors

bank-holidays

Upcoming holidays calendar

crime-stats

Crime breakdown by category

cqc-rating

Care quality ratings display

charity-info

Charity Commission details

voting-record

Parliamentary voting history

bike-points

Santander Cycles availability

journey-planner

TfL journey with step-by-step

road-status

Major road conditions

nhs-services

GP, hospital, pharmacy finder

Widgets are automatically served when tools are called from compatible clients.

๐Ÿงช Testing

# Run all tests
pytest

# With coverage
pytest --cov=gov_uk_mcp --cov-report=html

# Specific test
pytest tests/test_validation.py -v

๐Ÿ“ License

MIT - see LICENSE

๐Ÿ™ Credits

  • MCP by Anthropic

  • UK Government Open Data APIs

  • Python ecosystem


Built for the UK developer community ๐Ÿ‡ฌ๐Ÿ‡ง

Available Tools

33 tools
find_courtsA

Find courts by postcode or name.

Args: postcode: UK postcode name: Court name to search for

Returns court details, types, and contact information.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeNo
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description must cover behavioral traits. It states what the tool does and returns, implying a read-only lookup, but does not explicitly disclose idempotency, rate limits, or auth needs. Adequate for a simple lookup.

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-line purpose/returns followed by a bullet list of args. Front-loaded, no wasted words, efficiently structured.

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?

Tool is simple with output schema present; description adds return context. However, missing detail on combining parameters, required parameters, or edge cases (e.g., no results) leaves gaps.

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 0%, so description must compensate. It provides brief meanings ('UK postcode', 'Court name to search for'), which adds value over the raw schema but lacks format specifics or usage constraints.

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 courts by postcode or name' with a specific verb and resource, distinguishing it from siblings like find_hospitals or find_gp_surgeries. The return clause adds 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?

No guidance on when to use this tool vs alternatives, no mention of required parameters or priority when both are supplied. Sibling tools exist for similar entities without differentiation.

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

find_gp_surgeriesB

Find GP surgeries near a postcode.

Args: postcode: UK postcode

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic action, omitting details like read-only nature, authentication needs, rate limits, or error handling.

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 very short and front-loaded with the main purpose. It is concise, but could include slightly more detail without becoming verbose.

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?

Given the simplicity of the tool (one parameter, output schema exists) the description is minimally adequate, but lacks usage guidelines and behavioral context for a complete understanding.

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 compensate for the 'postcode' parameter. Adding 'UK' provides a constraint but lacks format details or validation rules, offering minimal added 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 'Find GP surgeries near a postcode' clearly identifies the verb (find), resource (GP surgeries), and scope (near a postcode), effectively distinguishing it from siblings like find_hospitals and find_pharmacies.

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, no prerequisites, and no exclusions. It simply states the function without context.

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

find_hospitalsB

Find hospitals near a postcode.

Args: postcode: UK postcode

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic purpose without disclosing behavioral traits such as number of results, ordering, error handling, or authentication requirements. This is minimal transparency.

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 very concise (one sentence plus parameter list) and front-loads the purpose. No wasted words, though it could be slightly more structured (e.g., noting 'UK postcode').

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?

Given the tool is simple (1 parameter) and has an output schema, the description is adequate but incomplete. It lacks details like postcode format variations (e.g., case sensitivity, spaces) and result limits, which could affect agent behavior.

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 0%, but the description adds value by specifying 'UK postcode', clarifying the expected format beyond the schema's generic 'string' type. This helps agents understand what input is valid.

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 hospitals near a postcode' with a specific verb (find) and resource (hospitals) and context (near a postcode). It distinguishes from siblings like find_gp_surgeries and find_pharmacies, which are different services.

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?

There is no guidance on when to use this tool versus alternatives. With many sibling tools for similar location-based services (e.g., find_gp_surgeries, find_pharmacies), the description lacks any context about selection criteria or when to prefer this tool.

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

find_mpA

Find MP by name, constituency, or postcode.

Args: query: MP name, constituency name, or UK postcode

Returns MP details including party and constituency.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the return value (party and constituency) but does not disclose potential side effects, error handling, or limitations like case sensitivity. It is sufficiently transparent for a simple lookup tool.

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 filler, and the key information is front-loaded. 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?

Given the tool's simplicity (one parameter, no nested objects), the description provides enough context for an agent to use it correctly. The presence of an output schema reduces the need to detail return structure.

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 only defines a string 'query' with 0% coverage. The description adds significant meaning by specifying that the query can be an MP name, constituency, or UK postcode, which clarifies the expected input format 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' and the resource 'MP' with specific search criteria (name, constituency, or postcode). It distinguishes itself from sibling tools like find_courts or find_hospitals by focusing solely on MPs.

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 explains the tool's purpose and acceptable input types but does not explicitly state when to use it over alternatives or provide exclusions. However, the context of sibling tools implies it is the only tool for finding MPs, so the guidance is adequate.

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

find_pharmaciesB

Find pharmacies near a postcode.

Args: postcode: UK postcode

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states 'Find pharmacies near a postcode' without disclosing output details, limitations, or behavioral traits (e.g., pagination). Given output schema exists, return format is covered, but agent gets no 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?

Extremely concise: one sentence plus args. Every word serves a purpose. Front-loaded with the main action.

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?

Given output schema exists, return values are covered. However, for a tool with one parameter and simple purpose, the description is minimally adequate but lacks details that could improve agent decision (e.g., what information is returned for each pharmacy).

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 0%, so description must compensate. The 'Args' section adds 'UK postcode' which clarifies the required format. However, no additional details on valid postcode examples or error handling.

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 pharmacies near a postcode', using a specific verb and resource. It distinguishes itself from sibling tools like find_courts and find_hospitals which target different resources.

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

Usage 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., find_gp_surgeries, find_hospitals). Lacks context for decision-making.

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

get_bank_holidaysB

Get UK bank holidays.

Args: country: Country to get holidays for (england-and-wales, scotland, northern-ireland)

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/5

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

With no annotations, the description carries full burden for behavioral disclosure. It merely states the purpose without any details on idempotency, rate limits, authentication needs, or side effects. No behavioral traits are mentioned.

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 (one line of purpose plus parameter list) with no wasted words. However, it could be more structured by front-loading key usage constraints.

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 fails to explain what happens when the optional parameter is omitted (e.g., does it return all countries?). This omission leaves a gap in understanding the tool's behavior for a simple operation.

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 parameter 'country' is explained with explicit allowed values ('england-and-wales, scotland, northern-ireland'), adding significant meaning beyond the schema (which only specifies type and nullability). This compensates for the 0% schema description 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?

Description clearly states the tool's purpose: 'Get UK bank holidays.' It specifies the resource (UK bank holidays) and the verb (Get), distinguishing it from sibling tools like get_company or get_charity.

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 is provided on when to use this tool versus alternatives. The description lacks context about appropriate scenarios or exclusions, leaving the agent to infer usage.

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

get_bike_pointsA

Get Santander Cycles docking stations in London.

Args: lat: Latitude for location search (optional) lon: Longitude for location search (required if lat provided) radius: Search radius in meters (default: 500)

ParametersJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
radiusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses the get operation and the constraint 'lon required if lat provided'. However, it does not mention any behavioral traits like data freshness, rate limits, or pagination. The explanation of parameter dependencies adds moderate transparency.

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: two sentences plus a structured 'Args:' section. Every line adds value, with no redundant information. It is front-loaded with the main purpose and efficiently details parameters.

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 that an output schema is present, the description does not need to detail return values. It covers the tool's purpose and parameters adequately. Minor omission: no mention of the scope (only London) or any usage limits. Still, it sufficiently informs the agent for basic invocation.

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 has 0% description coverage, so the description must add meaning. It explains 'lat: Latitude for location search', 'lon: Longitude', 'radius: Search radius in meters (default: 500)', and the relationship that lon is required if lat is provided. This significantly clarifies parameter usage 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 what the tool does: 'Get Santander Cycles docking stations in London.' The verb 'Get' and resource 'Santander Cycles docking stations' are specific and unambiguous. Among sibling tools, none overlap, making it 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 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 or when not to. It provides parameter guidance (lat required if lon provided) but lacks context for usage scenarios. No exclusion criteria are mentioned.

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

get_charityB

Get detailed charity information by registration number.

Args: charity_number: Charity registration number

ParametersJSON Schema
NameRequiredDescriptionDefault
charity_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as rate limits, output size, or any side effects. The tool appears to be a simple read operation, but transparency is minimal.

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 very short and to the point, but it omits potentially useful details like return format or usage examples. It is not overly verbose, but it could be more informative while remaining concise.

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?

The tool has a single simple parameter and an output schema, so the description is adequate for basic use. However, it lacks context about what 'detailed charity information' includes or any edge cases.

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?

With 0% schema description coverage, the description adds meaning by stating 'charity_number: Charity registration number', which clarifies the parameter's purpose beyond the schema's string type. However, it provides no formatting or validation details.

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' and the resource 'detailed charity information', and specifies the identifier 'by registration number'. This distinguishes it from sibling tools like search_charities.

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 like search_charities. The description does not mention prerequisites or context for use.

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

get_companyB

Get detailed company information by company number from Companies House.

Args: company_number: Company number (e.g., 12345678)

ParametersJSON Schema
NameRequiredDescriptionDefault
company_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It indicates a read operation but does not disclose potential rate limits or that the company number must be from Companies House. Adequate but minimal.

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?

Two concise sentences, front-loaded with core purpose. No waste, though could be slightly more detailed without losing conciseness.

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?

Given one parameter, no annotations, and an output schema, the description is minimally complete. Lacks usage guidance among many sibling tools and does not mention return value characteristics.

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 0%, but description adds an example format ('e.g., 12345678') for company_number. Provides basic clarity but does not explain what a company number is.

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 verb 'Get', resource 'detailed company information', and identifier 'company number'. Among sibling tools like get_company_filing_history and get_company_officers, it is distinct in purpose.

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?

Provides no guidance on when to use this tool versus alternatives like search_companies. No context on prerequisites 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.

get_company_filing_historyB

Get company filing history by company number from Companies House.

Args: company_number: Company number (e.g., 12345678) items_per_page: Number of results to return (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
company_numberYes
items_per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description lacks details about behavioral traits like read-only nature, rate limits, or pagination behavior beyond the items_per_page parameter.

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?

Short and front-loaded, but the 'Args' section slightly repeats the description. Could be more concise by integrating the example inline.

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?

With output schema present, return values are covered. But missing context like the fact it's a read operation or any prerequisites. Adequate for a simple 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 0%, so description adds value: provides an example for company_number and states default value for items_per_page. However, it could specify that items_per_page is optional and any constraints.

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 'company filing history', and the source 'Companies House'. It distinguishes from sibling tools like get_company and search_companies.

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 get_company or search_companies. The description does not mention 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.

get_company_officersB

Get list of company officers (directors, secretaries) by company number.

Args: company_number: Company number (e.g., 12345678)

ParametersJSON Schema
NameRequiredDescriptionDefault
company_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It fails to disclose any behavioral traits such as data freshness, error handling, rate limits, or authentication requirements. Only the basic function is described.

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: two sentences with no wasted words. The purpose is front-loaded, and the parameter is clearly listed. Every sentence adds essential 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?

Given the simple single-parameter input and the existence of an output schema, the description is adequate. However, it could mention the output format or include a note about pagination. It covers the core functionality but lacks 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 0%, so the description must compensate. It provides an example value ('12345678') and clarifies that the parameter is a company number. However, it does not explain the format or any constraints 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 explicitly states the action ('Get list of company officers') and the resource ('by company number'), with examples of officer types. It clearly distinguishes from siblings like 'get_company' or 'search_companies'.

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. It does not specify prerequisites, limitations, or when not to use it. The description only states the basic operation.

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

get_cqc_providerB

Get detailed CQC ratings and information for a care provider.

Args: location_id: CQC location ID

ParametersJSON Schema
NameRequiredDescriptionDefault
location_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral traits. It only describes the function without disclosing side effects, authorization needs, rate limits, or whether it is 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?

The description is extremely concise with two sentences, front-loading the purpose. Every word is necessary and no fluff.

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?

Given the tool's simplicity and the presence of an output schema, the description provides minimal context but is adequate. It could be improved by mentioning the output schema or typical use cases, but it is not incomplete.

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 coverage is 0%, and the description merely repeats the parameter name and type ('CQC location ID'), adding no additional meaning such as format, examples, or source. It fails to compensate for the lack of schema description.

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' and resource 'detailed CQC ratings and information for a care provider', distinguishing it from sibling 'search_cqc_providers' which is search-oriented.

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 a specific provider's details are needed, but it does not explicitly state when to use vs alternatives or mention prerequisites. The sibling name provides context, but the description lacks explicit guidance.

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

get_crime_by_postcodeA

Get street-level crime data for a postcode area.

Args: postcode: UK postcode

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'Get street-level crime data'. It does not disclose return format, authentication needs, rate limits, or any behavioral traits beyond the generic action.

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 tightly written sentences with the purpose front-loaded. Every word serves a purpose, no 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?

Given the simple single-parameter tool and existence of an output schema, the description is minimally adequate. However, it lacks behavioral transparency and usage context that would improve completeness.

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 input schema has 0% coverage, but the description adds 'UK postcode' to the parameter, clarifying the geographical scope and expected format. This provides meaningful context beyond the type 'string'.

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 uses a specific verb ('Get') and resource ('street-level crime data') and clearly distinguishes from sibling tools that serve different data types like courts, banks, or hospitals.

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. The description simply states what it does without any contextual cues or exclusions, leaving the agent to infer usage.

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

get_flood_warningsA

Get active flood warnings for England. Can filter by postcode or area.

Args: postcode: Postcode to search for (optional) area: Area name to search for (optional)

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeNo
areaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, but the description indicates a safe read operation. However, it does not disclose potential pitfalls (e.g., no data for postcode, API limits) beyond the basic functionality.

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 plus parameter list), front-loaded with the main action, and contains no unnecessary 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 tool is simple with two optional parameters and an output schema present; the description provides enough context for an AI to use it effectively.

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 merely restates parameter names and optionality, adding minimal insight into expected formats or constraints.

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 active flood warnings for England, and distinguishes itself from siblings (e.g., crime, bank holidays, transport) by being the only tool for flood warnings.

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 is implied from the name and description; no explicit guidance on when to use or alternatives, but the tool's purpose is straightforward.

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

get_line_statusB

Get status for a specific London Underground line.

Args: line_id: Line ID (e.g., 'central', 'northern', 'piccadilly')

ParametersJSON Schema
NameRequiredDescriptionDefault
line_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits such as authentication, rate limits, or what specific status information is returned (e.g., disruptions only). The output schema exists but its content is not described.

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 very short and front-loaded with the main purpose. However, it includes an 'Args:' section that largely duplicates the schema, wasting a line. It could be more concise by omitting that section.

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?

Given the tool has only 1 parameter and an output schema exists, the description is minimally adequate. It does not explain the return value format or scope of 'status', but the output schema may compensate. For a simple tool, this is moderately complete.

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 0%, but the description adds value by providing concrete examples of valid line IDs ('central', 'northern', 'piccadilly'), clarifying the parameter beyond the schema's type-only definition. This helps the agent understand expected input format.

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 status for a specific London Underground line' with explicit verb and resource. It uses specific terminology (London Underground line) and provides example line IDs, effectively distinguishing it from siblings like get_road_status and get_tube_status.

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, such as get_tube_status, or when not to use it. No contextual usage hints are given.

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

get_questions_by_mpC

Get all parliamentary questions asked by a specific MP.

Args: mp_name: MP name limit: Number of results (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
mp_nameYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It does not mention authentication, rate limits, pagination, or ordering. The 'limit' parameter hints at pagination but is not explained.

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 very short and front-loaded, but the brevity sacrifices important details. It is not overly verbose but could be more informative without losing conciseness.

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?

Although the tool has only two parameters and an output schema is present, the description lacks context on authentication, pagination details, or what constitutes a 'parliamentary question'. The minimal description is insufficient for an agent to use confidently.

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

Parameters2/5

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

The parameter descriptions add minimal value beyond the field names. 'mp_name: MP name' is tautological; 'limit' is common. With 0% schema coverage, the description fails to provide meaningful 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 the tool retrieves all parliamentary questions asked by a specific MP, using a specific verb and resource. This distinguishes it from the sibling 'search_questions' which likely allows broader search.

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 is provided on when to use this tool versus alternatives like 'search_questions'. The description does not mention exclusion criteria or context.

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

get_road_statusA

Get current status of major roads in London.

Args: road_ids: Comma-separated road IDs (e.g., 'A2,A40,M25')

ParametersJSON Schema
NameRequiredDescriptionDefault
road_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as rate limits, data freshness, or side effects. It only states the basic function, leaving the agent without extra 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?

The description is extremely conciseโ€”two short sentencesโ€”with no wasted words. It efficiently conveys the purpose and parameter format.

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 an output schema exists, the description does not clarify what 'current status' entails (e.g., closures, delays). It provides minimal context for a simple tool, but leaves some ambiguity for the 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?

The parameter road_ids has schema coverage 0%, but the description adds crucial format guidance ('comma-separated road IDs' with example 'A2,A40,M25'), significantly improving understanding beyond the raw 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 tool retrieves current status of major roads in London, using a specific verb and resource. It is distinguished from sibling tools like get_tube_status and get_line_status which handle different transport modes.

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 road status queries via the name and context, but lacks explicit guidance on when to use this tool versus alternatives or any prerequisites.

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

get_tube_statusA

Get current status of all London Underground lines.

Returns status, delays, and disruption info for all tube lines.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description must carry behavioral burden. It states the tool returns status, delays, and disruption info, which is adequate for a read-only query. Could be more explicit about being non-destructive but 'Get' implies read.

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 with no wasted words. Front-loads the core purpose and efficiently supplements with return value details.

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 is simple with no params and an output schema. Description sufficiently covers all relevant aspects: purpose and return content. No missing context for a straightforward query 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; schema coverage is trivially 100%. Baseline for 0 params is 4. Description adds no parameter info because none exist.

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 retrieves current status of all London Underground lines, with a specific verb and resource. It distinguishes from siblings like get_line_status (specific lines) and get_road_status (roads).

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 tool versus alternatives like get_line_status. While the tool's simplicity implies usage, it lacks context on exclusion criteria or prerequisites.

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

get_voting_recordA

Get voting record for an MP.

Args: mp_name_or_id: MP name or member ID division_id: Specific division ID (optional) limit: Number of recent votes to return (default: 20)

Shows how they voted on specific bills or recent voting history.

ParametersJSON Schema
NameRequiredDescriptionDefault
mp_name_or_idYes
division_idNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries full burden. It states that the tool 'shows how they voted,' implying a read operation, and does not contradict any annotations. However, it lacks details on authentication, rate limits, or any side effects.

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

Conciseness4/5

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

The description is structured with an Args list, making it easy to scan. It is relatively concise but includes both a summary sentence and detailed parameter info, which is acceptable. Minor redundancy could be trimmed.

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 tool has an output schema, so return value explanation is not needed. The description covers the primary use case and explains all parameters. It is complete for a simple retrieval tool, though it omits error conditions or prerequisites.

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 adds significant value by explaining each parameter: mp_name_or_id, division_id, and limit, including their purposes and defaults. This fully compensates for the missing schema 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 starts with 'Get voting record for an MP,' which is a specific verb+resource pair. It clearly states what the tool does and distinguishes it from sibling tools like 'find_mp' or 'get_questions_by_mp' which serve different purposes.

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 see an MP's voting record, but it does not explicitly state when to use this tool versus alternatives like 'search_hansard' or 'get_questions_by_mp.' No exclusion criteria 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.

lookup_postcodeA

Look up details for a UK postcode.

Args: postcode: UK postcode (e.g., SW1A 1AA)

Returns location, council, constituency, and coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; the description indicates a read-only lookup returning details. It does not explicitly state non-destructive behavior or any potential rate limits, but the simple nature of the tool makes it adequate.

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: one sentence plus a clear args list. It is front-loaded with the core purpose and efficiently uses every word 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 low complexity (single parameter), presence of an output schema, and specific return fields listed, the description is mostly complete. It could mention handling of invalid postcodes but is sufficient for typical use.

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 parameter 'postcode' is described with an example format (e.g., SW1A 1AA), adding meaning beyond the schema's type string. Schema coverage is 0%, and the description compensates well with format and example.

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 'Look up details for a UK postcode', specifying the verb 'look up' and the resource 'postcode'. It distinguishes from sibling tools like get_crime_by_postcode or find_mp, which have different purposes.

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 explicit guidance on when to use this tool versus alternatives like nearest_postcodes or find_mp. The usage context is implied by the description but lacks exclusions or alternative suggestions.

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

nearest_postcodesB

Find nearest postcodes to a given postcode.

Args: postcode: UK postcode (e.g., SW1A 1AA) limit: Number of nearest postcodes to return (default: 10)

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states the basic operation. It does not disclose behaviors such as error handling for invalid postcodes, rate limits, or the format of the response.

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 and front-loaded with the purpose. The inclusion of 'Args:' is slightly redundant given the schema, but overall the structure is clear and efficient.

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?

Given the tool has a simple input (2 parameters) and an output schema exists, the description is adequate but minimal. It could mention that the postcode must be valid and that results are sorted by distance.

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 description adds meaning beyond the schema by explaining the 'postcode' parameter with an example ('SW1A 1AA') and describing the 'limit' parameter with its default value (10). Schema coverage is 0%, so the description fully compensates.

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: 'Find nearest postcodes to a given postcode.' It uses a specific verb ('find') and resource ('nearest postcodes'), and distinguishes itself from sibling tools like lookup_postcode, which retrieves details for a single postcode.

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. It does not mention exclusions, prerequisites, or context such as that the postcode must be a valid UK postcode.

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

plan_journeyA

Plan a journey between two locations in London using public transport.

Args: from_location: Starting point (postcode, station name, or address) to_location: Destination (postcode, station name, or address) via: Optional intermediate stop time: Optional time for journey (ISO format or HH:MM) time_is_arrival: If True, time is arrival time; if False, departure time

ParametersJSON Schema
NameRequiredDescriptionDefault
from_locationYes
to_locationYes
viaNo
timeNo
time_is_arrivalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It describes the purpose and parameters but lacks details on behavioral traits such as error handling, real-time nature, or optional intermediate stops. This is acceptable but not exhaustive.

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 a leading sentence and an Args list. It is front-loaded with purpose and efficiently covers parameters. Slightly wordy but overall effective.

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 5 parameters and an output schema, the description adequately covers inputs and purpose. It does not detail return values or error conditions, but the output schema likely handles that. Minor omissions prevent a 5.

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?

Schema description coverage is 0%, so the description fully compensates by explaining each parameter: from_location/to_location (postcode, station, address), via (optional), time (ISO or HH:MM), and time_is_arrival (boolean). This adds significant meaning beyond the raw 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 plans a journey between two locations in London using public transport, which is a specific verb and resource. It distinguishes itself from sibling tools, none of which are journey planners.

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 implicitly indicates when to use this tool (for journey planning in London via public transport). While it doesn't explicitly state when not to use it, the context signals show no similar tool among siblings, so differentiation is adequate.

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

search_charitiesB

Search for registered charities by name.

Args: name: Charity name to search for

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral traits such as rate limits, pagination, or result handling. It only states the search action without further details.

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 only two lines, front-loading the purpose and documenting the parameter efficiently without any unnecessary words.

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?

For a simple search tool with one parameter and an output schema (not shown), the description is minimally adequate but does not explain return values or behavior. It could be more complete given the lack of annotations.

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 description adds basic semantics to the name parameter by stating it is a 'Charity name to search for', which is an improvement over the schema (just a string). However, it lacks details on format, case sensitivity, or partial matching.

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 for registered charities by name, using a specific verb and resource, distinguishing it from sibling tools like get_charity which likely retrieve a single charity.

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 is provided on when to use this tool versus alternatives such as get_charity or other search tools. The description only states the function without context on appropriate use cases.

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

search_companiesA

Search for UK companies by name using Companies House API.

Args: query: Company name to search for items_per_page: Number of results to return (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
items_per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full transparency burden. It discloses the external API source but omits behavioral traits such as rate limits, result pagination, matching behavior (exact vs. fuzzy), or error conditions. Minimal but not misleading.

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 plus an argument list. The purpose is front-loaded and every word serves a purpose. No 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?

Given the tool's low complexity and presence of an output schema, the description is adequate but incomplete. It lacks details on pagination, result limits, and potential errors, which would aid the agent in fully understanding the tool's behavior.

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 0%, so the description must compensate. It adds basic context ('Company name to search for', 'Number of results to return (default: 20)') but does not elaborate on format, search behavior, or constraints for 'items_per_page'. Slightly above baseline.

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 for UK companies by name using the Companies House API. It effectively distinguishes from sibling tools which target different entities (e.g., courts, charities, hospitals).

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 explicit guidance is provided on when to use this tool versus alternatives like 'get_company' for single lookups. The description does not mention when not to use this tool or any prerequisites.

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

search_cqc_providersC

Search for CQC registered care providers by name or postcode.

Args: name: Provider name postcode: UK postcode

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
postcodeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only says 'search' without detailing behavior such as pagination, result limits, or how it handles empty queries. This is insufficient for an agent to understand the tool's effects.

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 highly concise with no wasted words, and the purpose is front-loaded. However, the parameter listing could be more structured, and it sacrifices informativeness for brevity.

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?

Given the tool has 2 optional parameters and an output schema, the description does not explain how the search works (e.g., if at least one parameter is needed, how results are ordered). It is incomplete for reliable agent usage.

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?

The input schema has 0% description coverage, so the description is the only source for parameter meaning. It adds 'Provider name' and 'UK postcode' which are minimal and do not offer examples, formats, or guidance on search logic (e.g., fuzzy matching).

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 for CQC registered care providers by name or postcode, using a specific verb and resource. It distinguishes itself from siblings like 'get_cqc_provider' which likely retrieves a single provider.

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 (e.g., when to use 'get_cqc_provider' for a known provider). No context on prerequisites or exclusions is given.

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

search_divisionsB

Search parliamentary divisions (votes) by keyword.

Args: query: Search term limit: Number of results (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses the search behavior and limit parameter but does not mention result structure, pagination, or any side effects. Output schema exists but is not referenced.

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 with two sentences, no wasted words. Properly front-loaded with the core purpose.

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?

Given the simple search nature and existence of output schema, the description is adequate for basic use. However, it lacks any comparative context with sibling tools or behavioral details like sorting or filtering.

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?

Schema description coverage is 0%, so the description must add meaning. It provides minimal definitions (query: 'Search term', limit: 'Number of results (default: 20)') which add only slightly more than the schema's names.

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 searches parliamentary divisions (votes) by keyword, using a specific verb and resource. It is distinct from siblings like search_questions or search_hansard, though not explicitly differentiated.

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, nor any exclusions or prerequisites. The description only states the basic action without contextual usage advice.

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

search_epc_by_postcodeB

Search for Energy Performance Certificates by postcode.

Args: postcode: UK postcode

Returns energy ratings (A-G) and property details.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states that it searches and returns energy ratings and property details, but fails to disclose any behavioral traits such as authentication requirements, rate limits, or how invalid postcodes are handled. This is minimal transparency.

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 very concise: two sentences plus an args line, with no fluff. It is front-loaded with the purpose. However, it could be slightly more structured (e.g., bullet points) for readability, but it's efficient.

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?

The tool has one simple parameter and an existing output schema, so the description need not detail return values. It mentions 'energy ratings (A-G) and property details', which is adequate. However, it does not clarify if multiple certificates are returned or pagination exists, leaving some ambiguity. A 3 is appropriate.

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?

The description says 'postcode: UK postcode' but adds little beyond the schema's type string. It does not specify format (e.g., spacing), expected length, or any validation rules. With 0% schema coverage, the description should compensate but barely does.

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 'Search for Energy Performance Certificates by postcode', specifying the verb and resource. It distinguishes itself from sibling tools (e.g., search_companies, search_charities) by focusing on EPCs, and the name itself is explicit.

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 (e.g., lookup_postcode for general postcode info). No exclusions or prerequisites are mentioned, leaving the agent without context for selection.

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

search_food_establishmentsB

Search for food establishments and their hygiene ratings.

Args: name: Business name to search for postcode: Postcode to search in local_authority: Local authority ID

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
postcodeNo
local_authorityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states it 'search' (implying read), but does not disclose behavior such as rate limits, pagination, authentication needs, or consequences of missing parameters.

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 brief and front-loaded with the main purpose. The argument list is clear, though the overall structure is minimal and could benefit from more detail without being verbose.

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?

Given the existence of an output schema (per context signals), the description's lack of return value explanation is acceptable. However, it does not clarify how to use the tool effectively (e.g., that at least one parameter should be provided). It is minimally adequate.

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?

The description lists the three parameters with one-line explanations (e.g., 'name: Business name to search for'), which adds minimal meaning beyond the schema. It does not provide format, constraints, or typical usage examples.

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 for food establishments and their hygiene ratings, distinguishing it from sibling tools that search for other entities like courts or hospitals.

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 explicit guidance on when to use this tool versus alternatives, or any prerequisites like requiring at least one parameter. The sibling tools are for different entities, so context is implied but not stated.

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

search_govukC

Search gov.uk content for guidance, policy documents, and other government information.

Args: query: Search query count: Number of results to return (default: 10)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden. It fails to mention any behavioral traits such as rate limits, authentication needs, or read-only status. Minimal disclosure beyond the basic search action.

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 short at two lines plus an Args list, efficient and to the point. Every sentence serves a purpose, but it could be better structured with the purpose front-loaded.

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?

An output schema exists but is not visible; the description should compensate for the low schema coverage (0%). It omits important context like pagination, sorting, rate limits, and supported content types, making it incomplete for a search 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 description coverage is 0%, so the description adds basic meaning: 'query: Search query' and 'count: Number of results to return (default: 10)'. This is helpful but shallow, lacking details like query syntax or valid count range.

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 'Search gov.uk content for guidance, policy documents, and other government information', indicating a specific verb and resource. However, it does not differentiate from sibling tools like search_hansard or search_legislation, which also search government-related content.

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 is provided on when to use this tool versus alternatives. With many sibling search tools, explicit usage context is missing.

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

search_hansardA

Search parliamentary debates in Hansard (2015-present).

Args: query: Search term date_from: Start date (YYYY-MM-DD format, optional) date_to: End date (YYYY-MM-DD format, optional) speaker: Filter by speaker name (optional)

Returns debate transcripts and speeches.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
date_fromNo
date_toNo
speakerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool searches and returns debate transcripts and speeches, implying a read-only operation. However, it does not disclose potential behaviors such as pagination, rate limits, error handling for invalid dates, or authentication requirements.

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: a one-sentence intro, a bulleted Args list, and a one-line Returns. It front-loads the purpose and uses a clean structured format with zero unnecessary 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 tool is simple with 4 parameters, and the description covers all of them with format hints. An output schema exists, so details of return structure are not needed. The description mentions the return type (debate transcripts and speeches) adequately for an agent. Lack of error or edge case descriptions is acceptable for a straightforward search 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 description coverage is 0%, so the description entirely documents the parameters. It clearly explains query as a 'search term', date_from and date_to with 'YYYY-MM-DD format' and optionality, and speaker as 'filter by speaker name (optional)'. This adds meaningful formatting and purpose beyond the raw 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 explicitly states the tool searches parliamentary debates in Hansard from 2015-present, clearly distinguishing it from sibling search tools covering different domains (e.g., search_charities, search_legislation). The verb 'search' and resource 'Hansard' are 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 Guidelines3/5

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

The description lists parameters and their optionality, but does not explicitly state when to use this tool over alternatives like search_questions or get_questions_by_mp. There is no guidance on exclusions (e.g., only 2015-present) 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.

search_legislationA

Search UK legislation by keyword.

Args: query: Search query limit: Number of results (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as pagination, rate limits, authentication needs, or what happens on no results. Only parameter names and defaults are mentioned.

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 three short lines. Every piece of information earns its place, and the purpose is front-loaded. No superfluous 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?

Given that an output schema exists, the description need not cover return values, but it lacks context on features like boolean operators, date filters, jurisdiction, or wildcards. The tool is for UK legislation, yet no advanced search capabilities are hinted at.

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 description coverage, the description adds meaning to both parameters: 'query: Search query' and 'limit: Number of results (default: 20)'. This explains what each parameter does beyond the schema's type-only definitions, though 'Search query' is somewhat vague.

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 'Search UK legislation by keyword', which provides a specific verb-resource pair. It distinguishes the tool from siblings like 'search_companies' or 'search_charities' by explicitly naming 'UK legislation' as the target.

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 searching UK legislation, but does not explicitly state when not to use it or mention alternative tools. No guidance on limitations or prerequisites is given.

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

search_questionsB

Search parliamentary written questions and answers.

Args: query: Search term mp_name: Filter by MP name (optional) department: Filter by government department (optional) limit: Number of results (default: 20)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
mp_nameNo
departmentNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are available, so the description must disclose behavioral traits. It only states the basic operation without mentioning pagination, rate limits, result ordering, or error handling. The read-only nature is implied but not explicit.

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: one sentence for the purpose and four lines for parameter explanations. It front-loads the main action and avoids unnecessary words, making it efficient for an agent to parse.

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?

With an output schema present, the return format is covered. However, the description lacks usage context, behavioral details, and instructions on filtering or combining parameters. Given the tool's moderate complexity (4 parameters, search functionality), the description is adequate but not thorough.

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 0%, so the description adds meaning by explaining each parameter: 'Search term' for query, 'Filter by MP name' for mp_name, 'Filter by government department' for department, and 'Number of results (default: 20)' for limit. However, it does not provide constraints like allowed values or formatting, so it adds minimal depth 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 tool's purpose: 'Search parliamentary written questions and answers.' It uses a specific verb ('search') and resource ('parliamentary written questions and answers'), distinguishing it from sibling tools that search other entities like courts, GP surgeries, or MPs.

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 is provided on when to use this tool versus alternatives such as search_hansard, get_questions_by_mp, or search_divisions. The description does not specify usage context, prerequisites, or exclusions.

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

search_stopsA

Search for bus stops, tube stations, and other transit stops in London.

Args: query: Search term (station name, postcode, etc.) modes: Optional comma-separated transport modes (tube,bus,dlr,overground,elizabeth-line,tram)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
modesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses key behavioral traits: the query accepts station names, postcodes, etc., and modes are comma-separated transport modes (e.g., tube,bus). With no annotations, the description carries the transparency burden and adequately covers the search scope and filter options. However, it does not mention error handling, pagination, or case sensitivity.

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: a single sentence defining the tool's purpose plus two lines for parameter details. Every sentence adds value, with the verb 'Search' front-loaded and 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 only two parameters, a simple required query, and the presence of an output schema (which relieves the description from explaining return values), the description is largely complete. It covers the tool's scope and parameter usage. Minor gaps (e.g., whether modes are case-sensitive) do not severely hinder an agent's ability to use the tool.

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% coverage (no descriptions for properties), but the description fully explains each parameter: 'query' is a search term (station name, postcode) and 'modes' is an optional comma-separated list with explicit examples (tube,bus,dlr,overground,elizabeth-line,tram). This adds significant meaning beyond the raw schema types.

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 for 'bus stops, tube stations, and other transit stops in London,' specifying the resource and location. This verb+resource combination is distinct from all sibling tools, which cover courts, hospitals, companies, etc. No similar stops search exists among siblings.

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 implicitly indicates usage for finding transit stops via query and optional mode filters, but it does not explicitly state when to use this tool versus alternatives like lookup_postcode or nearest_postcodes. No when-not or exclusion criteria are provided, leaving some ambiguity for an AI agent.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 33 tool updatesv0.1.0
    • First observedfind_courts
    • First observedfind_gp_surgeries
    • First observedfind_hospitals
    • First observedfind_mp
    • First observedfind_pharmacies
    • First observedget_bank_holidays
    • First observedget_bike_points
    • First observedget_charity
    • First observedget_company
    • First observedget_company_filing_history
    • First observedget_company_officers
    • First observedget_cqc_provider
    • First observedget_crime_by_postcode
    • First observedget_flood_warnings
    • First observedget_line_status
    • First observedget_questions_by_mp
    • First observedget_road_status
    • First observedget_tube_status
    • First observedget_voting_record
    • First observedlookup_postcode
    • First observednearest_postcodes
    • First observedplan_journey
    • First observedsearch_charities
    • First observedsearch_companies
    • First observedsearch_cqc_providers
    • First observedsearch_divisions
    • First observedsearch_epc_by_postcode
    • First observedsearch_food_establishments
    • First observedsearch_govuk
    • First observedsearch_hansard
    • First observedsearch_legislation
    • First observedsearch_questions
    • First observedsearch_stops

TDQS

B3.4/5.0

Scored across 33 tools

Disambiguation4/5

Most tools have distinct purposes (e.g., find_gp_surgeries vs find_hospitals vs find_pharmacies are all healthcare but different venues). However, some pairs like get_company vs search_companies or get_line_status vs get_tube_status could cause minor confusion, but descriptions clarify the differences.

Naming Consistency4/5

Naming follows a consistent verb_noun pattern with underscores (find_, get_, search_, lookup_, nearest_, plan_). Verbs vary by action type but are used predictably: 'find' for location-based lookups, 'get' for specific entities, 'search' for queries. No mixing of camelCase or other styles.

Tool Count3/5

With 33 tools, the server covers a wide breadth of UK government services (postcodes, health, transport, parliament, etc.). While it's above the typical 15-tool threshold, the scope justifies many tools, but some could potentially be merged (e.g., get_line_status into get_tube_status).

Completeness4/5

The tool set covers many important government areas: location/postcodes, healthcare facilities, company/charity info, parliamentary data, transport, crime, flooding, and more. Minor gaps exist (e.g., no tools for benefits, taxes, or residency), but the coverage for the intended domain is solid.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables access to official UK Office for National Statistics data including demographics, economics, and social statistics through the ONS Beta API. Supports browsing, searching, and querying datasets with built-in shortcuts for popular statistics like inflation, regional GDP, and wellbeing data.
    5
    11 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying UK Office for National Statistics datasets and their editions through natural language, with no authentication required.
    5 npm
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query NHS public health datasets, including prescribing data, dataset exploration, and organisation lookup via the NHSBSA Open Data Portal.
    9
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables natural language queries about UK postcodes and vehicles, including flood risk, crime rate, broadband coverage, property prices, MOT history, and ULEZ compliance.
    4
    40 npm
    MIT