Skip to main content
Glama

Homedata MCP Server

A Model Context Protocol server that exposes the Homedata UK property data API as native tools for AI coding assistants - Claude Desktop, Claude Code, Cursor, and any other MCP client.

29M UK addresses keyed by UPRN, with EPCs, sale history, planning, flood risk, council tax, demographics, crime, schools, broadband and transport - all queryable directly from your assistant chat.

Data is sourced from Home.co.uk's 30-year panel of partners, the Environment Agency, ONS Census 2021, the Valuation Office Agency, Ofcom, Ofsted, data.police.uk and HM Land Registry.


Install

Requires Python 3.10+.

pip install homedata-mcp

For local development from this repository:

git clone https://github.com/wehomemove/homedata-mcp.git
cd homedata-mcp
pip install -e .

You will need a Homedata API key. Sign up at homedata.co.uk/developer - the Free tier gives 100 calls / month with no card required.

export HOMEDATA_API_KEY=hd_live_xxx
homedata-mcp --help

Related MCP server: Property Price Search MCP Server

CLI

The package also installs a homedata command — same data as the MCP server but for human shells, scripting, and CI. Useful for quick lookups, demos, and piping into other tools.

homedata property 100021421083
homedata epc 100021421083 --field current_energy_efficiency
homedata search "10 downing street" --postcode SW1A2AA
homedata flood 100021421083 --compact
homedata batch 100021421083 100022121211

Pass --field <dotted.path> to extract a single value (handy for shell pipelines) and --compact for single-line JSON. Reads the same HOMEDATA_API_KEY env var as the MCP server. Run homedata --help for the full list of subcommands.


Wire it into Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "homedata": {
      "command": "homedata-mcp",
      "env": {
        "HOMEDATA_API_KEY": "your_api_key_here"
      }
    }
  }
}

Restart Claude Desktop. You should see the 16 Homedata tools appear in the tool picker.

Cursor / Claude Code

Both Cursor and Claude Code accept the same MCP server spec. Add an entry pointing command at homedata-mcp and put your key in env.


Tools

All UPRN tools take a single 12-digit Unique Property Reference Number; all postcode tools accept any common UK postcode format.

Property tiers — pick a depth

One UPRN in, fixed cost out. Choose the cheapest tier that covers what you need; discover_property is the 1-call menu that tells you which slugs are populated before you commit.

Tool

Endpoint

Cost

What it returns

discover_property

GET /property/{uprn}/

1 call

The menu — which slugs exist for this UPRN + tier shortcuts

lookup_property_address

GET /property/{uprn}/address

5 calls

Address + identifiers only

lookup_property_base

GET /property/{uprn}/base

10 calls

Address + rooms + EPC + last sold + construction + dimensions + garden + parking + LR title basics

lookup_property_core

GET /property/{uprn}/core

25 calls

Recommended. Base + council tax + flood + schools + broadband + crime + demographics + amenities + planning summary + valuations + solar + lr_sales

lookup_property_complete

GET /property/{uprn}/complete

50 calls

Core + council tax full (£ charges) + comparables + live listings + full risks + deprivation + planning history + price trends

Single-purpose lookups

Tool

Endpoint

Inputs

lookup_property

GET /properties/{uprn}/

uprn — legacy single-call detail; prefer the tier tools above

lookup_epc

GET /epc-checker/{uprn}/

uprn

lookup_flood_risk

GET /flood-risk/?uprn=

uprn

lookup_council_tax_band

GET /council_tax_band/{uprn}/

uprn — band + authority, 3 calls

lookup_council_tax

GET /council_tax/{uprn}/

uprn — band + authority + yearly/monthly £, 5 calls

search_property_listings

GET /property_listings/?uprn=

uprn

get_comparables

GET /comparables/{uprn}/?count=

uprn, count (default 20, max 200)

get_planning_applications

GET /planning/search/?uprn=

uprn

get_demographics

GET /demographics/?postcode=

postcode

get_crime

GET /crime/?postcode=

postcode, date (YYYY-MM, optional)

get_schools

GET /schools/?uprn=&radius_m=

uprn, radius_m (default 1000)

get_broadband

GET /broadband/?postcode=

postcode

get_transport

GET /transport/?uprn=&radius_m=

uprn, radius_m (default 800)

get_postcode_profile

GET /postcode-profile/?postcode=

postcode

search_address

GET /address/find/?q=

query, postcode (optional)

get_property_sales

GET /property_sales/?uprn=

uprn

batch_property_lookup

POST /property/batch/

uprns (list, max 50)

Typical workflow

  1. Resolve text → UPRN with search_address.

  2. (Optional) discover_property to see what's available for the UPRN.

  3. Pick a tier: lookup_property_core is the recommended starting point — one call gets you address, energy, statutory, area context and valuations in a single response. Step down to _base if you only need the basics; step up to _complete if you want comparables and full risks too.

  4. For narrow follow-ups use the single-purpose tools (lookup_council_tax, lookup_flood_risk, get_planning_applications, etc.).

  5. Add area context: get_postcode_profile (cheap one-shot), or call get_demographics / get_crime / get_schools / get_broadband / get_transport individually.


Configuration

Variable

Required

Default

Notes

HOMEDATA_API_KEY

yes

-

Your Homedata API key (Authorization: Api-Key ...).

HOMEDATA_BASE_URL

no

https://api.homedata.co.uk

Override for staging or self-hosted.

Every tool returns either the parsed JSON body from the API, or {"error": "...", "status_code": N, "detail": ...} on failure - tools never raise exceptions out into the MCP protocol layer.


Pricing

Calls made via this MCP server count against your Homedata API plan exactly the same as any other API call. Plans (as of writing):

Plan

Price

Calls / month

Free

£0

100

Starter

£49

2,000

Growth

£149

10,000

Pro

£349

50,000

Scale

£699

250,000

See homedata.co.uk/pricing for the current list.


Development

pip install -e ".[dev]"
HOMEDATA_API_KEY=hd_live_xxx pytest -v

Tests are skipped automatically when no API key is present, so the suite is safe to run in CI without secrets.

Project layout

homedata-mcp/
  pyproject.toml
  README.md
  homedata_mcp/
    __init__.py
    server.py           # FastMCP server + CLI entry point
    client.py           # httpx wrapper with auth + uniform error handling
    tools/
      __init__.py
      property.py       # lookup_property, batch_property_lookup
      epc.py            # lookup_epc
      risk.py           # lookup_flood_risk, lookup_council_tax
      listings.py       # search_property_listings, get_property_sales, get_comparables
      planning.py       # get_planning_applications
      local.py          # get_demographics, get_crime, get_schools, get_broadband, get_transport
      address.py        # search_address
      profile.py        # get_postcode_profile
  tests/
    test_tools.py

License

MIT - see LICENSE.

Available Tools

18 tools
batch_property_lookupA

Look up multiple properties in a single round-trip (max 50 UPRNs).

Use this in preference to looping lookup_property when you have more than 2-3 UPRNs - it is significantly cheaper in API credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnsYesList of UPRNs (each a 12-digit string). Capped at 50.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/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 mentions efficiency and batch behavior, but does not disclose error handling, limit enforcement, or read-only status. Partially transparent.

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

Conciseness5/5

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

Two sentences with no waste. First sentence front-loads purpose, second provides usage guidance. Ideal conciseness.

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

Completeness5/5

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

Given the presence of an output schema (not shown), the description adequately covers purpose, usage, and constraints. No missing context for effective use.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter description (list of UPRNs, capped at 50). The description repeats the cap but adds no new meaning beyond the schema. Baseline score.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Look up multiple properties in a single round-trip (max 50 UPRNs).' It specifies verb, resource, and constraints, distinguishing it from 'lookup_property'.

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

Usage Guidelines5/5

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

Explicit guidance: 'Use this in preference to looping lookup_property when you have more than 2-3 UPRNs - it is significantly cheaper in API credits.' This tells when to use and when not to, with a clear reason.

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

check_homedata_api_keyA

Check whether the user's HOMEDATA_API_KEY is set + working.

Use this:

  • before recommending Homedata data tools, to know if they're available

  • after the user runs start_homedata_signup, to confirm they've completed verification + set the env var (after MCP server restart)

  • if a data tool returned an unauthorised / quota error, to diagnose

Returns a structured status the AI agent can reason about. NO API key material is returned — only a 6-character prefix for diagnostic purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses behavior: returns a structured status, no API key material is returned except a 6-character prefix for diagnostics. This transparency is sufficient for the tool's simple nature.

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

Conciseness5/5

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

The description is concise with a clear bullet-like structure, front-loading the action and then listing use cases. Every sentence adds value without fluff.

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

Completeness5/5

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

For a zero-parameter diagnostic tool with an output schema, the description covers the purpose, usage scenarios, and return value characteristics comprehensively. No gaps remain.

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 tool has zero parameters, so the input schema provides full coverage. The description adds value by explaining the purpose and output, which is more than adequate for a parameterless tool.

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 that the tool checks whether the HOMEDATA_API_KEY is set and working. It uses a specific verb ('check') and resource ('API key'), and differentiates itself from sibling data tools by being a diagnostic/prerequisite check.

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

Usage Guidelines5/5

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

The description provides explicit use cases: before recommending Homedata tools, after signup to confirm, and for error diagnosis. This clearly guides when to use this tool versus alternatives like starting signup or using data tools.

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

get_broadbandA

Return Ofcom broadband availability and speeds for a postcode.

Includes max download / upload speeds, technology (FTTP, FTTC, etc.) and superfast / ultrafast / gigabit availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode.

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 are provided, so the description carries the full burden. It describes a read-like operation with no side effects, but does not mention potential limitations such as rate limits, data freshness, or authentication requirements. It is adequate but not rich.

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

Conciseness5/5

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

The description is two sentences: the first states the main purpose, the second elaborates on included data. It is front-loaded, concise, and every sentence adds value with no redundancy.

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

Completeness4/5

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

Given the tool has an output schema, the description covers the key output aspects (speeds, technology, availability). For a simple one-parameter lookup tool, it provides sufficient context for an agent to understand the tool's capability, though it could mention input validation (e.g., valid UK postcode format).

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

Parameters3/5

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

Schema coverage is 100% for the single 'postcode' parameter, so the baseline is 3. The description adds context about the returned data but does not add parameter-specific semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states it returns Ofcom broadband availability and speeds for a postcode, explicitly listing key data like download/upload speeds, technology, and availability categories. This distinguishes it from sibling tools that deal with property, crime, or demographics.

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 broadband data for a postcode is needed, but provides no explicit when-not-to-use guidance or alternatives. Given the sibling tools are in different domains, the context is clear, but no additional usage constraints are mentioned.

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

get_comparablesA

Find comparable recently-sold properties near a subject property.

Useful for valuation work - returns nearest sales with price, date and property characteristics for triangulating a market value. The endpoint uses geographic proximity (PostGIS spatial query) rather than a fixed radius, and returns the count closest properties with either a sold date or a first-listing date in the past year.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number (the subject property).
countNoNumber of comparables to return (default 20, max 200).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses use of PostGIS spatial query, a date filter (sold or first-listing in past year), and count limits, which are valuable behavioral traits. It does not explicitly state read-only behavior, but the nature of the tool implies it.

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

Conciseness5/5

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

The description is three sentences: first states the purpose, second explains the use case, third provides technical implementation details. It is front-loaded with the essential action and concise 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 tool has only 2 parameters, an output schema, and no annotations, the description covers the core functionality, methodology, and key constraints. It lacks mention of error handling or authentication, but for a query tool, it is sufficiently 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?

