Skip to main content
Glama

Search UK property listings

search_properties
Read-onlyIdempotent

Search live OpenMoov listings for sale or rent across the UK. Input: optional location (town, postcode or area, e.g. "Ashford" or "TN23") and radius_miles, transaction_type (sale|rent, default sale), price range in GBP, bedroom range, property_types (e.g. ["flat","terraced","detached"]), must-have features (garden, parking, garage, newBuild, chainFree, petFriendly), keywords (street or development name), sort (newest, distance, price_asc, price_desc), page (12 results per page). Residential only unless include_commercial is true. Rent prices are per calendar month. Returns total match count, paging info, and for each property: id, address, price (with priceQualifier such as "Guide Price" or "Offers Over" when set), saleMethod, bedrooms, bathrooms, type, newBuild, marketStatus, listedBy (estate_agent or private_owner), a photo imageUrl (render it when your client supports images) and its openmoov.co.uk URL, plus statusAsOf (when the statuses were read, live). If the location cannot be placed, a note says so. Results cover on-market stock only: For Sale / To Let, plus agreed-but-not-completed listings (Sold STC / Under Offer / Let Agreed) which are flagged bookable:false — viewings cannot be booked on those. Use get_property_details with a returned id for the full listing.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_properties"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNo"newest" (default without a location), "distance" (default with one), "price_asc" or "price_desc"
featuresNoMust-have features: garden, parking, garage, newBuild, chainFree, petFriendly. Matched against the listing's own feature list and description.
keywordsNoWords that must all appear in the listing's indexed address/reference text, e.g. a street, development or building name ("Hornbeam Close"). Not for features — use features.
locationNoTown, area or UK postcode to search around, e.g. "Hythe" or "TN24"
max_priceNoMaximum price in GBP (rent: per month)
min_priceNoMinimum price in GBP (rent: per month)
max_bedroomsNo
min_bedroomsNo
radius_milesNoSearch radius in miles around the location (default about 10; max 40)
property_typesNoProperty types to include, e.g. ["flat","terraced","semi-detached","detached","bungalow"]
transaction_typeNo"sale" for homes to buy, "rent" for homes to letsale
include_commercialNoDefault false: commercial, leisure and holiday property types (offices, shops, pubs, hotels, caravans, lodges, park homes) are excluded. Set true only when the user asks for them.

Output Schema

NameRequiredDescriptionDefault
noteNo
pageNo
totalNo
propertiesNo
statusAsOfNoISO time the listing statuses were read from the live record
totalPagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover read-only/idempotent/open-world; the description goes well beyond them by disclosing stock coverage (For Sale/To Let plus agreed-but-not-completed), the bookable:false flag for those statuses, per-calendar-month rent pricing, priceQualifier semantics, statusAsOf freshness, a renderable imageUrl, and a geocoding-failure note. This is exactly the behavioral context annotations cannot express.

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?

Dense but front-loaded: purpose first, then input summary, then return shape, then the critical booking caveat and next-step tool. Every clause carries information an agent needs; nothing is filler despite the length.

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 13-parameter, zero-required search tool, the definition covers inputs, sorting defaults, pagination, commercial exclusion, result shape, freshness, and failure handling. An output schema exists, yet the description's return summary remains useful rather than redundant.

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 77% schema coverage, the description still adds value: 12 results per page (page size is absent from the schema), rent prices are per month, must-have features versus keywords distinction, and location accepting town/postcode/area. Some listed options (sort values, feature enums) merely restate schema content, keeping it below a 5.

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?

Opens with a specific verb and resource: "Search live OpenMoov listings for sale or rent across the UK." It also names the follow-up tool (get_property_details) for full listing data, so an agent can distinguish it from detail-fetch and auction/other vertical searches without opening the schema.

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?

Gives clear operating context: residential-only unless include_commercial is true, results are on-market stock including Sold STC/Under Offer/Let Agreed (which cannot be booked), and get_property_details should be used with a returned id for the full listing. It does not explicitly exclude other vertical searches (auction lots, stays), but the guidance for correct use is solid.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources