Skip to main content
Glama

rightmove_search

Read-only

Fetch Rightmove listings for a postcode.

listing_type: "sale" or "rent". sort_by: "newest", "most_reduced", "price_asc", "price_desc". Images are excluded from results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
radiusNo
sort_byNo
postcodeYes
max_pagesNo
max_priceNo
listing_typeNosale
min_bedroomsNo
property_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • removedInput schema / properties / keywords
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
  2. Changed1 schema field changed
    • addedInput schema / properties / keywords
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  3. Changed9 schema fields changed
    • addedInput schema / properties / listing_type
      Added value: +{
      +  "default": "sale",
      +  "type": "string"
      +}
    • addedInput schema / properties / max_price
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / min_bedrooms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / postcode
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / property_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / radius
      Added value: +{
      +  "default": 0.5,
      +  "type": "number"
      +}
    • addedInput schema / properties / sort_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedInput schema / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "url"
      -]New value: +[
      +  "postcode"
      +]
  4. Changed17 schema fields changed
    • removedInput schema / properties / building_type
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Filter by building type: F=flat, D=detached, S=semi, T=terraced (default all)"
      -}
    • removedInput schema / properties / max_bedrooms
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Maximum bedrooms filter"
      -}
    • changedInput schema / properties / max_pages / default
      Previous value: -1New value: +3
    • removedInput schema / properties / max_pages / description
      Removed value: -"Max pages to fetch (default 1, ~25 listings per page)"
    • removedInput schema / properties / max_price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Maximum price/rent filter in £"
      -}
    • removedInput schema / properties / min_bedrooms
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Minimum bedrooms filter"
      -}
    • removedInput schema / properties / min_price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Minimum price/rent filter in £"
      -}
    • removedInput schema / properties / postcode
      Removed value: -{
      -  "description": "UK postcode (e.g. \"NG1 1AA\", \"SW1A 2AA\")",
      -  "type": "string"
      -}
    • removedInput schema / properties / property_type
      Removed value: -{
      -  "default": "sale",
      -  "description": "\"sale\" or \"rent\" (default \"sale\")",
      -  "type": "string"
      -}
    • removedInput schema / properties / radius
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Search radius in miles (default varies by area)"
      -}
    • removedInput schema / properties / sort_by
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Sort order: \"newest\", \"oldest\", \"price_low\", \"price_high\", \"most_reduced\" (default: Rightmove default)"
      -}
    • addedInput schema / properties / url
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "postcode"
      -]New value: +[
      +  "url"
      +]
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / properties
      Added value: +{
      +  "result": {
      +    "items": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "result"
      +]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  5. Changed10 schema fields changed
    • changedInput schema / properties / building_type / description
      Previous value: -"Building type filter: F=flat, D=detached, S=semi, T=terraced"New value: +"Filter by building type: F=flat, D=detached, S=semi, T=terraced (default all)"
    • addedInput schema / properties / max_bedrooms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum bedrooms filter"
      +}
    • addedInput schema / properties / max_pages
      Added value: +{
      +  "default": 1,
      +  "description": "Max pages to fetch (default 1, ~25 listings per page)",
      +  "type": "integer"
      +}
    • changedInput schema / properties / max_price / description
      Previous value: -"Maximum price filter"New value: +"Maximum price/rent filter in £"
    • changedInput schema / properties / min_bedrooms / description
      Previous value: -"Minimum number of bedrooms"New value: +"Minimum bedrooms filter"
    • addedInput schema / properties / min_price
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Minimum price/rent filter in £"
      +}
    • changedInput schema / properties / postcode / description
      Previous value: -"UK postcode to search around"New value: +"UK postcode (e.g. \"NG1 1AA\", \"SW1A 2AA\")"
    • changedInput schema / properties / property_type / description
      Previous value: -"'sale' or 'rent'"New value: +"\"sale\" or \"rent\" (default \"sale\")"
    • changedInput schema / properties / radius / description
      Previous value: -"Search radius in miles"New value: +"Search radius in miles (default varies by area)"
    • addedInput schema / properties / sort_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Sort order: \"newest\", \"oldest\", \"price_low\", \"price_high\", \"most_reduced\" (default: Rightmove default)"
      +}
  6. Changed11 schema fields changed
    • changedInput schema / properties / building_type / description
      Previous value: -"Filter by building type: F=flat, D=detached, S=semi, T=terraced (default all)"New value: +"Building type filter: F=flat, D=detached, S=semi, T=terraced"
    • removedInput schema / properties / max_bedrooms
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Maximum bedrooms filter"
      -}
    • removedInput schema / properties / max_pages
      Removed value: -{
      -  "default": 1,
      -  "description": "Max pages to fetch (default 1, ~25 listings per page)",
      -  "type": "integer"
      -}
    • changedInput schema / properties / max_price / description
      Previous value: -"Maximum price/rent filter in £"New value: +"Maximum price filter"
    • changedInput schema / properties / min_bedrooms / description
      Previous value: -"Minimum bedrooms filter"New value: +"Minimum number of bedrooms"
    • removedInput schema / properties / min_price
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Minimum price/rent filter in £"
      -}
    • changedInput schema / properties / postcode / description
      Previous value: -"UK postcode (e.g. \"NG1 1AA\", \"SW1A 2AA\")"New value: +"UK postcode to search around"
    • changedInput schema / properties / property_type / description
      Previous value: -"\"sale\" or \"rent\" (default \"sale\")"New value: +"'sale' or 'rent'"
    • changedInput schema / properties / radius / description
      Previous value: -"Search radius in miles (default varies by area)"New value: +"Search radius in miles"
    • removedInput schema / properties / sort_by
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Sort order: \"newest\", \"oldest\", \"price_low\", \"price_high\", \"most_reduced\" (default: Rightmove default)"
      -}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  7. Changed10 schema fields changed
    • addedInput schema / properties / building_type / description
      Added value: +"Filter by building type: F=flat, D=detached, S=semi, T=terraced (default all)"
    • addedInput schema / properties / max_bedrooms / description
      Added value: +"Maximum bedrooms filter"
    • addedInput schema / properties / max_pages / description
      Added value: +"Max pages to fetch (default 1, ~25 listings per page)"
    • addedInput schema / properties / max_price / description
      Added value: +"Maximum price/rent filter in £"
    • addedInput schema / properties / min_bedrooms / description
      Added value: +"Minimum bedrooms filter"
    • addedInput schema / properties / min_price / description
      Added value: +"Minimum price/rent filter in £"
    • addedInput schema / properties / postcode / description
      Added value: +"UK postcode (e.g. \"NG1 1AA\", \"SW1A 2AA\")"
    • addedInput schema / properties / property_type / description
      Added value: +"\"sale\" or \"rent\" (default \"sale\")"
    • addedInput schema / properties / radius / description
      Added value: +"Search radius in miles (default varies by area)"
    • addedInput schema / properties / sort_by / description
      Added value: +"Sort order: \"newest\", \"oldest\", \"price_low\", \"price_high\", \"most_reduced\" (default: Rightmove default)"
  8. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safe-read characteristic is covered. The description adds useful behavioral context beyond annotations, notably that images are excluded from results and the supported values for listing_type and sort_by. This goes beyond what the read-only annotation conveys.

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 compact and front-loaded, with a clear main sentence, then two concise clarifications about param values and image exclusion. No redundant wording or filler; every segment contributes a distinct fact.

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?