The input schema already describes the parameters well (100% coverage). The description adds value by explaining that 'count' refers to the number of closest properties and that results include properties with a sold date or first-listing date within the past year, beyond what schema provides.

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 'Find comparable recently-sold properties near a subject property' with a specific verb and resource, and the context of valuation work. However, it does not explicitly differentiate from the sibling tool 'get_property_sales', which might serve a similar purpose, so it misses a direct distinction.

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 provides context for when to use the tool ('Useful for valuation work') but does not include explicit when-not-to-use instructions or mention alternatives among siblings. The guidance is implied but not comprehensive.

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

get_crimeB

Return data.police.uk crime counts and categories for a postcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode.
dateNoOptional reporting month in ``YYYY-MM`` format. Defaults to the latest available month.

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 exist, so the description must disclose behavioral traits. It only states it returns data, but omits critical details like read-only nature, rate limits, data freshness, or error handling for an external API.

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 a single sentence that is efficient and front-loaded with the primary action. However, it is somewhat terse, missing details that could be included without sacrificing 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?

While the tool is simple with only two parameters, the description lacks context about the output (crime categories, time range) and the external source's behavior. The presence of an output schema mitigates this slightly, but more details would help.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented. The description adds no additional meaning beyond the schema; it does not explain the output format or any parameter interdependencies.

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 returns crime counts and categories from data.police.uk for a given postcode, with a specific verb and resource. It is distinct from sibling tools, which are all property-related.

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. There is no mention of prerequisites, constraints, or related tools, leaving the agent without usage context.

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

get_demographicsA

Return ONS Census 2021 demographic profile for a postcode.

Includes population, age bands, household composition, ethnicity, tenure, occupation and qualifications - all keyed to the postcode's output area.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode (any common format, e.g. "SW1A 1AA" or "sw1a1aa").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The description transparently lists the demographic categories returned, giving a clear picture of the output. It notes the data is from the 2021 Census and keyed to the output area. However, it does not mention potential limitations like data staleness or rate limits.

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

Conciseness5/5

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

The description is two sentences: first states the action and target, second lists contents. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Given an output schema exists (implied), the description provides sufficient context on what data is returned. It explains the data is aggregated to the output area, which is useful. Could mention that the data is specific to 2021 UK Census, but overall complete for a specialized lookup tool.

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

Parameters3/5

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

The schema already describes the single parameter (postcode) with format details. The description adds no additional parameter context beyond what is in the schema, so it meets the baseline for full schema coverage.

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

Purpose5/5

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

The description clearly states the tool returns an ONS Census 2021 demographic profile for a postcode, listing specific categories (population, age bands, etc.). This distinguishes it from sibling tools like get_crime or get_broadband, which return different data types.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The purpose is implied, but there are no comparisons or exclusions regarding alternatives like get_postcode_profile.

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

get_planning_applicationsA

Search planning applications associated with (or near) a UPRN.

Returns reference, decision, decision date, application type and a description summary. Aggregated from local authority planning portals.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

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 provided. Description only mentions aggregation from local authority portals, but lacks details on rate limits, authentication, or side effects. The burden is high, and coverage 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.

Conciseness5/5

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

Two concise sentences: first states purpose, second lists output fields and data source. No wasted words, front-loaded with key action.

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

Completeness4/5

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

With an output schema present, the description sufficiently covers return fields and data source. Single parameter is simple. Minor gap: no mention of result limits or pagination.

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

Parameters3/5

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

Schema coverage is 100% and defines UPRN well. Description adds nuance of 'or near' which enhances clarity slightly. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool searches planning applications by UPRN, specifying it returns key fields and is aggregated. No sibling tool covers planning applications, so it is well-distinguished.

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

Usage Guidelines3/5

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

The description implies usage (search by UPRN) but does not explicitly state when to use or alternatives. No context on exclusions or prerequisites.

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

