gaff-check
Due diligence on any Irish property, for AI agents.
gaff-check is an open-source MCP (Model Context Protocol) server that gives AI assistants — Claude, Cursor, ChatGPT, or any MCP-compatible agent — ground truth from Ireland's scattered public property datasets.
Ask your assistant:
"Should I bid on this bungalow in Killiney? Tell me everything I should worry about."
…and it can check, in one conversation:
- 🏗️ Planning applications near the property (that pending apartment block behind the back garden)
- 💶 Sold prices on the street and in the area (Property Price Register)
- 🌊 Flood risk (OPW / GSI flood mapping)
- ☢️ Radon risk (EPA radon risk areas)
- 🗺️ Zoning (Myplan generalised land-use zoning)
- ⚡ BER / energy rating context and retrofit grant signals (phase 2)
All from official, public Irish datasets. No scraping of commercial listing sites. No estimates — records.
Why
Buying (or renovating, or just being nosy about) a house in Ireland means trawling six-plus government websites, each with its own dreadful UX, none of which talk to each other. The data is public. The synthesis isn't. gaff-check is the glue: a single, boring, reliable tool layer so the reasoning can happen in your AI assistant.
What it is not
- Not a valuation engine. It returns records; your agent does the thinking.
- Not a Daft/MyHome scraper. Public state data only.
- Not a website. It's a utility that enhances tools you already use.
Quick start
npx -y gaff-check # stdio MCP server — no API keys, no config
Claude Code:
claude mcp add gaff-check -- npx -y gaff-check
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"gaff-check": { "command": "npx", "args": ["-y", "gaff-check"] }
}
}
What it looks like
You: I'm thinking about a house near Fitzwilliam Square in Dublin 2, built in the 1980s. What should I know?
Claude (calling
resolve_location,planning_applications,sold_prices,radon_risk,zoning,flood_risk,ber_context):Here's what the public records say about that area:
- Planning: 5+ applications within 300 m — most recently a protected-structure alteration granted Feb 2025 (Dublin City Council, ref WEB1305/25, 81 m away). Several protected-structure precedents on the square itself.
- Sold prices: recent registered sales nearby range widely; the register shows exact declared prices per address (e.g. €1.8 m for a Howth Road semi in June 2026 — every record carries its date, address and VAT flag).
- Radon: the area is in the EPA's "about 1 in 20 homes" band — not a designated High Radon Area, but the EPA advises testing any home (~€50).
- Zoning: the square itself is zoned open space under the Dublin City Development Plan 2022–2028; surrounding streets are residential/mixed.
- Flood: no mapped groundwater or historic flood extents at the point — but note the OPW's river/coastal models are licence-restricted and not checked; verify at floodinfo.ie.
- BER context: 1978–1999 dwellings in Dublin 2 skew C/D. If the listing claims a B, ask to see the cert. Current SEAI grants: €12,500 max for a heat pump, €1,300 attic insulation for a semi-D (verified July 2026).
Every figure above came from an official dataset, with source, licence, vintage and caveats attached in the payload.
Hacking on it
git clone https://github.com/iarfhlaith/gaff-check.git
cd gaff-check
npm install && npm run build
The repo ships a project-scoped .mcp.json, so if you open the folder in Claude Code the gaff-check tools are available immediately (approve the server when prompted). npm test runs the fixture-based unit tests; RUN_E2E=1 npm run test:e2e and npm run eval hit the live upstreams.
Status
Pre-alpha. Working today:
| Tool | What it answers | Source |
|---|---|---|
resolve_location | "Where exactly is this address?" | OpenStreetMap Nominatim |
planning_applications | "What's been applied for / decided near this point?" | National Planning Application Database (DHLGH) |
sold_prices | "What did homes here actually sell for?" | Property Price Register (PSRA, official CSVs) |
radon_risk | "Is this a high radon area?" | EPA Radon Risk Map |
zoning | "What is this land zoned for?" | Myplan generalised zoning (DHLGH) |
flood_risk | "Any mapped groundwater/historic flooding here?" | GSI flood mapping (plus a pointer to OPW's floodinfo.ie for river/coastal models, which are licence-restricted) |
ber_context | "What BER is typical for a house of this age here, and what grants exist?" | CSO BER statistics (EBA02) + SEAI grant reference data |
All seven SPEC v0.1 tools are implemented. Next: M4 — npm publish & launch. See SPEC.md for the design and docs/DATA_SOURCES.md for the data plumbing.
A note on Eircodes: Eircode lookup is proprietary, so there's no free official way to turn an Eircode into coordinates. If you only have an Eircode, give your assistant the address too (or a rough location) — resolve_location handles the rest.
Prior art
irishmcp.ie hosts a PPR-only MCP server built on CivicTech Ireland's price-register API — nice work, check it out if sold prices are all you need. gaff-check's scope is broader (planning, flood, radon, zoning, BER context), and it reads the official PSRA CSVs directly.
Licence
MIT. Data returned by the tools is subject to the licences of the underlying public datasets (mostly CC-BY 4.0 / PSI) — see DATA_SOURCES.md.