# 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](/mcp/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](https://github.com/chrischall/redfin-mcp/issues/82) · 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](https://github.com/chrischall/redfin-mcp/issues/89) · 2026-05-29 · closed · 0 comments

### set keepAliveIntervalMs: 25_000 in FetchproxyServer constructor (fetchproxy#71)

## Parent issue

[fetchproxy#71](https://github.com/chrischall/fetchproxy/issues/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:

```ts
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](https://github.com/chrischall/redfin-mcp/issues/51) · 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](https://github.com/chrischall/redfin-mcp/issues/50) · 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` (default `false`)
- `include_tax_history: boolean` (default `false`)

When set, fetch the histories concurrently server-side and inline them under `price_history` / `tax_history` on the returned prop

[Read the thread](https://github.com/chrischall/redfin-mcp/issues/49) · 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](https://github.com/chrischall/redfin-mcp/issues/47) · 2026-05-27 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/chrischall/redfin-mcp/issues).