get_postcode_profileA

Return a one-shot rollup for a postcode.

Bundles headline demographics, crime rate, broadband, average sale price and school count for quick area appraisals - cheaper than calling each tool individually.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode.

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 provided, so description carries full burden. It describes the output as a rollup but does not mention error handling (invalid postcode), cost implications beyond 'cheaper', 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.

Conciseness5/5

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

Two sentences with no fluff. First sentence states purpose, second provides detail and benefit. Everything earns its place.

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?

With output schema present, description is adequate. Lists all major data categories included. Could mention geographic scope (postcode area) but not necessary.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'postcode', described as 'UK postcode.' The description adds no additional semantics beyond the schema.

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

Purpose5/5

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

The description uses a specific verb 'Return' and resource 'rollup for a postcode', listing bundled data types (demographics, crime, etc.). It clearly distinguishes from sibling tools by emphasizing the bundling aspect.

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

Usage Guidelines4/5

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

Explicitly states it is 'cheaper than calling each tool individually', guiding when to use the rollup. However, does not explicitly state when not to use it (e.g., if deep detail is needed).

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

get_property_salesA

Return the full HM Land Registry sale history for a property.

Each event includes sale date, price, transaction type (full / additional / standard) and category (residential / commercial).

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

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 are provided, so the description carries full burden. It discloses the data returned but lacks behavioral traits such as read-only nature, authentication needs, rate limits, or error handling. The description is adequate but not fully transparent.

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

Conciseness5/5

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

Two sentences with no waste. The first sentence states the purpose, and the second lists the fields. Front-loaded and efficient.

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 simplicity (1 param) and presence of an output schema, the description covers purpose and returned fields. Could additionally mention error cases or usage notes, but it is largely complete for a straightforward tool.

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

Parameters3/5

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

Schema coverage is 100% with the uprn parameter described as 'Unique Property Reference Number'. The description adds that the sale history is for a property linked to uprn but does not add significant semantic value beyond the schema's 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 tool returns sale history for a property, listing specific fields (sale date, price, transaction type, category). It uses a specific verb ('Return') and resource ('full HM Land Registry sale history'), distinguishing it from siblings that return current property details or comparables.

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 obtaining sale history but does not explicitly state when to use this tool versus alternatives like 'lookup_property' or 'get_comparables'. No exclusions 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.

get_schoolsB

Find schools within a radius of a property, with Ofsted ratings.

Returns name, phase (primary/secondary/special), age range, distance, Ofsted grade and last inspection date.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number (the centre point).
radius_mNoSearch radius in metres. Defaults to 1000.

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 the description must fully disclose behavior. It only describes the operation as a read (find schools) and does not mention idempotency, permissions, rate limits, or other important behavioral aspects.

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 sentences and a list of return fields, all relevant. No fluff, but slightly more detail could be added without harming conciseness.

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

Completeness4/5

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

Given the presence of an output schema (not shown but indicated), the description provides a good overview. However, it lacks edge-case details like empty results or grade ranges.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal value beyond the schema. It restates the search radius concept but does not provide additional meaning for either parameter.

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 finds schools within a radius with Ofsted ratings, listing specific output fields. The name 'get_schools' aligns perfectly, and it is distinct from sibling tools like lookup_property or search_address.

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 vs alternatives. The description only explains what it does, without mentioning when not to use it or suggesting other tools for different needs.

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

get_transportB

Find transport nodes (rail, tube, bus stops) near a property.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.
radius_mNoSearch radius in metres. Defaults to 800 (roughly a 10-minute walk).

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 alone must convey behavioral traits. It only states the basic action without details on data freshness, limitations, output format, or whether the search includes coordinates. This is insufficient for full 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 a single, front-loaded sentence that is concise and to the point. However, it could benefit from a bit 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 tool's low complexity (2 parameters, output schema exists), the description provides the core purpose. However, it lacks behavioral context and does not explain the return value, making it only minimally complete.

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