An output schema exists, so return-shape details are not required. However, with 8 parameters and sibling tools, the description omits important operational details such as pagination behavior, radius units, and how this tool differs from rightmove_listing. It suffices for basic calls but not for full contextual coverage.

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 schema has 8 parameters with 0% description coverage, so the description must carry the explanatory burden. It only clarifies listing_type and sort_by; radius, max_pages, max_price, min_bedrooms, and property_type are left to their names and defaults. This leaves meaningful gaps in parameter understanding.

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 verb 'Fetch' and the resource 'Rightmove listings' scoped to a postcode. It does not explicitly name sibling rightmove_listing as the alternative for individual property details, but the plural 'listings' and postcode focus make the search purpose reasonably distinct.

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: provide a postcode and optionally set listing_type or sort_by. It provides no explicit when-not guidance or mention of alternatives, although the sibling list suggests rightmove_listing may serve a complementary role for single-property lookups.

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.

TDQS

A3.9/5.0
Disambiguation4/5

EPC coverage is split across property_epc, property_epc_summaries, epc_certificate, and the deprecated property_epc_search, but each has a distinct role (aggregate lookup, candidate list, direct certificate, legacy). Land Registry data is similarly split between ppd_transactions and property_comps with clear output differences; no two tools are truly interchangeable.

Naming Consistency3/5

Names are readable and consistently lowercase snake_case, but they mix resource nouns (epc_certificate, stamp_duty), prefixed nouns (property_epc_summaries, rightmove_listing), and noun-verb forms (company_search, planning_search). The 'search' suffix is used for different actions, and there is no uniform verb_noun pattern across the set.

Tool Count4/5

14 tools is within the appropriate range for a multi-source property data API. The count is slightly padded by the deprecated property_epc_search and the narrowly scoped planning_search/company_search, but most tools cover distinct data products.

Completeness4/5

The set covers the core property workflows: Rightmove listing discovery/detail, EPC search/detail, Land Registry transactions/comps, yield/rent analysis, stamp duty, and planning portal lookup. Minor gaps exist (no planning application details, no property-level title/ownership lookup), but agents can complete common research tasks without dead ends.