← Back to search

UK Property Data

paulieb89 streamable_http Scanned just now

UK property data — Land Registry comps, EPC, Rightmove, rental yields, stamp duty, Companies House

C
69.2 / 100

Versions

1.5.1latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 24

stamp_duty
annotations: none low

Calculate UK Stamp Duty Land Tax for a residential property purchase. Returns SDLT total, effective rate, and band-by-band breakdown.

price string non_resident string first_time_buyer string additional_property string
planning_search
annotations: none low

Find the planning portal URL for a UK postcode. Returns council info and portal search URLs. Does not scrape planning applications -- use the returned URLs to search directly.

postcode string
company_search
annotations: none low

Search Companies House by company name. Returns a list of matches. For a direct lookup by company number, use the company://{company_number} resource instead (e.g. read_resource("company://00445790")).

query string
epc_lookup
annotations: none low

Energy Performance Certificate data for a UK property or postcode area. With address: returns the matched 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.

address string postcode string
epc_search
annotations: none low

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 — they exist only on a full certificate. Workflow when a Rightmove listing has no house number: 1. epc_search(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 (within ±5 sqm). 4. If several candidates remain equally plausible, present them all — do not guess. Choosing 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 rather than 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.

page string postcode string
epc_certificate
annotations: none low

Fetch a single EPC certificate by its GOV.UK certificate number. Use after epc_search has identified the correct cert — this is faster than epc_lookup(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 returned by the summary search. 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.

lmk_key string
rightmove_search
annotations: none low

Search Rightmove property listings by postcode. Builds a search URL, fetches the first page of results, and returns listing summaries with a median price.

radius string postcode string max_price string min_bedrooms string building_type string property_type string
property_blocks
annotations: none low

Identify buildings with multiple flat sales — block-buy opportunities. Groups Land Registry transactions by building (PAON/street) and returns blocks where at least min_transactions units sold in the lookback window. Useful for spotting investor exits, new-build releases, or portfolio bulk transfers.

limit string months string postcode string search_level string min_transactions string
ppd_transactions
annotations: none low

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

limit string postcode string property_type string
get_yield
annotations: none low

Analyse gross rental yield for a UK postcode. Returns median sale price, median monthly rent, gross yield percentage, yield assessment label, and data quality classification.

months string radius string postcode string search_level string property_type string
yield_dashboard
annotations: none low

Show rental yield analysis as an interactive dashboard. Combines Land Registry sale prices with Rightmove rental listings to calculate gross yield, with assessment and data quality indicators.

months string radius string postcode string search_level string property_type string
get_rental
annotations: none low

Analyse rental market for a UK postcode. Returns listing count, median/average rent, rent range, and optional gross yield if purchase_price is provided.

radius string postcode string auto_escalate string building_type string purchase_price string
rental_dashboard
annotations: none low

Show rental market analysis as an interactive dashboard. Displays rental listing stats, rent range, market depth, and optional gross yield if a purchase price is provided.

radius string postcode string purchase_price string
listings_dashboard
annotations: none low

Show Rightmove property listings as a visual dashboard with images. Searches Rightmove for sale or rent listings and displays them as cards with property photos, prices, and key details.

radius string postcode string max_price string min_bedrooms string building_type string property_type string
search_comps
annotations: none low

Search comparable property sales for a UK postcode. Returns transaction count, median/percentile stats, and individual transactions within the lookback period. Defaults are residential-only: standard sales (category A) of flats, detached, semi, and terraced properties. Use property_type='ALL' and transaction_category=None for the unfiltered Land Registry firehose.

limit string months string address string postcode string search_level string property_type string filter_outliers string transaction_category string
comps_dashboard
annotations: none low

Show comparable property sales as an interactive dashboard. Fetches Land Registry transactions and displays stats, price distribution chart, and transaction list with property type badges.

months string postcode string search_level string property_type string
property_dashboard
annotations: none low

Show a unified property dashboard combining sales, yield, and rental data. Fetches Land Registry transactions, Rightmove rental listings, and calculates gross yield — all in one view with interactive controls.

months string radius string postcode string search_level string property_type string
property_comps
annotations: none low

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.

limit int months MonthsParam address string postcode str enrich_epc bool search_level str property_type string filter_outliers bool transaction_category string
property_yield
annotations: none low

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. Args: postcode: UK postcode (e.g. "NG1 2NS"). months: PPD sale lookback period (default 24). search_level: PPD search granularity — "postcode", "sector" (default), or "district". property_type: Filter sales by type. None (default) = residential set (F+D+S+T). Pass "F"/"D"/"S"/"T"/"O" for one type, "ALL" for firehose. auto_escalate: Compatibility parameter. Does NOT widen the search area on the live source (see `warnings`); previously postcode→ sector→district. Default True. Set False for strict-locality only. Returns: median_sale_price, median_monthly_rent, gross_yield_pct, sale_count, rental_count, thin_market. Yield fields are null when sample is too thin or rental data is unavailable.

months MonthsParam postcode str search_level str auto_escalate bool property_type string
rental_analysis
annotations: none low

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.

radius float postcode str auto_escalate bool purchase_price string
property_epc
annotations: none low

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.

address string postcode str
property_epc_search
annotations: none low

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.

postcode str
property_epc_summaries
annotations: none low

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.

page int postcode str
rightmove_listing
annotations: none low

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.

max_images int property_id str include_images bool

Permissions 4

network medium
Server uses network capabilities via: http, httpx, requests, socket, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib, shutil, tempfile
shell high
Server uses shell capabilities via: subprocess
env_vars low
Server uses env_vars capabilities via: os.environ, os.getenv()

Scan Findings 64

low
Tool 'search_comps' has no annotations annotation_checker · 100%
low
Tool 'stamp_duty' has no annotations annotation_checker · 100%
low
Tool 'planning_search' has no annotations annotation_checker · 100%
low
Tool 'company_search' has no annotations annotation_checker · 100%
low
Tool 'epc_lookup' has no annotations annotation_checker · 100%
low
Tool 'epc_search' has no annotations annotation_checker · 100%
low
Tool 'epc_certificate' has no annotations annotation_checker · 100%
low
Tool 'rightmove_search' has no annotations annotation_checker · 100%
low
Tool 'property_blocks' has no annotations annotation_checker · 100%
low
Tool 'ppd_transactions' has no annotations annotation_checker · 100%
low
Tool 'get_yield' has no annotations annotation_checker · 100%
low
Tool 'yield_dashboard' has no annotations annotation_checker · 100%
low
Tool 'get_rental' has no annotations annotation_checker · 100%
low
Tool 'rental_dashboard' has no annotations annotation_checker · 100%
low
Tool 'listings_dashboard' has no annotations annotation_checker · 100%
low
Tool 'comps_dashboard' has no annotations annotation_checker · 100%
low
Tool 'property_dashboard' has no annotations annotation_checker · 100%
low
Tool 'property_comps' has no annotations annotation_checker · 100%
low
Tool 'property_yield' has no annotations annotation_checker · 100%
low
Tool 'rental_analysis' has no annotations annotation_checker · 100%
low
Tool 'property_epc' has no annotations annotation_checker · 100%
low
Tool 'property_epc_search' has no annotations annotation_checker · 100%
low
Tool 'property_epc_summaries' has no annotations annotation_checker · 100%
low
Tool 'rightmove_listing' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: pydantic-settings@2.12.0 (GHSA-4xgf-cpjx-pc3j) dependency_analyzer · 95%
medium
Vulnerable dependency: requests@2.32.5 (GHSA-gc5v-m9x4-r6x2) dependency_analyzer · 95%
medium
Vulnerable dependency: requests@2.32.5 (PYSEC-2026-2275) dependency_analyzer · 95%
high
Long hex escape sequence in paulieb89-property-shared-e9cc1cc/property_core/url_safety.py:22 entropy_analyzer · 85%
high
Long hex escape sequence in paulieb89-property-shared-e9cc1cc/property_core/url_safety.py:23 entropy_analyzer · 85%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: stamp_duty manifest_parser · 90%
info
Tool: planning_search manifest_parser · 90%
info
Tool: company_search manifest_parser · 90%
info
Tool: epc_lookup manifest_parser · 90%
info
Tool: epc_search manifest_parser · 90%
info
Tool: epc_certificate manifest_parser · 90%
info
Tool: rightmove_search manifest_parser · 90%
info
Tool: property_blocks manifest_parser · 90%
info
Tool: ppd_transactions manifest_parser · 90%
info
Tool: get_yield manifest_parser · 90%
info
Tool: yield_dashboard manifest_parser · 90%
info
Tool: get_rental manifest_parser · 90%
info
Tool: rental_dashboard manifest_parser · 90%
info
Tool: listings_dashboard manifest_parser · 90%
info
Tool: search_comps manifest_parser · 90%
info
Tool: comps_dashboard manifest_parser · 90%
info
Tool: property_dashboard manifest_parser · 90%
info
Tool: property_comps manifest_parser · 90%
info
Required env vars (28) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
info
Tool: property_yield manifest_parser · 90%
info
Tool: rental_analysis manifest_parser · 90%
info
Tool: property_epc manifest_parser · 90%
info
Tool: property_epc_search manifest_parser · 90%
info
Tool: property_epc_summaries manifest_parser · 90%
info
Tool: rightmove_listing manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%