Parameters3/5

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

Schema coverage is 100%; the description adds no additional meaning beyond what the input schema already provides for 'uprn' and 'radius_m'. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool finds transport nodes (rail, tube, bus stops) near a property. It uses a specific verb 'Find' and resource 'transport nodes', and distinguishes from sibling tools like get_crime or get_schools by focusing on transit.

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 transport information near a property is needed, but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, which is adequate given the distinct purpose relative to siblings.

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

lookup_council_taxA

Get the VOA council tax band (A-H) and billing authority for a UPRN.

NOTE: Council tax lookup is in development and not yet production-ready. This tool returns a clear "coming soon" response without hitting the API so callers do not consume credits on an unavailable endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses that the tool does not perform an actual API call but returns a fixed 'coming soon' response, and explains the reason (avoiding credit consumption on an unavailable endpoint). This is transparent about the tool's current behavior.

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 consists of two short sentences: the first clearly states the purpose, and the second explains the current non-functional behavior. Every sentence adds value with no redundancy.

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

Completeness5/5

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

For a simple tool with one parameter and no real functionality, the description is complete. It explains what the tool does, its current state, and the behavior. An output schema exists, so return values do not need further explanation.

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 single parameter 'uprn' is described in the schema as 'Unique Property Reference Number' with 100% coverage. The description does not add additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.

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 'VOA council tax band (A-H) and billing authority for a UPRN'. It explicitly mentions the output (band and authority) and the required input (UPRN). This distinguishes it from sibling tools like 'lookup_epc' or 'lookup_property'.

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 notes that the tool is 'in development and not yet production-ready' and returns a 'coming soon' response without hitting the API, informing agents that it is safe to call but does not provide real data. However, it does not explicitly mention when to use it versus alternatives or provide exclusions.

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

lookup_epcA

Fetch the latest EPC (Energy Performance Certificate) for a UPRN.

Returns current/potential efficiency rating (A-G), CO2 emissions, floor area, primary heating, glazing, walls, roof, insulation, and the assessment date. Returns {"error": ...} if no EPC exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

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 are provided, so the description must disclose behavior. It mentions the error case for missing EPC, but lacks details on rate limits, data freshness, 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?

Two sentences with no extraneous information. Purpose is front-loaded, and details are compact.

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

Completeness5/5

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

With an output schema present and a simple one-parameter input, the description covers purpose, parameter, and error handling. No missing critical context.

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

Parameters3/5

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

The single parameter 'uprn' is described in the schema as 'Unique Property Reference Number.' The description adds no additional meaning beyond the schema, and coverage is 100%.

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 specifies the tool fetches the latest EPC for a UPRN, listing key returned fields. This differentiates it from sibling tools like lookup_council_tax or lookup_flood_risk.

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 mention prerequisites, exclusions, or comparison with other property lookup tools.

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

lookup_flood_riskA

Get Environment Agency flood risk classification for a property.

Returns risk bands for rivers/sea and surface water (Very Low, Low, Medium, High), plus distance to nearest watercourse where available.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Describes output content (risk bands and distance) but lacks disclosures about rate limits, authentication, or error handling. Without annotations, a simple read tool gets a baseline 3.

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

Conciseness5/5

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

Two sentences with no redundancy. First sentence states purpose, second details output. Front-loaded and efficient.

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?

With an output schema present and a single parameter, the description covers the main output elements. Lacks mention of error states, but sufficient for a simple lookup tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the tool description does not add meaning beyond the existing schema description for 'uprn'. Baseline of 3 applies.

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

Purpose5/5

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

Clearly states the verb 'Get', the resource 'flood risk classification', and the source 'Environment Agency'. Distinguishes from sibling tools, none of which address flood risk.

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, no prerequisites, and no conditions for when not to use.

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

lookup_propertyA

Look up the canonical Homedata property record for a single UPRN.

