Skip to main content
Glama
asturksever

agentic-house-search

by asturksever

Agentic House Search

Enter a UK postcode, get what government open data actually says about that neighbourhood. Demographics, crime, deprivation, prices, fibre, 5G, noise, transport, amenities, schools and planning constraints, assembled live from the publishers' own APIs.

Three ways in, all free and open:

Postcode report

The website. Type a postcode, read the answer.

MCP server

Paste one URL into Claude, ChatGPT or any MCP client and your agent can do the same. Connect an agent →

Dataset registry

The 45 open datasets underneath, with endpoints, licences and coverage.

Why this exists

UK property intelligence sites (CrystalRoof, PropertyData and others) are largely assembled from public data. This project maps out that raw material, the Open Government Licence datasets and free APIs underneath, and then shows what you can build with it: a working report, and an agent-ready interface to the same thing.

Two rules it holds itself to, which is most of the point:

  1. It never invents a comparison. Every band word ("above the UK average") comes from a threshold table and always sits next to the figure it describes.

  2. It never pretends to cover ground it does not. A Scottish postcode is told that data.police.uk excludes Scotland, with a link to Police Scotland, rather than being shown a zero. Deprivation is computed against each nation's own index and denominator.

Related MCP server: homedata-mcp

Contents

File

Description

data/registry.json

Canonical machine-readable registry

data/registry.csv

Flat table for spreadsheets (generated)

index.html

Landing page — what this is, the figures, the category index

registry.html

Searchable catalogue of every entry

report.html

Postcode report — pulls live values out of these sources for one postcode

js/

The provider layer: one module per category, plus the thresholds and coverage gates. Shared by the website and the MCP server.

mcp/

MCP server, published as agentic-house-search

packs/

Pre-built extracts for the sources that publish bulk files instead of an API

tools/

gen_derived.py (regenerates the CSV and the README tables), validate_registry.py, check_provider_ids.py, packbuild/

Both pages fetch data/registry.json at runtime, so they need to be served over HTTP rather than opened from disk: python3 -m http.server 8000, then http://localhost:8000/.

Postcode report

report.html is the registry pointed at a single postcode: enter one and it fetches the real values out of these sources and writes a plain paragraph per category — who lives here, crime, deprivation, prices, fibre, 5G, noise, transport, amenities, schools, planning constraints.

It runs entirely in the browser. Most sources are called directly (postcodes.io, data.police.uk, Nomis, HM Land Registry, Planning Data, the Environment Agency, TfL, Overpass); the three that publish bulk files instead of an API — Ofcom fibre, Ofcom mobile, the DfE school register — are pre-joined into packs/ by tools/packbuild.

Results open with a tile per category — the headline figure and how it rates — then one card each with the numbers behind it. Ratings are colour-coded, but never by colour alone: each carries a glyph (▲ good, ● typical, ◆ worth a look, ▼ needs attention) and the band in words, so the meaning survives greyscale, printing and colour blindness. Categories that cannot be judged good or bad — a house price is neither — stay deliberately uncoloured.

Two things it will not do. It never invents a comparison: every band word ("above the UK average") comes from js/thresholds.js and always sits next to the figure it describes, which is in the table below the paragraph. And it never pretends to cover ground it does not — a Scottish postcode gets an explicit "data.police.uk does not publish Scottish data" with a link to Police Scotland, not a blank card. Deprivation deciles are computed against each nation's own index and denominator.

An AI summary is optional and off by default. There is no server here to keep an API key in, so it uses one you paste yourself, stored in your own browser and sent to nothing but api.anthropic.com. The model is given only the computed facts, and every number it writes back is checked against them — anything untraceable is flagged rather than shown quietly. Without a key there is a "copy the prompt" button, and the report is complete either way.

