protogrid

Search / io.github.paulieb89/property-shared

UK Property Data

R0· no sign-in

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

v1.5.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality76good
Trust86of 100
Uptime, 30 days100%
Latency p50254 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "property-shared": {
      "type": "http",
      "url": "https://property-shared.fly.dev/mcp"
    }
  }
}
claude mcp add --transport http property-shared https://property-shared.fly.dev/mcp
[mcp_servers.property-shared]
url = "https://property-shared.fly.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "property-shared": {
      "type": "remote",
      "url": "https://property-shared.fly.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "property-shared": {
      "type": "http",
      "url": "https://property-shared.fly.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=property-shared&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcHJvcGVydHktc2hhcmVkLmZseS5kZXYvbWNwIn0%3D"
}
{
  "servers": {
    "property-shared": {
      "type": "http",
      "url": "https://property-shared.fly.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "property-shared": {
      "httpUrl": "https://property-shared.fly.dev/mcp"
    }
  }
}
extensions:
  "property-shared":
    enabled: true
    name: "property-shared"
    type: streamable_http
    uri: "https://property-shared.fly.dev/mcp"
    timeout: 300

Quality 76 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations14 of 14 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: property_epc_summaries (destructiveHint, idempotentHint, openWorldHint); epc_certificate (destructiveHint, idempotentHint, openWorldHint); property_blocks (destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,680 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes28 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies75 · weight 15
  • warn
    deps.known_vulns2 advisories of lower severity or without a published fix: GHSA-4xgf-cpjx-pc3j in [email protected] (direct, fixed in 2.14.2), GHSA-gc5v-m9x4-r6x2 in [email protected] (direct, fixed in 2.33.0)
  • n/a
    deps.mcp_sdk_versionthe official MCP SDK is not in the dependency graph
  • pass
    deps.resolvable[email protected] resolved: 22 packages

14 tools, about 2,680 tokens to load them all · tool set fc27e24f2e2b · tools last changed 2026-10-05 · checked 2026-10-19 10:20 UTC

Tool changes

  • ppd_transactionsadded

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

  • planning_searchadded

    Find the council planning portal URL for a postcode.

  • company_searchadded

    Search Companies House for a company by name.

  • property_blocksadded

    Property block analysis — identify buildings with multiple flat sales (block-buy opportunities).

  • rightmove_listingadded

    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.

  • rightmove_searchadded

    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.

  • stamp_dutyadded

    UK Stamp Duty Land Tax (SDLT) calculation with full breakdown.

  • epc_certificateadded

    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.

  • property_epc_summariesadded

    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.

  • property_epc_searchadded

    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.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 86 / 100

provenance90
liveness100
freshness45
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% -stale-182d

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] PyPI21 dependencies, resolved · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-4xgf-cpjx-pc3jpydantic-settings: NestedSecretsSettingsSource follows symlinks outside secrets_dir, enabling local file read and bypassing secrets_dir_max_sizemoderate[email protected]directfixed in 2.14.2
GHSA-gc5v-m9x4-r6x2Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility functionmoderate[email protected]directfixed in 2.33.0

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://property-shared.fly.dev/mcp streamable-httpnoneyes100%254 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
property-sharedpypi1.5.1uvx

Tools (14)

company_searchread-onlySearch Companies House for a company by name.
epc_certificateread-onlyFetch 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.
planning_searchread-onlyFind the council planning portal URL for a postcode.
ppd_transactionsread-onlyLand 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`.
property_blocksread-onlyProperty block analysis — identify buildings with multiple flat sales (block-buy opportunities).
property_compsread-onlyComparable 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.
property_epcread-onlyEnergy 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.
property_epc_searchread-onlyDEPRECATED — 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.
property_epc_summariesread-onlyList 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.
property_yieldread-onlyGross 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.
rental_analysisread-onlyRental 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.
rightmove_listingread-onlyFull 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.
rightmove_searchread-onlyFetch Rightmove listings for a postcode. listing_type: "sale" or "rent". sort_by: "newest", "most_reduced", "price_asc", "price_desc". Images are excluded from results.
stamp_dutyread-onlyUK Stamp Duty Land Tax (SDLT) calculation with full breakdown.

Schemas: list_tools.

Similar MCP servers

More from io.github.paulieb89

Official server.json
{
  "name": "io.github.paulieb89/property-shared",
  "title": "UK Property Data",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://property-shared.fly.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.5.1",
  "packages": [
    {
      "version": "1.5.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "property-shared",
      "runtimeHint": "uvx",
      "registryType": "pypi"
    }
  ],
  "repository": {
    "url": "https://github.com/paulieb89/property-shared",
    "source": "github"
  },
  "websiteUrl": "https://bouch.dev/products/property-report",
  "description": "UK property data — Land Registry comps, EPC, Rightmove, rental yields, stamp duty, Companies House"
}