property-data
https://property-shared.fly.dev
Registry code: 54f09fc40591f1d7
UK property data tools. For a comprehensive single-property analysis, invoke the `full_property_analysis` prompt — it instructs you to call property_comps, property_yield, property_epc and rightmove_search and synthesise. For postcode-only data fetches use property_comps and property_yield separately. ppd_transactions for recent transactions at a postcode -- bounded by the stated coverage in each response's `provenance`, never a full property history; an empty result means 'no sales in coverage', not 'never sold'. rightmove_search to browse listings by postcode, rightmove_listing for full…
- endpoint
- https://property-shared.fly.dev/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is property-data live?
- Yes — it answered the hub's last check (checked 4h ago). It answered 100% of checks over the last 30 days.
- Is property-data free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does property-data have?
- 14 tools: rightmove_search, rightmove_listing, rental_analysis, property_blocks, company_search, ppd_transactions, property_comps, property_epc_search, ….
- Is property-data safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.7%· all time 99.7%
last good check
of 14 tools
- degraded → live
- degraded → live
- live → degraded· timeout after 20000ms
- unknown → live
- used for
- get uk comparable property sales
- estimate rental yield for a postcode
- search rightmove listings
- calculate stamp duty
- get epc certificate
- takes → gives
- text → data
- tools
- 14 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
rightmove_search reads unknown never probed
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "radius": { "type": "number", "default": 0.5 }, "sort_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "postcode": { "type": "string" }, "max_pages": { "type": "integer", "default": 3 }, "max_price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null }, "listing_type": { "type": "string", "default": "sale" }, "min_bedrooms": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null }, "property_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null } }, "additionalProperties": false }arguments 68 linesrightmove_listing reads unknown never probed
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.
{ "type": "object", "required": [ "property_id" ], "properties": { "max_images": { "type": "integer", "default": 3 }, "property_id": { "type": "string" }, "include_images": { "type": "boolean", "default": false } }, "additionalProperties": false }arguments 20 linesrental_analysis reads unknown 12h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "radius": { "type": "number", "default": 0.5 }, "postcode": { "type": "string" }, "auto_escalate": { "type": "boolean", "default": true }, "purchase_price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null } }, "additionalProperties": false }arguments 31 linesproperty_blocks reads unknown 4h ago
Property block analysis — identify buildings with multiple flat sales (block-buy opportunities).
{ "type": "object", "required": [ "postcode" ], "properties": { "months": { "type": "integer", "default": 24, "minimum": 1, "description": "Number of calendar months ending today; default 24. Results are limited to available coverage." }, "postcode": { "type": "string" }, "search_level": { "type": "string", "default": "sector" } }, "additionalProperties": false }arguments 22 linescompany_search reads unknown 8h ago
Search Companies House for a company by name.
{ "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" } }, "additionalProperties": false }arguments 12 linesppd_transactions reads unknown 4h ago
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`.
{ "type": "object", "required": [ "postcode" ], "properties": { "limit": { "type": "integer", "default": 10 }, "postcode": { "type": "string" }, "property_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null } }, "additionalProperties": false }arguments 27 linesproperty_comps reads unknown 4h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "limit": { "type": "integer", "default": 50 }, "months": { "type": "integer", "default": 24, "minimum": 1, "description": "Number of calendar months ending today; default 24. Results are limited to available coverage." }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "postcode": { "type": "string" }, "enrich_epc": { "type": "boolean", "default": false }, "search_level": { "type": "string", "default": "sector" }, "property_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "filter_outliers": { "type": "boolean", "default": false }, "transaction_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "A" } }, "additionalProperties": false }arguments 67 linesproperty_epc_search reads unknown 15h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "postcode": { "type": "string" } }, "additionalProperties": false }arguments 12 linesproperty_epc_summaries reads unknown 15h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "page": { "type": "integer", "default": 1 }, "postcode": { "type": "string" } }, "additionalProperties": false }arguments 16 linesplanning_search reads unknown 8h ago
Find the council planning portal URL for a postcode.
{ "type": "object", "required": [ "postcode" ], "properties": { "postcode": { "type": "string" } }, "additionalProperties": false }arguments 12 linesproperty_yield reads unknown 12h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "months": { "type": "integer", "default": 24, "minimum": 1, "description": "Number of calendar months ending today; default 24. Results are limited to available coverage." }, "postcode": { "type": "string", "description": "UK postcode (e.g. \"NG1 2NS\")." }, "search_level": { "type": "string", "default": "sector", "description": "PPD search granularity — \"postcode\", \"sector\" (default),\nor \"district\"." }, "auto_escalate": { "type": "boolean", "default": true, "description": "Compatibility parameter. Does NOT widen the search area on\nthe live source (see `warnings`); previously postcode→\nsector→district. Default True. Set False for strict-locality only." }, "property_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Filter sales by type. None (default) = residential set\n(F+D+S+T). Pass \"F\"/\"D\"/\"S\"/\"T\"/\"O\" for one type, \"ALL\" for firehose." } }, "additionalProperties": false }arguments 41 linesstamp_duty reads unknown 12h ago
UK Stamp Duty Land Tax (SDLT) calculation with full breakdown.
{ "type": "object", "required": [ "price" ], "properties": { "price": { "type": "integer" }, "non_resident": { "type": "boolean", "default": false }, "first_time_buyer": { "type": "boolean", "default": false }, "additional_property": { "type": "boolean", "default": false } }, "additionalProperties": false }arguments 24 linesproperty_epc reads unknown 15h ago
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.
{ "type": "object", "required": [ "postcode" ], "properties": { "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null }, "postcode": { "type": "string" } }, "additionalProperties": false }arguments 23 linesepc_certificate reads unknown 8h ago
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.
{ "type": "object", "required": [ "lmk_key" ], "properties": { "lmk_key": { "type": "string" } }, "additionalProperties": false }arguments 12 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id54f09fc40591f1d7.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/54f09fc40591f1d7/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/54f09fc40591f1d7?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.