Home-buying due-diligence MCP server: public-API tools (FEMA, USDA, Census, RentCast) + screenshot intake + evidence-packet PDF generation.
Project description
drg-home-buying-dd
Home-buying due-diligence MCP server. Public-API tools (FEMA flood, USDA soil, Census demographics) + screenshot intake for listing/auditor data + Pre-Visit Brief and Buyer's Evidence Packet PDF generators.
Designed to be installed once by a non-developer friend/family member and used inside Claude Code for residential property evaluation.
Why this exists
Real estate listing sites (Zillow, Realtor.com, Redfin) and most county auditor portals block automated requests. The reliable path for an AI agent is:
- The user opens the listing in their normal browser (logged-in, looks human to anti-bot systems)
- They drag a screenshot into Claude
- The MCP server uses Claude vision to extract structured data
- The MCP server hits public, ToS-compliant APIs (FEMA NFHL, USDA SDA, Census) for environmental and demographic data
- The MCP server generates a PDF — either a Pre-Visit Brief (before site visit) or Buyer's Evidence Packet (after inspection)
No scraping. No ToS violations. No subscription costs. Robust to listing-site redesigns.
Tools
Public-API (Phase 1)
| Tool | What it does |
|---|---|
geocode_address |
US address → lat/lon + county + tract GEOID (Census Geocoder, free, keyless) |
get_fema_flood_zone |
lat/lon → flood zone + FIRM panel (FEMA NFHL ArcGIS) |
get_soil_report |
lat/lon → USDA SSURGO soil components + drainage + hydrologic group |
get_census_demographics |
tract GEOID → ACS 5-year demographics (requires free Census API key) |
Workflow Guidance + Screenshot Archive
| Tool | What it does |
|---|---|
get_intake_guide |
Returns the screenshot checklist — which screenshots to capture, where to find them, and what fields to extract. Always call this first to drive the conversation. |
stage_intake_screenshot |
Copy a screenshot into the property's intake/ archive for traceability |
Headless / Paid Extraction (advanced — skips the conversation)
| Tool | What it does |
|---|---|
extract_listing_data |
[Paid] Screenshot → ListingFacts JSON via the Anthropic API. Only for batch/headless use. The free interactive path is to let Claude in the conversation read the screenshot. |
extract_auditor_data |
[Paid] Same pattern for auditor pages. |
Property Store (Phase 3)
| Tool | What it does |
|---|---|
create_property |
Initialize a new property record by address |
get_property |
Load a property record |
list_properties |
List all property IDs in the local store |
update_property_facts |
Merge a fact patch with provenance tagging |
enrich_property_from_public_apis |
Run all four Phase-1 enrichments in one call |
generate_pre_visit_brief |
Produce a Pre-Visit Initial Assessment PDF |
Packet Generation (Phase 4)
| Tool | What it does |
|---|---|
generate_buyers_evidence_packet |
Produce a Buyer's Evidence Packet PDF (seller-facing, post-inspection) |
Install
Prerequisites
- Python 3.11+
- uv (
brew install uvorcurl -LsSf https://astral.sh/uv/install.sh | sh) - Claude Code (claude.com/claude-code)
- (Optional, free) RentCast API key for comp lookups — app.rentcast.io/app/api
- (Optional, free) Census API key for demographics — api.census.gov/data/key_signup.html
- (Advanced only) Anthropic API key — only needed for headless extraction tools (
extract_listing_data,extract_auditor_data). The normal interactive workflow runs on your Claude Code subscription alone.
One-line install (recommended)
curl -LsSf https://raw.githubusercontent.com/dandelionrosegroup/drg-plugins/main/home-buying-dd/install.sh | bash
The installer will: install uv if missing, clone the repo to ~/.local/share/drg/, set up a venv, prompt you interactively for API keys, wire keys into your shell config, and register the MCP server with Claude Code. Idempotent — safe to re-run for updates.
Manual install
# 1. Clone the drg-plugins repo
git clone https://github.com/dandelionrosegroup/drg-plugins.git
cd drg-plugins/home-buying-dd
# 2. Create venv and install
uv venv --python 3.11
source .venv/bin/activate
uv pip install -e .
# 3. Add to your shell profile (~/.zshrc or ~/.bash_profile):
# export ANTHROPIC_API_KEY="sk-ant-..."
# export RENTCAST_API_KEY="..." # optional (free tier: 50 calls/mo)
# export CENSUS_API_KEY="..." # optional (free, instant signup)
# 4. Register the MCP server with Claude Code
claude mcp add home-buying-dd --scope user -- \
"$(pwd)/.venv/bin/python" -m home_buying_dd.server
# 5. Verify
claude mcp list | grep home-buying-dd
# Should show: ✓ Connected
For the full workflow walkthrough, see ONBOARDING.md.
Workflow
Once installed, open Claude Code in any directory and prompt:
I'm looking at a property at 1225 Stoney Rd, Peebles, OH 45660.
Help me work up a Pre-Visit Brief.
Claude will then walk you through:
create_property("1225 Stoney Rd, Peebles, OH 45660")get_intake_guide(property_id)— fetches the screenshot checklist- Asks you to capture and drag in the listing page screenshot
- Reads the screenshot directly (no API call — your Claude Code subscription covers it) and calls
update_property_facts(...)with the extracted fields - Asks for an optional county auditor screenshot; same pattern
enrich_property_from_public_apis(property_id)— FEMA + USDA + Census + RentCast compsgenerate_pre_visit_brief(property_id)→ produces the PDF
After your site visit and inspections:
8. generate_buyers_evidence_packet(property_id, defects=[...], repair_estimates=[...], target_offer=...) → the seller-facing offer document
Data storage
All property data lives at:
~/.drg/home-buying-dd/properties/{property-id}/
property.json # the full record (verified facts + provenance)
intake/ # original screenshots and other primary-source artifacts
output/ # generated PDFs
The store is local-only. Nothing leaves your machine except for the public-API lookups (which are address-only — no personal data).
Underlying methodology
This MCP server implements the Home-Buying-Due-Diligence-Process methodology developed in the DRG Claude-Meta vault. Key principles:
- Primary-Source-or-Stop Rule — never substitute aggregator data for blocked primary sources
- Confidence labeling — every fact carries provenance (
screenshot:zillow-...,api:fema-nfhl,manual:...) - Pre-Commit Verification Gate — fundamentals reviewed by the buyer before any deliverable is finalized
- Same-Road Conflation Guard — multiple addresses on the same road are treated as suspect until verified
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drg_home_buying_dd-0.1.0.tar.gz.
File metadata
- Download URL: drg_home_buying_dd-0.1.0.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67fdf69928df2f06e91ac426a5304bcdf0fd6667e8c687fee73ef603800e07d6
|
|
| MD5 |
5d5b33060d3a6d5d7e903e3a36d4b634
|
|
| BLAKE2b-256 |
c0ad6e81daf9c642e51a5773647f67cacbe78bb0834e502d0305b45a86285a0a
|
File details
Details for the file drg_home_buying_dd-0.1.0-py3-none-any.whl.
File metadata
- Download URL: drg_home_buying_dd-0.1.0-py3-none-any.whl
- Upload date:
- Size: 34.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b6c2870761ffeb89e95b8f91761045e9f5cb716ddf89a7d25dbe79071aeee25
|
|
| MD5 |
5750a16493ea137a40331a8d5f07a4e9
|
|
| BLAKE2b-256 |
f40c12cd35eb255c8c41ec20a6cbab671fce198ba0263be772d33db5c475da5a
|