Returns address, geometry, council, tenure, build characteristics and cross-reference identifiers (LR title, USRN, postcode). Use this as the entry point when you need ground-truth metadata for a property.

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number (12-digit string).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It clearly indicates a read-only lookup operation returning multiple data categories. No mention of side effects or authorization, but for a simple property lookup, this is adequate and 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?

Two concise sentences with front-loaded purpose. Every sentence adds value: first states action, second lists returns and usage guidance. No fluff.

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

Completeness5/5

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

With an output schema present, the description doesn't need to detail return structure. It lists all major return categories. The tool has one required param, and the description is complete. Siblings are many, but the description clearly positions this as the primary entry point.

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?

Single parameter uprn with schema description 'Unique Property Reference Number (12-digit string)'. Description adds context: it's a single UPRN, and the tool returns the canonical record. This enhances the parameter's meaning beyond the schema.

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

Purpose5/5

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

Description explicitly states action ('Look up the canonical Homedata property record for a single UPRN') and lists return fields (address, geometry, council, etc.). Positions itself as the entry point, distinguishing it from sibling tools like batch_property_lookup and search_address.

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?

Includes explicit guidance: 'Use this as the entry point when you need ground-truth metadata for a property.' This tells the agent when to use it. While it doesn't list exclusions or alternatives, the context is clear enough to differentiate from siblings.

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

search_addressA

Free-text address search across the full 29M-record UK address base.

Returns candidate addresses with their UPRN - use the UPRN with the other lookup_* / get_* tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesFree-text fragment, e.g. "10 Downing Street" or "Flat 4a Mill House".
postcodeNoOptional postcode to constrain the search.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/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 discloses the large database size and that it returns candidates with UPRN. However, it lacks details on rate limits, pagination, or any potential side effects, leaving gaps for a search 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?

Two sentences, front-loaded with action and scope, no wasted words. 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 has only two parameters and an output schema likely covering return values, the description adequately explains purpose and next steps. It covers the main use case but could mention result limitations like pagination.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description confirms the free-text nature and suggests postcode constrains search, but adds no new parameter meaning beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states it performs a free-text address search across a 29M-record database and returns candidates with UPRN. It implicitly distinguishes from sibling lookup/get tools by suggesting the UPRN is used with those, but does not explicitly name a sibling for differentiation.

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 indicates the tool is for finding addresses and obtaining UPRNs for subsequent lookups, providing clear context. However, it does not explicitly state when not to use it (e.g., if you already have a UPRN) or mention alternatives.

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

search_property_listingsA

Find live and historic sales/lettings listings linked to a UPRN.

Returns asking price, status (is_live), agent details, listing date, and marketing description. Sourced from Home.co.uk's panel of portal partners (30+ years of data).

ParametersJSON Schema
NameRequiredDescriptionDefault
uprnYesUnique Property Reference Number.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description provides key behavioral context: it returns historical and current data from a specific source, includes a marker for live status, and lists the output fields. It does not mention error handling, rate limits, or authorization, but for a read-only search tool, the disclosure is sufficient.

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

Conciseness5/5

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

The description is two sentences with no extraneous information. It front-loads the action ('Find live and historic sales/lettings listings') and efficiently lists the return fields and source. Every sentence serves a purpose.

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, output schema present), the description covers purpose, input, output, and data source. It lacks explicit usage guidance and differentiation from siblings, but overall it is nearly complete for an agent to understand and invoke the tool.

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

Parameters3/5

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

