Reported issues for redfin-mcp
Pod holds 16 of 34 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to redfin-mcp.
Most discussed
P1: derived lot_size_acres on the property record (cohort enhancement)
Round-4 field report — P1 enhancement (cohort-wide; filed on redfin as the lead since #81 unblocks it)
Every MCP that returns lot size returns it in square feet; acreage is the unit that matters for rural/mountain/land listings. Last session required hand-converting 43,560-sq-ft-per-acre three times (45,738→1.05, 13,503→0.31, 94,089→2.16) to populate a tracker column.
Fix: add a derived lot_size_acres (sq ft ÷ 43,560, rounded to 2 dp) alongside the raw lot_size on every property
Read the thread · 2026-05-28 · closed · 1 comment
P2: bulk_get should resolve from property_id alone (like Compass's sha-only path)
From a usage-session report (2026-05-29).
redfin_bulk_get requires url or property_id+listing_id — property_id alone is rejected, and the short /home/<id> URL form does not resolve (it needs the full state/city/slug canonical URL). The error message is clear and per-row capture works, so this is an ergonomics/documentation gap, not a breakage.
Ask: let property_id alone resolve internally (derive the canonical URL or query by id), matching Compass's sha-only path. Failing tha
Read the thread · 2026-05-29 · closed · 0 comments
set keepAliveIntervalMs: 25_000 in FetchproxyServer constructor (fetchproxy#71)
Parent issue
fetchproxy#71 — cohort follow-up to opt Pattern A MCPs into proactive keep-alive (0.9.0 wave).
The change
In src/transport-fetchproxy.ts (or equivalent), add keepAliveIntervalMs: 25_000 to the FetchproxyServer constructor options:
const transport = new FetchproxyServer({
serverName: 'redfin-mcp',
// ... existing options
keepAliveIntervalMs: 25_000, // Round-3 #67 — proactive SW resident-keeping
});
``
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/80) · 2026-05-28 · closed · 0 comments
### add search-fallback rung to redfin_get_by_address (round-3 architectural gap)
## Architectural gap
Round-3 zillow corpus made the case: a real-world set of 20 mountain MLS addresses resolved 0/20 via zillow's direct-resolver rung but 17/20 via the price-band-bounded search-fallback rung. **The search-fallback rung was load-bearing**, not the price band per se.
`redfin_get_by_address` today runs **one rung**: `/stingray/do/location-autocomplete` followed by suffix-expansion (`Rd ↔ Road`). When autocomplete returns no `Addresses` row — the failure mode rural/locality-mism
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/75) · 2026-05-28 · closed · 0 comments
### bulk resolver should run the same fallback rungs as single-call (parity audit)
Round 3 feedback exposed that `zillow_resolve_addresses` was running only the direct-resolver rung while `zillow_get_by_address` had grown a 3-rung strategy (direct → suffix-expansion → search-fallback). Real example: 20 addresses → 0 resolved via bulk, 17 resolved when looped through the single call. Filed as `chrischall/zillow-mcp#<TBD>`.
**This issue is the parity audit for `redfin_resolve_addresses` against `redfin_get_by_address`.** Confirm or fix:
1. Does the bulk resolver run *exactly* t
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/71) · 2026-05-28 · closed · 0 comments
### P2: raise redfin_compare_properties cap (or close as N/A if no compare endpoint)
## Motivation
Real-world report cross-MCP item: onehome's `compare_properties` is capped at 8; Zillow same; raise to 25 (or add a bulk endpoint) — same pattern for any sibling MCP that has a compare tool.
If `redfin_compare_properties` exists, the same cap likely applies and the same fix lands here.
## Action
- If `redfin_compare_properties` exists with a low cap (e.g. 8): raise to 25, OR rely on `redfin_bulk_get` (separate issue) as the high-N path and document the compare endpoint as the s
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/57) · 2026-05-27 · closed · 0 comments
### P2: tool description honesty sweep
## Motivation
Real-world report finding: several Redfin tool descriptions oversell or omit critical caveats. Goal of this sweep: "if the caller does exactly what the description suggests, will they get a correct answer?" Where the answer is no, fix the description first, then consider fixing the underlying behavior.
## Specific items to address
- `redfin_search_properties`:
- Document the rural-ZIP failure mode (cross-continent region mismatch — see the ZIP 28746 → Seattle case).
- Docume
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/56) · 2026-05-27 · closed · 0 comments
### P2: fetchproxy service-worker eviction handling
## Problem
The fetchproxy browser extension's service worker is evicted by Chrome after 30s idle. Real session: the entire workflow blocked on "extension icon needs to be clicked to wake service worker" — every redfin (and zillow / compass / homes-com) tool surfaced the same `bridge_down` error class.
## Options (pick one or more)
**A. Keep-alive ping.** From the MCP host, send a heartbeat to the extension every 25s while any fetchproxy-backed tool is active. Chrome evicts at 30s idle; 25s ke
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/55) · 2026-05-27 · closed · 0 comments
## Most recent
### P2: document landslide-coverage gap in redfin_get_climate_risk tool description
## Problem
First Street (the data Redfin uses for climate risk) covers flood / fire / heat / wind / air. **Landslide is the Helene-relevant factor in the NC mountains market** and is NOT covered.
The tool description today doesn't say what's missing. Callers in landslide-prone markets (Western NC after Hurricane Helene, parts of California / the Pacific Northwest, etc.) reasonably assume "climate risk" is comprehensive — it's not.
## Fix
Update `redfin_get_climate_risk` tool description to:
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/54) · 2026-05-27 · closed · 0 comments
### P1: climate risk — add cluster_id/census_tract or redfin_get_area_climate_baseline
## Motivation
First Street climate data is highly correlated within geographic clusters. Real session: every Lake Lure property returned identical `relative_risk: 0.595` for fire, identical FEMA zone, identical insurance band. Today the caller has to make per-property calls to discover this.
## Options (pick at least one)
**Option A — `cluster_id` / `census_tract` on the per-property response.**
Add `cluster_id: string` (or `census_tract: string`) to every climate-risk record. Callers can gr
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/53) · 2026-05-27 · closed · 0 comments
### P1: add redfin_get_climate_risk_bulk(urls[]) with server-side concurrency
## Motivation
Climate risk currently has only a per-property endpoint. For tracker workflows (~60 properties per session) climate-risk calls are the dominant cost after address resolution.
## Change
Add `redfin_get_climate_risk_bulk(urls[])`:
- Input: `urls: string[]` (or `property_ids[]`), capped at e.g. 100.
- Server-side concurrency for the underlying First Street fetches.
- Per-row error capture: a missing-data row returns the `{ available: false, reason }` shape from the companion issue
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/52) · 2026-05-27 · closed · 0 comments
### P1: redfin_get_climate_risk — return explicit {available: false, reason} instead of empty {}
## Problem
`redfin_get_climate_risk` returns an empty object `{}` for properties without First Street data. The tool description warns this can happen, but the return shape gives the caller no way to distinguish "no data" from a malformed response.
Today this hit on Pier Point (new construction 2022) — `redfin_get_by_address` resolved fine, but `redfin_get_climate_risk` returned `{}`.
## Fix
Return an explicit, machine-readable shape (verbatim from the real-world report):
{ available: f
Read the thread · 2026-05-27 · closed · 0 comments
P1: add last_sold_date and last_sold_price derived fields
Motivation
last_sold_date and last_sold_price are needed for almost every workflow that touches a Redfin property — appreciation analysis, fair-price modeling, comp selection. Today callers fetch the full price history and compute these by hand.
price_per_sqft is already standard on most MCPs (and on Redfin); this issue is about lifting last_sold extraction server-side.
Change
Add to every property record:
last_sold_date: string | null— ISO date of the most recent event w
Read the thread · 2026-05-27 · closed · 0 comments
P1: bundle history into redfin_get_property via include_price_history + include_tax_history flags
Motivation
Real workflow: for most properties the caller needs the property record AND the price history AND the tax history. Today that's 3 separate tool calls × 53 properties = 159 round trips when 53 would do.
Change
Add to redfin_get_property input:
include_price_history: boolean(defaultfalse)include_tax_history: boolean(defaultfalse)
When set, fetch the histories concurrently server-side and inline them under price_history / tax_history on the returned prop
Read the thread · 2026-05-27 · closed · 0 comments
P1: normalize event taxonomy on redfin_get_price_history (events_normalized)
Motivation
Redfin currently returns price_events and tax_events as separate arrays. Sibling MCPs each have a different shape (Compass: parallel events + history; Zillow: single time series with MLS attribution; homes-com: combined endpoint). Downstream code has to write per-MCP adapters.
Change
Add a normalized view alongside the raw response — keep price_events / tax_events for back-compat, but also expose:
events_normalized: [
{ date, type, price?, price_change_pct?
[Read the thread](https://github.com/chrischall/redfin-mcp/issues/48) · 2026-05-27 · closed · 0 comments
### P0: redfin_search_properties — add coverage field
## Motivation
Redfin coverage is genuinely sparse outside MLSes Redfin operates in. Real session: Lake Lure 28746 returned 0 results from `redfin_search_properties("Lake Lure, NC")` — even though Redfin has profile pages for many of those properties (`redfin_get_by_address` succeeded for some).
Callers can't tell the difference between "no listings exist" and "Redfin doesn't search this area but does have profile pages."
## Change
Add a `coverage` field to the search response:
coverage:
Read the thread · 2026-05-27 · closed · 0 comments
The remaining reports are on the project's issue tracker.