Local development (both pages fetch data/registry.json, which file:// blocks):

python3 -m http.server 8000   # then http://localhost:8000/report.html?postcode=SW111AA

MCP server

mcp/ exposes all of this to AI agents over the Model Context Protocol — five tools: a full postcode report, a fast geography lookup, a side-by-side comparison of up to five postcodes, and search/fetch over the registry itself.

There is nothing to install. Paste this into your client's connector or custom integration field:

https://agentic-house-search.vercel.app/mcp

Or add it in one command:

claude mcp add --transport http agentic-house-search https://agentic-house-search.vercel.app/mcp

Or, in a client that supports the official MCP registry, add it by name without a URL at all — search agentic-house-search, or use io.github.asturksever/agentic-house-search.

The connect page has the same thing with a copy button and per-client instructions. The hosted endpoint is free, needs no account or key, and carries a courtesy rate limit that exists to protect the government APIs underneath — not to sell you anything. Running it yourself has no limit:

npx -y agentic-house-search          # stdio, published on npm
npx -y agentic-house-search --http   # your own streamable HTTP endpoint

It runs the same provider modules as report.html rather than a reimplementation, so a threshold, a coverage gate or a caveat is written once and both surfaces agree. See mcp/README.md.

Schema

{
  "id": "police-street-crime",
  "dataset": "Street-level crime, outcomes and stop & search",
  "publisher": "Home Office / UK police forces (data.police.uk)",
  "link": "https://data.police.uk/",
  "api": "https://data.police.uk/api/crimes-street/all-crime?lat={lat}&lng={lng}&date={YYYY-MM}",
  "api_docs": "https://data.police.uk/docs/",
  "format": "JSON REST API (no key required); CSV bulk downloads",
  "licence": "Open Government Licence v3",
  "coverage": "England, Wales & Northern Ireland",
  "update_frequency": "Monthly",
  "questions": [
    "How safe is this postcode / street compared with the borough or national average?",
    "What are the most common offence types here (burglary, ASB, drugs, vehicle crime)?",
    "Is crime trending up or down over the last 12-36 months?",
    "Where are the local crime hotspots and what happened to each case (outcomes)?"
  ],
  "category": "Crime"
}

Datasets by category

Crime

Dataset

Publisher

API

Licence

Street-level crime, outcomes and stop & search

Home Office / UK police forces (data.police.uk)

https://data.police.uk/api/crimes-street/all-crime?lat={lat}&lng={lng}&date={YYYY-MM}

Open Government Licence v3

Demographics

Dataset

Publisher

API

Licence

Census 2021 (ethnicity, religion, age, household composition, tenure, occupation, qualifications)

Office for National Statistics

https://api.beta.ons.gov.uk/v1/population-types

Open Government Licence v3

Demographics / Overview

Dataset

Publisher

API

Licence

Output Area Classification (OAC 2021) & London Output Area Classification (LOAC)

ONS / Greater London Authority (London Datastore)

https://data.london.gov.uk/api/action/package_show?id=london-area-classification

Open Government Licence v3

Affluence

Dataset

Publisher

API

Licence

Small area model-based income estimates (MSOA) + approximated social grade & qualifications (Census tables TS062/TS067)

Office for National Statistics

https://www.nomisweb.co.uk/api/v01/dataset/def.sdmx.json

Open Government Licence v3

Affluence (Deprivation)

Dataset

Publisher

API

Licence

English Indices of Multiple Deprivation (IMD 2019)

MHCLG (Ministry of Housing, Communities & Local Government)

https://opendatacommunities.org/sparql

Open Government Licence v3

Property prices

Dataset

Publisher

API

Licence

Price Paid Data (every residential sale) + UK House Price Index

HM Land Registry

https://landregistry.data.gov.uk/landregistry/query

Open Government Licence v3 (address fields have extra conditions)

Property prices (Rents)

Dataset

Publisher

API

Licence

Price Index of Private Rents & private rental market summary statistics

Office for National Statistics / Valuation Office Agency

https://api.beta.ons.gov.uk/v1/datasets

Open Government Licence v3

Ownership & tenure

Dataset

Publisher

API

Licence

INSPIRE Index Polygons

HM Land Registry

https://use-land-property-data.service.gov.uk/datasets/inspire/download

Open Government Licence v3 (INSPIRE end-user licence)

CCOD / OCOD

HM Land Registry

https://use-land-property-data.service.gov.uk/api/v1/datasets/ccod

Free for non-commercial use; commercial licence available

Companies House

Companies House

https://api.company-information.service.gov.uk/search/companies?q={name}

Open Government Licence v3

Council Tax valuation bands (per-property band A–H) and VOA band statistics

Valuation Office Agency / GOV.UK

https://www.tax.service.gov.uk/check-council-tax-band/search

Open Government Licence v3

Council tax levels set by local authorities (Band D charge by council & parish)

MHCLG

CSV/ODS releases on GOV.UK

Open Government Licence v3

Planning & constraints

Dataset

Publisher

API

Licence

Planning Data platform

MHCLG (planning.data.gov.uk)

https://www.planning.data.gov.uk/entity.json?dataset=conservation-area&latitude={lat}&longitude={lng}

Open Government Licence v3

National Heritage List for England

Historic England

https://opendata-historicengland.hub.arcgis.com/

Open Government Licence v3

Planning applications aggregated from every UK local authority register

PlanIt (open aggregator of LA planning portals)

https://www.planit.org.uk/api/applics/json?lat={lat}&lng={lng}&krad=1&recent=200

Source records are OGL LA data; aggregator has its own terms

Ground risk

Dataset

Publisher

API

Licence

BGS GeoSure (subsidence, shrink–swell clay, landslide, soluble rocks) and Radon Potential

British Geological Survey

https://map.bgs.ac.uk/arcgis/services

Open viewing under BGS OpenGeoscience; commercial licence for full datasets

Mining Reporting Areas and coal mining hazards

The Coal Authority (Mining Remediation Authority)

https://opendata-coalauthority.hub.arcgis.com/

Open Government Licence v3

Noise

Dataset

Publisher

API

Licence

Strategic noise mapping Round 4 (2022)

Defra / Environment Agency (Data Services Platform)

https://environment.data.gov.uk/dataset/562c9d56-7c2d-4d42-83bb-578d6e97a517

Open Government Licence v3

Transport

Dataset

Publisher

API

Licence

NaPTAN

Department for Transport

https://naptan.api.dft.gov.uk/v1/access-nodes?dataFormat=csv

Open Government Licence v3

Transport (London)

Dataset

Publisher

API

Licence

TfL Unified API

Transport for London

https://api.tfl.gov.uk/

TfL open data licence (free)

Transport (Connectivity score)

Dataset

Publisher

API

Licence

PTAL

Transport for London / GLA (London Datastore)

https://data.london.gov.uk/api/action/package_show?id=public-transport-accessibility-levels

Open Government Licence / TfL terms

Transport (extended)

Dataset

Publisher

API

Licence

Bus Open Data Service

Department for Transport

https://data.bus-data.dft.gov.uk/api/v1/dataset/?api_key={key}

Open Government Licence v3

Rail Data Marketplace / Darwin

Rail Delivery Group / National Rail

https://raildata.org.uk/

Free for registered users (National Rail terms)

Journey Time Statistics

Department for Transport

CSV/ODS bulk on GOV.UK, keyed by LSOA

Open Government Licence v3

STATS19 road safety data

Department for Transport

CSV bulk

Open Government Licence v3

National Chargepoint Registry

Department for Transport / OZEV

https://chargepoints.dft.gov.uk/api/retrieve/registry/format/json

Open Government Licence v3

Amenities

Dataset

Publisher

API

Licence

Food Hygiene Rating Scheme

Food Standards Agency

https://api.ratings.food.gov.uk/Establishments?latitude={lat}&longitude={lng}&maxDistanceLimit={miles}

Open Government Licence v3

Active Places Power

Sport England

https://www.activeplacespower.com/API

Open (registration; attribution)

Amenities (Health)

Dataset

Publisher

API

Licence

NHS Organisation Data Service

NHS England

https://directory.spineservices.nhs.uk/ORD/2-0-0/organisations?PostCode={postcode}&PrimaryRoleId=RO177

Open Government Licence v3

Amenities / Noise point-sources

Dataset

Publisher

API

Licence

OpenStreetMap via Overpass API

OpenStreetMap contributors

https://overpass-api.de/api/interpreter

ODbL 1.0

Health & care

Dataset

Publisher

API

Licence

CQC ratings and locations

Care Quality Commission

https://api.service.cqc.org.uk/public/v1/locations?postalCode={postcode}

Open Government Licence v3

Ofsted childcare providers register

Ofsted

CSV/ODS monthly management information on GOV.UK

Open Government Licence v3

Schools

Dataset

Publisher

API

Licence

Get Information about Schools (GIAS)

Department for Education

https://get-information-schools.service.gov.uk/Downloads

Open Government Licence v3

Schools (Ratings)

Dataset

Publisher

API

Licence

Ofsted inspection outcomes (management information, monthly)

Ofsted

CSV/ODS monthly files on GOV.UK

Open Government Licence v3

Schools (Results)

Dataset

Publisher

API

Licence

School performance tables (KS2 results, Progress 8, Attainment 8, A-level) + Explore Education Statistics

Department for Education

https://www.compare-school-performance.service.gov.uk/download-data

Open Government Licence v3

Environment (Air quality)

Dataset

Publisher

API

Licence

Defra UK-AIR modelled background pollution maps (annual NO2, PM10, PM2.5 on 1km grid) + monitoring network

Defra

https://uk-air.defra.gov.uk/data/pcm-data

Open Government Licence v3

Environment (Air quality, London)

Dataset

Publisher

API

Licence

London Air Quality Network

Imperial College London ERG

https://api.erg.ic.ac.uk/AirQuality/

Free to use with attribution

Environment (Flood risk)

Dataset

Publisher

API

Licence

Risk of Flooding from Rivers and Sea + Risk of Flooding from Surface Water (likelihood categories: very low to high)

Environment Agency

https://environment.data.gov.uk/dataset/bad20199-6d39-4aad-8564-26a46778fd94

Open Government Licence v3

Environment (Greenspace)

Dataset

Publisher

API

Licence

OS Open Greenspace + Natural England green infrastructure / access to greenspace

Ordnance Survey / Natural England

https://osdatahub.os.uk/downloads/open/OpenGreenspace

Open Government Licence v3

Environment (Designations)

Dataset

Publisher

API

Licence

MAGIC / Defra designations

Natural England / Defra

https://naturalengland-defra.opendata.arcgis.com/

Open Government Licence v3

Geography backbone (all tabs)

Dataset

Publisher

API

Licence

ONS Postcode Directory (ONSPD/NSPL) + Open Geography Portal boundaries

ONS Geography

https://api.postcodes.io/postcodes/{postcode}

Open Government Licence v3 (postcode data contains Royal Mail/OS derived IP with permitted use)

OS Data Hub

Ordnance Survey

https://api.os.uk/search/places/v1/postcode?postcode={postcode}&key={key}

OS OpenData (OGL) for open products; premium plan for Places/NGD

Extras (property-level, same ecosystem)

Dataset

Publisher

API

Licence

Energy Performance Certificates (EPC)

DLUHC / MHCLG

https://epc.opendatacommunities.org/api/v1/domestic/search?postcode={postcode}

OGL-style terms (attribution required)

Extras (connectivity)

Dataset

Publisher

API

Licence

Ofcom Connected Nations

Ofcom

https://api.ofcom.org.uk/

Ofcom open terms / OGL

Extras (market & listings)

Dataset

Publisher

API

Licence

Live for-sale / to-let listings

Various commercial providers

https://api.propertydata.co.uk/

Commercial — check terms; scraping portals breaches their T&Cs

Usage

curl -s https://raw.githubusercontent.com/asturksever/agentic-house-search-data-registry/main/data/registry.json \
  | jq '.sources[] | select(.category=="Planning & constraints") | {dataset, api}'

Local development (both pages fetch data/registry.json, which file:// blocks):

python3 -m http.server 8000   # then http://localhost:8000/report.html?postcode=SW111AA

Caveats

Endpoints were verified against publisher documentation as of 2 August 2026. Government APIs move; treat api as a starting point and check api_docs before depending on it. Some entries require a free API key (Ofcom, BODS, EPC, OS Data Hub, CQC, Companies House, Land Registry CCOD). One entry — live for-sale listings — is explicitly not open data and is included so builders know where the wall is.

Licence

This compilation is released under CC0 1.0 (public domain). The underlying datasets remain © their publishers; most are Open Government Licence v3, and each entry records its own licence.

Contributing

Missing a dataset, or spotted a dead endpoint? Open an issue or a PR editing data/registry.json — registry.html and data/registry.csv are regenerated from it.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables users to search UK property prices by postcode, street, or city using the HM Land Registry's SPARQL endpoint. It also provides tools for resolving postcodes and finding nearby locations through Ordnance Survey data.
    2
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to query UK property data including EPCs, sale history, planning, flood risk, council tax, demographics, and more via the Homedata API.
    18
    21 PyPI
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query NHS public health datasets, including prescribing data, dataset exploration, and organisation lookup via the NHSBSA Open Data Portal.
    9
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables natural language queries about UK postcodes and vehicles, including flood risk, crime rate, broadband coverage, property prices, MOT history, and ULEZ compliance.
    4
    38 npm
    MIT