The only parameter, 'uprn', is described in the schema as 'Unique Property Reference Number.' The description does not add additional semantic context beyond what the schema provides. Since schema coverage is 100%, a score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: finding live and historic sales/lettings listings linked to a UPRN. It specifies the returned fields (asking price, status, agent details, etc.) and the data source (Home.co.uk's panel of portal partners with 30+ years of data). This distinguishes it from sibling tools like 'get_property_sales' or 'lookup_property' which may focus on specific aspects.

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 suggests use when you need both sales and lettings listings for a UPRN, but it does not explicitly state when to use this tool versus alternatives like 'get_property_sales' or 'get_comparables'. No exclusions or prerequisites are mentioned.

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

start_homedata_signupA

Begin a Homedata signup so the user can get an API key for UK property data.

Homedata is the UK property data API: 29M UK addresses with UPRNs, EPC, sale history, planning, flood risk, council tax, demographics, crime, schools, broadband, and transport. Free tier is 100 calls per month with no credit card required.

This tool returns the signup URL and the exact steps the user needs to take. After signing up + verifying their email, they copy their API key from the dashboard and set HOMEDATA_API_KEY in their environment — at which point all 16 data tools become available.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoOptional. If provided, included in the response so the user knows which inbox to check for verification.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Since no annotations are provided, the description carries full burden. It discloses the tool returns a signup URL and steps, and that it does not have destructive effects. It is transparent about the signup process and prerequisites, though it could mention that the tool itself does not modify any data.

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 well-structured with three concise paragraphs: purpose, background, and next steps. It is front-loaded with the core action. Minor reduction possible, but overall efficient and clear.

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

Completeness5/5

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

Given the tool's low complexity (one optional parameter, no required parameters, and an output schema not shown but described), the description covers all necessary aspects: purpose, context, output, and post-usage steps. It is fully complete for an agent to use correctly.

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

Parameters4/5

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

The schema already covers 100% of parameters with a description for 'email' (optional). The tool description adds value by explaining that if provided, it helps the user know which inbox to check for verification, which enriches the schema's default 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 tool 'Begin a Homedata signup' and explains it helps the user get an API key for UK property data. This is distinct from the sibling tools which are data lookups, so purpose is unambiguous and differentiated.

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 when to use the tool (to start signing up for a Homedata API key) and provides next steps (email verification, setting environment variable). However, it does not explicitly state when not to use it, though the sibling context makes that clear.

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. 18 tool updatesv0.3.0
    • First observedbatch_property_lookup
    • First observedcheck_homedata_api_key
    • First observedget_broadband
    • First observedget_comparables
    • First observedget_crime
    • First observedget_demographics
    • First observedget_planning_applications
    • First observedget_postcode_profile
    • First observedget_property_sales
    • First observedget_schools
    • First observedget_transport
    • First observedlookup_council_tax
    • First observedlookup_epc
    • First observedlookup_flood_risk
    • First observedlookup_property
    • First observedsearch_address
    • First observedsearch_property_listings
    • First observedstart_homedata_signup

TDQS

A4/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource or action (e.g., demographics, crime, broadband, sales, planning, EPC, flood risk). The only potential overlap is get_postcode_profile bundling multiple data sources, but its purpose is clearly a convenience rollup, not a substitute for individual queries.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., lookup_council_tax, get_broadband, search_address). The use of 'get_' for broad data and 'lookup_' for property-specific records is a subtle but consistent distinction. No mixing of conventions.

Tool Count4/5

With 18 tools, the set is slightly above the ideal 3-15 range but still reasonable for the breadth of UK property data covered. Each tool serves a specific purpose, and none appear redundant.

Completeness5/5

The tool surface covers the full lifecycle of property data queries: address search, property details, sales, listings, planning, EPC, flood risk, council tax (noted as in development), demographics, crime, broadband, schools, transport, and API management. No obvious gaps for the stated domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables access to UK property listings, price estimates, agent information, and market data through the Zoopla API for searching properties for sale or rent with detailed filters and analytics.
    22
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables users to search UK property prices by postcode, street, or city using the HM Land Registry's SPARQL endpoint. It also provides tools for resolving postcodes and finding nearby locations through Ordnance Survey data.
    2
    2
    MIT
  • -
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time London area intelligence including postcode data, crime, schools, transport, and investment metrics, enabling AI assistants to answer property-related queries.
    -
  • 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