Look up real-estate listings, property details, market reports, and your saved homes/searches on Redfin via MCP. Triggers on phrases like "find homes on redf...
Browser
redfin-fpx
Try itQuery redfin.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the redfin-mcp server — resolve locations/addresses, search for-sale listings, read property detail (price, beds/baths, price history, tax history), market trends, comparable rentals, climate risk, photos, and (signed-in) saved homes and saved searches, via one-shot calls through a signed-in browser tab. Use when you want Redfin data without the MCP, in a script, or on a machine where the MCP isn't installed.
What it does
Query redfin.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the redfin-mcp server — resolve locations/addresses, search for-sale listings, read property detail (price, beds/baths, price history, tax history), market trends, comparable rentals, climate risk, photos, and (signed-in) saved homes and saved searches, via one-shot calls through a signed-in browser tab. Use when you want Redfin data without the MCP, in a script, or on a machine where the MCP isn't installed.
The skill document
Redfin via fpx (no MCP)
Redfin fronts www.redfin.com — including every /stingray/... JSON
endpoint — with an AWS WAF challenge that blocks plain curl/Node
requests regardless of headers. fpx routes the request through the
user's own signed-in browser tab (the Transporter extension), which has
already cleared the challenge, so the same request succeeds. Most reads
are anonymous (no Redfin login needed — just an open tab); the saved-homes
and saved-searches endpoints additionally require the tab to be signed in
to redfin.com.
This is the same data the redfin_* MCP tools return, reached with one
CLI call instead of a running server. Every call rides through the bridge
(no bootstrap-then-direct-fetch shortcut) — Redfin validates each request
at the session level.
One-time setup
npm install -g @fetchproxy/cli # provides `fpx`
fpx profile add redfin --domain redfin.com # only the fetch capability is needed
fpx pair -p redfin # prints a pair code → approve in Transporter
Requirements: the Transporter browser extension installed, with an
open www.redfin.com tab, and its Chrome Site access allowing
redfin.com. Pairing persists — after the first approval every later
fpx call reuses it.
Core call
Almost every endpoint is a GET to a /stingray/... path. Redfin prefixes
every stingray JSON body with a literal anti-CSRF {}&&, so strip that
before piping to jq:
fpx get 'https://www.redfin.com/stingray/api/gis?...' -p redfin \
| sed -E 's/^\{\}&&//' \
| jq '.payload.homes'
Every stripped body is an envelope { version, errorMessage, resultCode, payload } — check resultCode == 0 before trusting payload (a nonzero
code means Redfin rejected the request; errorMessage explains why).
Ready-to-run request paths (autocomplete, search, property detail, price
history, market trends, comparable rentals, climate risk, saved homes)
are in references/stingray-endpoints.md. Exhaustive field lists live in
the repo at src/tools/*.ts — the endpoints here are compact,
live-verified subsets.
The one rule: resolve the location/address first
Redfin search takes numeric region_id + region_type, never place names, and property detail wants a propertyId + listingId pair. Always autocomplete first:
fpx get 'https://www.redfin.com/stingray/do/location-autocomplete?location=Seattle&start=0&count=1&v=2&iss=false&ooa=true&mrs=false' \
-p redfin | sed -E 's/^\{\}&&//' \
| jq -r '.payload.sections[] | select(.name=="Places") | .rows[0] | "\(.id)\t\(.name)"'
# 2_16163 Seattle
id is formatted "_". An Addresses section
(instead of/alongside Places) means autocomplete resolved a specific
home rather than a region — its url embeds the home's canonical
/home/ path (use that with the property-detail calls instead of a
region search).
Two-step property detail
A homedetails URL only gets you propertyId/listingId via one extra
round trip:
GET /stingray/api/home/details/initialInfo?path=→{propertyId, listingId, ...}GET /stingray/api/home/details/aboveTheFold?propertyId=…&listingId=…&accessLevel=1→ the actual detail
If you already have property_id + listing_id (e.g. from a search
result), skip step 1 and go straight to aboveTheFold (and
belowTheFold for price/tax history).
Exit codes (fetch verbs)
0— success (still check the stripped envelope'sresultCode).2— bridge unavailable: extension not connected or pairing pending → runfpx pair -p redfin, confirm a redfin.com tab is open.3— bot wall: the tab hasn't cleared the AWS WAF challenge → open/refresh awww.redfin.comtab and retry.4— upstream non-2xx from Redfin.
Notes
- Anonymous reads only work for search/property/market/history/rentals;
redfin_get_saved_homes/redfin_get_saved_searchesneed the bridged tab signed in to redfin.com. - Climate-risk data is not a JSON endpoint — it's regex-extracted
from the server-rendered homedetails HTML (
fpx getthe page, then grep/extract; seereferences/stingray-endpoints.md§7 for the field names to look for). There's no clean stingray path for it. fpx health -p redfinshows bridge connection state when a call fails.- This project is developed and maintained by AI (Claude).
Related skills
Query homes.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the homes-mcp server — search listings, resolve street addresses, fetch property detail/photos/ history, and read the signed-in user's saved homes, all through a one-shot call over their own signed-in browser tab. Use when you want homes.com data without the MCP, in a script, or on a machine where the MCP isn't installed.
Query zillow.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the zillow-mcp server — search listings, pull a full property record by zpid, price/tax/Zestimate history, photos, market reports, and your signed-in saved searches/homes, all via one-shot HTTP calls through a signed-in browser tab. Use when you want Zillow data without the MCP, in a script, or on a machine where the MCP isn't installed.
Look up real-estate listings, property details, market reports, and your saved homes/searches on Redfin via MCP. Triggers on phrases like "find homes on redfin in", "redfin property details for", "show my saved redfin homes", "what's my saved redfin search seeing", "what does redfin say about", "redfin market report for", or any request involving Redfin properties, prices, or your saved Redfin activity. Requires redfin-mcp installed and the fetchproxy extension active (see Setup below).
Query compass.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the compass-mcp server — search listings, get property/agent detail, price history, and resolve street addresses through one-shot fetches over a signed-in browser tab. Use when you want Compass data without the MCP, in a script, or on a machine where the MCP isn't installed.
Query OneHome (CoreLogic) — the agent magic-link real-estate portal at portal.onehome.com — from a shell with the fpx CLI (@fetchproxy/cli) instead of running the onehome-mcp server. Resolve the consumer's group / saved-search scope, search shared listings, and read listing detail via one-shot GraphQL calls routed through the signed-in browser tab. Use when you want OneHome data without the MCP, in a script, or on a machine where the MCP isn't installed.