MCP server for UK property data
Give Claude, ChatGPT or Cursor four tools over 15.79M UK sold property price records — searched in plain English, with every past sale placed against the market it sold into. Free, and no account needed to start.
{
"mcpServers": {
"rielty": {
"url": "https://rielty.co.uk/mcp/v1"
}
}
}
That is the whole setup. The protocol endpoint is POST /mcp/v1; this page is
/mcp
— deliberately different paths, because Streamable HTTP uses both GET
and POST on its own endpoint.
A worked example
You ask your assistant: "What's the story of 14 Beech Road in
Harrogate — has it kept up with the market?"
It calls property_details
and gets back sale history that already carries its own context: the
change since the previous sale, the Bank of England base rate in
force at the time, and how far each sale ran ahead of or behind the
local market.
{
"address": "14 Beech Road",
"bedrooms": 3,
"listing_type": "sold",
"postcode": "HG2 8QN",
"property_type": "semi_detached",
"sale_history": [
{
"base_rate": 4.75,
"pct_change": null,
"price": 191000,
"price_position": null,
"sold_at": "2004-09-10",
"vs_market": null
},
{
"base_rate": 0.5,
"pct_change": 61.78010471204188,
"price": 309000,
"price_position": {
"band": "above",
"basis": "3-bed semi-detached within 1 km",
"deviation_pct": 9,
"n": 34,
"window_months": 12
},
"sold_at": "2016-02-26",
"vs_market": 11
},
{
"base_rate": 5.0,
"pct_change": 34.3042071197411,
"price": 415000,
"price_position": {
"band": "in_line",
"basis": "3-bed semi-detached within 1 km",
"deviation_pct": -3,
"n": 41,
"window_months": 12
},
"sold_at": "2023-06-16",
"vs_market": -6
}
],
"town": "Harrogate"
}
So the assistant can say: it sold for £415,000 in June 2023, up 34.3% on its 2016 sale — but 6 points behind what the wider local market did over the same years, and into a 5% base rate rather than the 0.5% of the previous sale. That framing is the point of the tool. A raw price list cannot produce it.
The four tools
search_properties
"3 bed house with a garden near Otley under £400k, under an
hour from Leeds"
— the full requirement as one string. Returns up to 25 results;
there is no paging, so the corpus cannot be bulk exported.
count
is the size of that page and returned
how many rows are actually below it — neither is a count of the
market, and note
carries the tool's own warning when the results are sold records.
{
"count": 2,
"note": "Every result here is a SOLD record — a past transaction, not a home currently for sale. Do not present these as available listings.",
"relaxations": [],
"results": [
{
"bedrooms": 3,
"id": 8412907,
"listing_type": "sold",
"price": 372500,
"property_type": "semi_detached",
"sale_count": 3,
"town": "Otley",
"url": "https://rielty.co.uk/property/22-mill-lane-otley-8412907"
},
{
"bedrooms": 3,
"id": 8402115,
"listing_type": "sold",
"price": 344000,
"property_type": "terraced",
"sale_count": 2,
"town": "Otley",
"url": "https://rielty.co.uk/property/7-kirk-view-otley-8402115"
}
],
"returned": 2,
"unmatched": []
}
property_details
"Tell me everything about result 3" — facts, price position, commute times, nearby schools, comparable sales, and the market-relative sale history shown above.
area_report
"Are Harrogate prices going up or down?" — average price, year-on-year change, the price history over time, a matrix by bedroom count, and a breakdown by property type.
{
"avg_price_12mo": 398450,
"county": "North Yorkshire",
"prev_avg_12mo": 389100,
"price_matrix": {
"beds": [
{
"bucket": "3",
"n": 604,
"p25": 288000,
"p50": 341000,
"p75": 402500,
"types": {
"semi_detached": {
"n": 291,
"p50": 332000
}
}
}
]
},
"sales_12mo": 1842,
"town": "Harrogate",
"url": "https://rielty.co.uk/sold-prices/harrogate",
"yoy_pct": 2.4
}
estimate_value
"What's a 3 bed semi in Harrogate worth?" — a town-level statistical estimate from sold prices, never address-level, and null with a stated reason where there are too few sales to be meaningful.
{
"based_on_sales": 291,
"basis": "A statistical estimate from sold prices in this area over the last 12 months — what other homes of that size sold for. It is not an appraisal or a survey, nobody has seen the property, and what any individual home is worth depends on its condition and what has been done to it.",
"bedrooms": 3,
"estimate": 332000,
"property_type": "semi_detached",
"range_high": 402500,
"range_low": 288000,
"reason": null,
"sales_12mo": 1842,
"town": "Harrogate",
"url": "https://rielty.co.uk/house-valuation/harrogate"
}
What the data actually is
This is sold price history, not a listings portal.
The corpus is about 15.79M HM Land Registry sold price records
for England and Wales. A handful of live listings exist, fed to us
directly by agencies, and that is all — so
search_properties
answers "what has sold around here, and for what", not "what can I
buy today". Every result carries a listing_type; check it before
describing a property as available.
| Source | What it gives | Refresh |
|---|---|---|
| HM Land Registry Price Paid | Sold prices and dates — the spine of the corpus | Monthly |
| EPC register | Energy rating, floor area, construction age | Quarterly |
| VOA | Council tax bands | Periodic |
| ONS | Postcode geography, boundaries, area statistics | Periodic |
| Ordnance Survey | Addresses, UPRNs and coordinates | Periodic |
Land Registry data covers England and Wales. Scotland and Northern Ireland keep their own registers and are not included.
Install
Claude Code
claude mcp add --transport http rielty https://rielty.co.uk/mcp/v1
Claude Desktop
Settings → Developer → Edit Config, then add rielty to
claude_desktop_config.json
and restart:
{
"mcpServers": {
"rielty": {
"url": "https://rielty.co.uk/mcp/v1"
}
}
}
Cursor
The same block in ~/.cursor/mcp.json
(or .cursor/mcp.json
for one project).
ChatGPT
In a Developer mode connector, add
https://rielty.co.uk/mcp/v1
as an MCP server with no authentication. Availability of custom
connectors depends on your ChatGPT plan.
Any MCP client that speaks Streamable HTTP works — there is nothing to install locally and no stdio wrapper needed.
Limits and keys
Anonymous callers are limited per IP address; a
RIELTY_API_KEY
moves you onto a per-key bucket with higher ceilings. There is an
endpoint-wide limit, plus its own bucket for the two most expensive
tools.
| Bucket | Anonymous | With a key |
|---|---|---|
| All requests | 60 / minute, 5,000 / day | 300 / minute, 50,000 / day |
| search_properties | 20 / minute, 500 / day | 100 / minute, 10,000 / day |
| property_details | 30 / minute, 1,000 / day | 150 / minute, 20,000 / day |
| area_report | Endpoint limit only | |
| estimate_value | Endpoint limit only | |
Getting a key: keys are free, and there is no self-serve signup — one of us mints yours by hand. Email hello@rielty.co.uk with what you are building and roughly what volume you expect, and we will send a key back. Pass it as a bearer token:
Authorization: Bearer RIELTY_API_KEY
FAQ
Is the rielty MCP server free?
Yes. It is free to use and needs no account. Anonymous callers are rate limited rather than charged, and a free RIELTY_API_KEY raises those limits. As of September 2026 we know of no other free UK property MCP server: PropertyData's API starts on a paid monthly plan, Searchland needs a subscription, and HouseCanary is US-only and sold on a contract.
Do I need an API key?
No. Every tool works anonymously. A RIELTY_API_KEY only raises your rate limits. There is no self-serve signup for one: keys are minted by hand by us, so email hello@rielty.co.uk saying what you are building and we will issue one.
What data does it cover?
About 15.79M HM Land Registry sold price records for England and Wales, joined to EPC certificates, VOA council tax bands, ONS geography and Ordnance Survey addresses and coordinates. Sold prices are refreshed monthly, as HM Land Registry publishes them.
How is this different from a property API?
An API returns rows and leaves the joining to you. These four tools answer questions: search takes a plain-English requirement, and property_details returns each past sale already placed in context — the change since the previous sale, the Bank of England base rate in force at the time, and how far it ran ahead of or behind the local market.
Does it include homes for sale?
Essentially no. The corpus is sold price history. A handful of live listings exist from agencies feeding us directly, but you should not treat this as a portal — check each result's listing_type before describing a property as available.
Is my search data stored?
Yes, and here is exactly what: the tool name, the arguments (truncated to 500 characters), the result count, how long it took, and a salted one-way hash of your IP address. We never store the raw IP. Arguments are free text, so avoid putting anything personal in a query.