gaff-check
gaff-check
对任何爱尔兰物业进行尽职调查,专为AI代理设计。
gaff-check 是一个开源的 MCP(模型上下文协议) 服务器,为 AI 助手——Claude、Cursor、ChatGPT 或任何兼容 MCP 的智能代理——提供来自爱尔兰分散公共物业数据集的真实数据。
向你的助手提问:
"我该不该竞标基利尼的那栋平房?告诉我所有需要担心的事。"
它可以在一次对话中检查:
🏗️ 物业附近的 规划申请(后花园后面那栋待建的公寓楼)
💶 街道和区域的 成交价格(房产价格登记册)
🌊 洪水风险(OPW / GSI 洪水地图)
☢️ 氡气风险(EPA 氡气风险区域)
🗺️ 分区规划(Myplan 通用土地使用分区)
⚡ BER / 能源评级背景及节能改造补助信号
🚓 所在 Garda 警区辖区的 犯罪记录背景——分类计数和谨慎标注的比率,绝无安全评分
全部来自官方、公开的爱尔兰数据集。不抓取商业房源网站。提供记录和清晰标注的推导背景,绝无捏造的确定性。
为什么
在爱尔兰买房(或翻新,甚至只是好奇)意味着需要在六个以上政府网站之间来回穿梭,每个网站都有糟糕的用户体验,且互不连通。数据是公开的,但整合工作却不是。gaff-check 就是粘合剂:一个单一、无趣、可靠的工具层,让推理在你的 AI 助手中进行。
Related MCP server: homedata-mcp
不是什么
不是估值引擎。它返回记录;你的代理负责思考。
不是 Daft/MyHome 抓取工具。仅限公共政府数据。
不是网站。它是一个增强现有工具的实用程序。
快速开始
gaff-check 作为 stdio MCP 服务器运行,需要 Node.js 20 或更高版本。不要单独运行 npx -y gaff-check:它会等待 MCP 客户端发送请求,因此终端会看起来卡住。改为将其添加到你的助手中;无需 API 密钥或单独安装包。
Claude Code:
claude mcp add --transport stdio --scope user gaff-check -- npx -y gaff-check在 Claude Code 中运行 /mcp 确认 gaff-check 已连接。--scope user 使其在每个项目中可用;如果希望使用 Claude Code 默认的项目本地配置,请省略该选项。
Codex:
codex mcp add gaff-check -- npx -y gaff-check运行 codex mcp list 确认服务器已配置,然后启动新的 Codex 会话,使用 /mcp 检查可用的工具。
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"gaff-check": { "command": "npx", "args": ["-y", "gaff-check"] }
}
}效果示例
你: 我在考虑都柏林 2 区 Fitzwilliam 广场附近一栋建于 1980 年代的房子。我应该了解什么?
Claude (调用
resolve_location、planning_applications、sold_prices、radon_risk、zoning、flood_risk、ber_context、recorded_crime_context):以下是公共记录中关于该区域的信息:
规划: 300 米内有 5 个以上申请——最近一次是 2025 年 2 月批准的保护建筑改造(都柏林市议会,编号 WEB1305/25,距离 81 米)。广场本身有多处保护建筑改造先例。
成交价格: 附近最近的登记成交价格范围很广;登记册显示每处地址的精确申报价格(例如 2026 年 6 月 Howth Road 半独立式住宅 180 万欧元——每条记录都包含日期、地址和增值税标志)。
氡气: 该区域属于 EPA 的“约每 20 户中有 1 户”频段——非指定高氡区域,但 EPA 建议对任何住宅进行检测(约 €50)。
分区规划: 根据《都柏林市发展规划 2022–2028》,广场本身分区为开放空间;周边街道为住宅/混合用途。
洪水: 该点无已测绘的地下水或历史洪水范围——但请注意,OPW 的河流/海岸模型受许可限制,未经核实;请访问 floodinfo.ie 确认。
BER 背景: 都柏林 2 区 1978–1999 年建的住宅偏 C/D 级。如果房源声称是 B 级,建议要求查看证书。当前 SEAI 补助:热泵最高 €12,500,半独立式住宅阁楼保温 €1,300(2026 年 7 月核实)。
犯罪记录: 每年 Central Statistics Office 按类别统计的所在 Garda 警区数据,另外标注了更广泛的分区趋势。这些是行政区的总计,并非该地址的事故;警区层级不公布杀人案和性犯罪。
以上每个数据均来自官方数据集,载荷中附有来源、许可、版本和注意事项。
参与开发
git clone https://github.com/iarfhlaith/gaff-check.git
cd gaff-check
npm install && npm run build仓库附带了项目范围的 .mcp.json(用于 Claude Code)和 .codex/config.toml(用于 Codex)。构建后,打开并信任该仓库,然后根据提示批准或重启配置的服务器。npm test 运行基于 fixture 的单元测试;RUN_E2E=1 npm run test:e2e 和 npm run eval 会访问真实上游数据。
参见 CONTRIBUTING.md 了解代码风格,docs/HANDOVER.md 为简明操作简介,SPEC.md 和 docs/DATA_SOURCES.md 为详细数据来源。
状态
已发布至 npm 为 gaff-check@0.2.0。当前可用的工具有:
工具 | 回答的问题 | 来源 |
| “这个地址具体在哪里?” | OpenStreetMap Nominatim |
| “该点附近有什么已申请/已决定的规划?” | 国家规划申请数据库 (DHLGH) |
| “这里的房子实际卖价是多少?” | 房产价格登记册 (PSRA, 官方 CSV) |
| “这是高氡区域吗?” | EPA 氡气风险地图 |
| “这块地的分区规划是什么?” | Myplan 通用分区 (DHLGH) |
| “这里有已测绘的地下水/历史洪水吗?” | GSI 洪水地图(另请参阅 OPW 的 floodinfo.ie 了解河流/海岸模型,这些模型受许可限制) |
| “这个年代、这个地区的房子典型 BER 是多少?有哪些补助?” | CSO BER 统计数据 (EBA02) + SEAI 补助参考数据 |
| “这个更广泛的 Garda 区域公布了哪些犯罪记录类别?” | CSO CJA11/CJA39/CJQ10/CJQ11 + Garda 边界 + 2022年人口普查分母 |
八个工具已全部实现。当前优先事项是发布后的可靠性、上游数据漂移检测以及保持来源/许可/补助元数据的最新性;参见 docs/LAUNCH.md 了解监测清单。
关于 Eircode 的说明: Eircode 查询是专有的,因此没有免费的官方途径将 Eircode 转换为坐标。如果你只有 Eircode,请同时向你的助手提供地址(或大致位置)——resolve_location 会处理其余部分。
先前作品
irishmcp.ie 托管了一个仅包含 PPR 的 MCP 服务器,基于 CivicTech Ireland 的房产登记 API——做得很不错,如果你只需要成交价格,可以看看。gaff-check 的范围更广(规划、洪水、氡气、分区、BER 背景),并且直接读取官方的 PSRA 数据集。
许可证
MIT。工具返回的数据受底层公共数据集的许可约束(主要为 CC-BY 4.0 / PSI)——详见 DATA_SOURCES.md。
Available Tools
1 toolresolve_locationA
Resolve a free-text Irish address or place name to geographic coordinates (WGS84 lat/lng), returning ranked candidate matches.
Use this first when the user gives an address, street, townland, or place name in Ireland, to confirm the correct location before calling other gaff-check tools — every candidate echoes its full resolved name so you (and the user) can sanity-check the match. If you already have exact lat/lng coordinates, you do not need this tool.
Geocoding uses OpenStreetMap Nominatim and is best-effort: rural addresses and new estates may match poorly, and Eircodes only resolve where OSM mappers happen to have added them (there is no licensed Eircode lookup — if the user has only an Eircode, ask for the address or an approximate location instead). The confidence score ranks candidates within one query; it is not an absolute probability. Coordinates are WGS84 decimal degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of candidate matches to return (1–10, default 5) | |
| query | Yes | Free-text Irish address or place name, e.g. '25 Fitzwilliam Square, Dublin 2' or 'Salthill, Galway' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses use of OpenStreetMap Nominatim, best-effort nature, relative confidence score, candidate echoing for sanity-check, and Eircode limitations. Does not explicitly state it is read-only or has no side effects, but the nature of geocoding implies read-only. Minor omission prevents a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (~120 words) and well-structured: front-loaded purpose, then usage guidance, then behavioral details. Every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and no siblings, the description covers all essential aspects: purpose, when to use, limitations, confidence score, coordinate system, and candidate format. It provides enough context for an agent to use the tool correctly without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. Description adds value by explaining that candidates echo full resolved name for sanity-check, which goes beyond the schema's parameter descriptions. However, the parameter descriptions in the schema are already quite clear, so the addition is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves free-text Irish addresses/place names to WGS84 coordinates, returning ranked candidates. The verb 'resolve' and specific resource are explicit, and the description distinguishes it as a first step before other tools, though no sibling tools are listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: when user gives an address/place name in Ireland, before other gaff-check tools. Also tells when not to use: if exact lat/lng known. Provides caveats about rural addresses, new estates, and Eircode limitations, offering guidance on alternative actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
resolve_location
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlap between tools.
The single tool uses a clear verb_noun pattern (resolve_location), which is consistent and descriptive.
One tool is minimal but may be appropriate for a focused geocoding server; however, it feels thin for a comprehensive address service.
The server only offers forward geocoding, missing reverse geocoding, address validation, or Eircode lookup, which are obvious gaps for an Irish address tool.
Maintenance
Related MCP Connectors
Read-only Irish public data for AI assistants: stats, weather, transport, law, property and maps.
UK area & property intelligence for AI agents: reports, EPC, comparables, with source provenance.
UK property research tools - crime stats, schools, demographics, valuations for AI.
Paid intelligence tools for AI agents across risk, finance, property, logistics and more.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI access to Korea's land use planning, urban regulations, and permit information through natural language queries. It integrates tools for land analysis, regulation verification, and public notice scraping to prevent hallucinations in property-related AI applications.818MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to query UK property data including EPCs, sale history, planning, flood risk, council tax, demographics, and more via the Homedata API.1821 PyPIMIT
- AlicenseAqualityCmaintenanceUK planning application data for AI agents. Search, look up, and geo-query every UK planning application from Claude, Cursor, or any MCP client — conversationally.4176 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query and analyze Korean property data—court auctions, actual transactions, subscription announcements, price trends, and loan/tax calculations—through MCP tools.MIT