UK Property Data
by paulieb89 · remote · local (pypi) · no sign-in to list tools · v1.5.1 · published by GitHub user paulieb89
UK property data — Land Registry comps, EPC, Rightmove, rental yields, stamp duty, Companies House
14 tools: 8 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things8Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http property-shared https://property-shared.fly.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Changes things 8Claude Code: ask
ppd_transactionsLand Registry Price Paid transactions for a postcode, most recent first.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Land Registry Price Paid transactions for a postcode, most recent first. Returns up to `limit` most recent transactions **within snapshot coverage** (`coverage_from`-`coverage_to` in the response's `provenance`). Unfiltered by default -- category-B bulk transfers and commercial sales are included. Pass `property_type` (F=flat, D=detached, S=semi, T=terraced, O=other) to restrict the result to a single type. **Not a complete property history.** Check `provenance.older_records_exist` and `provenance.sample_complete` before saying anything about what a property has or has not sold for. An empty result means "no sales within the stated coverage" -- never "never sold". For clean residential comparable sales, use `property_comps`.
Annotations the server declares
- readOnlyHint: true
property_blocksProperty block analysis — identify buildings with multiple flat sales (block-buy opportunities).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Property block analysis — identify buildings with multiple flat sales (block-buy opportunities).
Annotations the server declares
- readOnlyHint: true
property_compsComparable sales from Land Registry Price Paid Data.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Comparable sales from Land Registry Price Paid Data. Defaults return the standard residential set: - property_type=None means residential (F+D+S+T). Pass "F"/"D"/"S"/"T"/"O" for a single type, or "ALL" to disable type filtering (firehose). - transaction_category defaults to "A" (standard sales). Pass None to include category-B (bulk transfers, non-standard conveyances). - filter_outliers=False by default; set True for IQR-trimmed stats AND transaction list (1.5*IQR rule, needs >=4 prices). limit caps returned transactions (max 200). enrich_epc attaches EPC floor area and price-per-sqft to each transaction — slower but richer.
Annotations the server declares
- readOnlyHint: true
property_epcEnergy Performance Certificate data for a UK property or postcode area.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Energy Performance Certificate data for a UK property or postcode area. With address: returns the matched EPC certificate for that specific property. Without address: returns the record count and, when the bounded response contains every matching summary, the rating distribution. Property-type breakdown and floor-area statistics are NOT available — the EPC service exposes them only on individual certificates. Returns null only when no certificates are lodged for the postcode. A null result means no such certificate is lodged. If the EPC service cannot be reached the tool raises an error instead — never treat an error as evidence that a property has no certificate.
Annotations the server declares
- readOnlyHint: true
property_yieldGross rental yield for a UK postcode.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Gross rental yield for a UK postcode. Combines Land Registry sale comps (median sale price) with Rightmove rental listings (median monthly rent) to produce a gross yield percentage.
Annotations the server declares
- readOnlyHint: true
rental_analysisRental market analysis and achievable rent estimate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rental market analysis and achievable rent estimate. auto_escalate widens the Rightmove search RADIUS when fewer than 5 listings are found (thin market). This is rental-radius escalation and is unaffected by the PPD geography containment: it does not change a postcode's outcode or sector, so it carries none of the limit-dependence that disabled PPD auto-widening. Response includes thin_market, escalated_from, escalated_to fields when escalation occurs.
Annotations the server declares
- readOnlyHint: true
rightmove_listingFull detail for a single Rightmove listing.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Full detail for a single Rightmove listing. property_id is the numeric Rightmove property ID (the digits at the end of a rightmove.co.uk/properties/... URL), max 12 digits. Full URLs are not accepted. include_images fetches and embeds photos and floorplans as MCP image content. max_images caps the number of property photos (default 3); floorplans always included.
Annotations the server declares
- readOnlyHint: true
stamp_dutyUK Stamp Duty Land Tax (SDLT) calculation with full breakdown.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it UK Stamp Duty Land Tax (SDLT) calculation with full breakdown.
Annotations the server declares
- readOnlyHint: true
Only reads 6Claude Code: allow
company_searchSearch Companies House for a company by name.No findings
Why it is in this group
- The name "company_search" says "search": a word for reading.
Description, as the server wrote it Search Companies House for a company by name.
Annotations the server declares
- readOnlyHint: true
epc_certificateFetch a single EPC certificate by its GOV.UK certificate number.No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a single EPC certificate by its GOV.UK certificate number. Use after property_epc_summaries has listed the candidates and you have picked one — this is faster than property_epc(postcode, address) as it makes a direct lookup with no address matching or postcode re-fetch. The parameter is named lmk_key as a compatibility alias; pass the certificate number, which is returned in every property_epc_summaries row. (property_epc_search is deprecated and raises — do not call it.) Returns the full EPC certificate, or null only when no such certificate is lodged. A null result means no such certificate is lodged. If the EPC service cannot be reached the tool raises an error instead — never treat an error as evidence that a property has no certificate.
Annotations the server declares
- readOnlyHint: true
planning_searchFind the council planning portal URL for a postcode.No findings
Why it is in this group
- The name "planning_search" says "search": a word for reading.
Description, as the server wrote it Find the council planning portal URL for a postcode.
Annotations the server declares
- readOnlyHint: true
property_epc_searchDEPRECATED — use property_epc_summaries then epc_certificate.No findings
Why it is in this group
- The name "property_epc_search" says "search": a word for reading.
Description, as the server wrote it DEPRECATED — use property_epc_summaries then epc_certificate. This tool returned score, floor_area, property_type, habitable_rooms and inspection_date for every certificate at a postcode. The EPC service no longer exposes those fields in a search: they exist only on a full certificate. Reproducing the old response would require one upstream request per certificate, so this tool is unsupported rather than silently degraded or silently expensive.
Annotations the server declares
- readOnlyHint: true
property_epc_summariesList EPC certificate summaries at a postcode — for candidate selection.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List EPC certificate summaries at a postcode — for candidate selection. Returns one bounded page. Each entry contains only what the EPC search exposes: certificate_number, address, uprn (often absent), energy band, registration_date and schema_type. Energy score, floor area and property type are NOT available here — fetch a specific certificate for those. Workflow when a Rightmove listing has no house number: 1. property_epc_summaries(postcode) to list candidates. 2. Narrow by address text and, where present, uprn. 3. epc_certificate(lmk_key=<certificate_number>) for the chosen one, then cross-check its floor_area against the listing. 4. If several candidates remain equally plausible, present them all — do not guess. Selecting arbitrarily attaches another property's data. `complete` is false when the postcode holds more records than this page returns. Upstream page traversal is not snapshot-stable, so a multi-page result is a bounded sample, not a guaranteed-complete set. An empty `results` list means no certificates are lodged. If the EPC service cannot be reached the tool raises an error instead — never treat an error as evidence that a property has no certificate.
Annotations the server declares
- readOnlyHint: true
rightmove_searchFetch Rightmove listings for a postcode.No findings
Why it is in this group
- The name "rightmove_search" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.5.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http property-shared https://property-shared.fly.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__property-shared__property_epc_search",
"mcp__property-shared__property_epc_summaries",
"mcp__property-shared__epc_certificate",
"mcp__property-shared__rightmove_search",
"mcp__property-shared__company_search",
"mcp__property-shared__planning_search"
],
"ask": [
"mcp__property-shared__property_comps",
"mcp__property-shared__property_yield",
"mcp__property-shared__rental_analysis",
"mcp__property-shared__property_epc",
"mcp__property-shared__stamp_duty",
"mcp__property-shared__rightmove_listing",
"mcp__property-shared__property_blocks",
"mcp__property-shared__ppd_transactions"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as property-shared. Review it before you use it.
