npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gaff-check

v0.2.0

Published

MCP server exposing Ireland's public property datasets (planning, sold prices, flood, radon, zoning, BER and recorded-crime context) as tools for AI agents.

Readme

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
  • 🚓 Recorded-crime context for the containing Garda sub-district — category counts and carefully qualified rates, never a safety score

All from official, public Irish datasets. No scraping of commercial listing sites. Records and clearly labelled derived context — never invented certainty.

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

gaff-check runs as a stdio MCP server and requires Node.js 20 or newer. Do not run npx -y gaff-check on its own: it will wait for an MCP client to send requests, so the terminal will appear to hang. Add it to your assistant instead; no API keys or separate package installation are needed.

Claude Code:

claude mcp add --transport stdio --scope user gaff-check -- npx -y gaff-check

Run /mcp in Claude Code to confirm that gaff-check is connected. --scope user makes it available in every project; omit that option if you want Claude Code's default project-local configuration instead.

Codex:

codex mcp add gaff-check -- npx -y gaff-check

Run codex mcp list to confirm the server is configured, then start a new Codex session and use /mcp to inspect the active tools.

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, recorded_crime_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).
  • Recorded crime: annual CSO category counts for the containing Garda sub-district, plus a separately labelled wider division trend. These are administrative area totals, not incidents at the address; homicide and sexual offences are not published at sub-district level.

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 for Claude Code and .codex/config.toml for Codex. After building, open and trust the repository, then approve or restart the configured 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.

See CONTRIBUTING.md for house style, docs/HANDOVER.md for the concise operating brief, and SPEC.md plus docs/DATA_SOURCES.md for the detailed sources of truth.

Status

Published on npm as [email protected]. 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 | | recorded_crime_context | "What recorded-crime categories are published for this wider Garda area?" | CSO CJA11/CJA39/CJQ10/CJQ11 + Garda boundaries + Census 2022 denominator |

All eight tools are implemented. Current priorities are post-launch reliability, upstream-drift detection, and keeping source/licence/grant metadata current; see docs/LAUNCH.md for the watchlist.

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.