Skip to content

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

Changes · 8

14 tools: 8 change things and 6 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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
  • 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
  • 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

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.