{"id":"7efa8d9b-a04b-4241-aa48-3841d180e847","entityType":"agent","slug":"clawhub-chrischall-redfin","name":"redfin","canonicalUrl":"https://www.xpersona.co/agent/clawhub-chrischall-redfin","canonicalPath":"/agent/clawhub-chrischall-redfin","generatedAt":"2026-10-10T11:51:27.527Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":null},"description":"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 ContextMint Bridge extension active (see Setup below).","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:redfin","sourceUrl":"https://clawhub.ai/chrischall/redfin","homepage":"https://clawhub.ai/chrischall/skills/redfin","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/chrischall/redfin","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/chrischall/skills/redfin","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"redfin technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":null},"stars":null,"forks":null,"downloads":1544,"packageName":null,"latestVersion":"1.2.3","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:57.421Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T08:53:57.422Z","lastCrawledAt":"2026-10-10T08:53:57.421Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T08:53:57.421Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.3","createdAt":"2026-10-09T23:28:39.105Z","changelog":"- Updated SKILL.md documentation for accuracy and detail. - Documented that `redfin_get_saved_homes` and `redfin_get_saved_searches` now return `{ count, homes }` and `{ count, searches }` respectively, with a `note` field when no results are found. - Removed skill-card.md file.","fileCount":3,"zipByteSize":5610},{"version":"1.2.2","createdAt":"2026-10-07T13:38:38.573Z","changelog":"- Removed the file skill-card.md from the skill package. - No changes to functionality or documentation in SKILL.md.","fileCount":3,"zipByteSize":5543},{"version":"1.2.1","createdAt":"2026-10-06T15:39:00.674Z","changelog":"- Removed the skill-card.md file. - No changes to functionality or documentation content.","fileCount":3,"zipByteSize":5508},{"version":"1.2.0","createdAt":"2026-10-06T13:24:26.225Z","changelog":"- Added documentation for new tools: `redfin_sweep_area` (full-area listing sweep) and the `bounds` option for `redfin_search_properties`. - Updated SKILL.md to reflect expanded coverage of map-based queries and bulk-for-sale listing capabilities. - Removed obsolete file: skill-card.md.","fileCount":3,"zipByteSize":5517},{"version":"1.1.8","createdAt":"2026-10-05T17:09:25.755Z","changelog":"- Removed the skill card file (skill-card.md). - No functionality or user-facing features were changed in this version.","fileCount":3,"zipByteSize":5440},{"version":"1.1.7","createdAt":"2026-10-05T02:50:43.767Z","changelog":"- Removed the skill-card.md file. - No user-facing features or behavior changed in this version.","fileCount":3,"zipByteSize":5380},{"version":"1.1.6","createdAt":"2026-10-03T13:58:40.714Z","changelog":"- Removed the skill-card.md file. - No other changes to features or behavior.","fileCount":3,"zipByteSize":5435},{"version":"1.1.5","createdAt":"2026-10-03T01:47:13.441Z","changelog":"- Removed the skill-card.md file. - No user-facing changes to features, usage, or API.","fileCount":3,"zipByteSize":5460}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:redfin","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:redfin` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/redfin before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T11:51:27.523Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-chrischall-redfin/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":null},"readme":"Skill: redfin\n\nOwner: chrischall\n\nSummary: 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 ContextMint Bridge extension active (see Setup below).\n\nTags: latest:1.2.3\n\nVersion history:\n\nv1.2.3 | 2026-10-09T23:28:39.105Z | auto\n\n- Updated SKILL.md documentation for accuracy and detail.\n- Documented that `redfin_get_saved_homes` and `redfin_get_saved_searches` now return `{ count, homes }` and `{ count, searches }` respectively, with a `note` field when no results are found.\n- Removed skill-card.md file.\n\nv1.2.2 | 2026-10-07T13:38:38.573Z | auto\n\n- Removed the file skill-card.md from the skill package.\n- No changes to functionality or documentation in SKILL.md.\n\nv1.2.1 | 2026-10-06T15:39:00.674Z | auto\n\n- Removed the skill-card.md file.\n- No changes to functionality or documentation content.\n\nv1.2.0 | 2026-10-06T13:24:26.225Z | auto\n\n- Added documentation for new tools: `redfin_sweep_area` (full-area listing sweep) and the `bounds` option for `redfin_search_properties`.\n- Updated SKILL.md to reflect expanded coverage of map-based queries and bulk-for-sale listing capabilities.\n- Removed obsolete file: skill-card.md.\n\nv1.1.8 | 2026-10-05T17:09:25.755Z | auto\n\n- Removed the skill card file (skill-card.md).\n- No functionality or user-facing features were changed in this version.\n\nv1.1.7 | 2026-10-05T02:50:43.767Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing features or behavior changed in this version.\n\nv1.1.6 | 2026-10-03T13:58:40.714Z | auto\n\n- Removed the skill-card.md file.  \n- No other changes to features or behavior.\n\nv1.1.5 | 2026-10-03T01:47:13.441Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing changes to features, usage, or API.\n\nv1.1.4 | 2026-09-28T13:56:16.347Z | auto\n\n- Replaced the fetchproxy extension requirement with the ContextMint Bridge extension throughout documentation.\n- Updated setup instructions to reference the ContextMint Bridge installation process and link to its release page.\n- Clarified that ContextMint Bridge is the new name for fetchproxy, provided source and verification details.\n- Updated extension compatibility notes (Safari not yet available).\n- Removed the file skill-card.md.\n\nv1.1.3 | 2026-09-25T15:50:42.847Z | auto\n\n- Removed the file: skill-card.md\n- No changes to features or functionality.\n\nv1.1.2 | 2026-09-23T21:43:38.738Z | auto\n\n- Removed obsolete skill-card.md file.\n- Updated documentation in SKILL.md for accuracy and completeness.\n- Clarified that `redfin_search_properties` now returns an error if listing status is 'sold' or 'for_rent', rather than falling back to 'for_sale'.\n- No functional changes to code—documentation and cleanup only.\n\nv1.1.1 | 2026-09-23T15:39:42.640Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing functionality or feature changes.\n\nv1.1.0 | 2026-09-20T02:53:56.542Z | auto\n\n- Removed the file skill-card.md.\n- No changes to code or feature set; documentation file only deleted.\n\nv1.0.0 | 2026-09-19T13:01:04.178Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing changes to functionality or features.\n- Documentation and server setup instructions remain unchanged.\n\nv0.13.5 | 2026-09-15T19:25:34.520Z | auto\n\n- Removed the skill-card.md file for simplified packaging and distribution.\n- No changes to functionality or user-facing features.\n\nv0.13.4 | 2026-09-14T14:07:41.293Z | auto\n\n- Removed the skill-card.md file.\n- No changes to user-facing features or functionality.\n\nv0.13.3 | 2026-09-10T17:52:02.375Z | auto\n\n- Removed the file skill-card.md.\n- No other changes to features, functionality, or documentation.\n\nv0.13.2 | 2026-09-09T21:16:40.222Z | auto\n\n- Removed the file: skill-card.md.\n- No user-facing feature or functionality changes.\n\nv0.13.1 | 2026-09-05T00:51:22.273Z | auto\n\n**Adds new \"view\" parameter for response customization and updates documentation.**\n\n- Introduced a `view: \"compact\" | \"full\"` parameter to six tools for controlling the response shape, with `\"compact\"` as the new default.\n- Updated SKILL.md with detailed explanation of the `view` parameter, including which fields are stripped or kept and how it affects responses.\n- Documented which tools accept the `view` parameter and clarified its usage and behavior.\n- Removed the now-obsolete skill-card.md file.\n- No functional tool or API changes; update is documentation-focused.\n\nv0.13.0 | 2026-09-04T22:22:48.901Z | auto\n\n- Removed the skill-card.md file.\n- No changes to user-facing features or functionality.\n\nv0.12.0 | 2026-09-02T23:20:40.221Z | auto\n\n- Removed the skill-card.md file.\n- No changes to user-facing features or functionality.\n\nv0.11.0 | 2026-08-29T13:54:37.861Z | auto\n\n- Removed the skill-card.md file.\n- No changes to core functionality or user-facing features.\n- Internal documentation or packaging cleanup.\n\nv0.10.5 | 2026-08-28T21:07:42.438Z | auto\n\n- Removed the skill-card.md file.\n- No user-facing functionality or behavior changes.\n\nv0.10.4 | 2026-08-28T11:35:06.882Z | auto\n\n- Skill name updated from \"redfin-mcp\" to \"redfin\"\n- Documentation in SKILL.md updated to reflect new naming\n- Removed outdated skill-card.md file\n- All features and examples remain unchanged\n\nv0.10.3 | 2026-08-06T00:43:48.782Z | auto\n\n- Removed the unused file skill-card.md.\n- No changes to features or functionality.\n\nv0.10.2 | 2026-07-30T12:54:11.608Z | auto\n\n- Added new skill \"redfin-mcp\" for natural-language access to Redfin listings, property records, market reports, and saved homes/searches via MCP.\n- Requires the redfin-mcp server and the fetchproxy browser extension for authenticated, private API access using your own browser session.\n- Supports multiple tools: property search, detailed property info, market reports, local mortgage calculator, and access to your saved Redfin homes/searches.\n- All tools are read-only; actions like saving homes or searches are not yet implemented.\n\nArchive index:\n\nArchive v1.2.3: 3 files, 5610 bytes\n\nFiles: skill-card.md (1938b), SKILL.md (9182b), _meta.json (125b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL. Pass `bounds` to search a lat/lng box (works inside big cities).\n- **`redfin_sweep_area`** — Every for-sale listing in a lat/lng box, not just one capped page: tiles the map until no tile hits Redfin's 350-home cap and reports whether the sweep is complete. Use it when the user needs the whole inventory; pass `output_path` for large areas.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns `{ count, homes }` (address, price, beds/baths, status per home), with a `note` when none were found.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text. Returns `{ count, searches }`, with a `note` when none were found.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1791588519105\n}\n\nFile v1.2.3:skill-card.md\n\n## Description:\n\nHelps agents find Redfin property listings, property details, market reports, and a signed-in user's saved homes and searches through an MCP server.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome seekers and real-estate professionals use this skill to ask an agent about Redfin listings, property details, local market trends, mortgage estimates, and their saved homes or searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Access to saved homes and searches exposes personal Redfin account data.\n\nMitigation: Use saved-account tools only with the user's consent and limit sharing of their results.\n\nRisk: The MCP server and browser extension use the user's signed-in Redfin session.\n\nMitigation: Verify the npm package and ContextMint Bridge release before installation and use a trusted signed-in session.\n\n## Reference(s):\n\n- [ClawHub redfin release](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp npm package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Natural-language answers based on structured property and market data]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Saved-home and saved-search results require an authenticated Redfin session; property results may include links and prices.]\n\n## Skill Version(s):\n\n1.2.3 (source: server-resolved ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.2: 3 files, 5543 bytes\n\nFiles: skill-card.md (1858b), SKILL.md (9049b), _meta.json (125b)\n\nFile v1.2.2:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL. Pass `bounds` to search a lat/lng box (works inside big cities).\n- **`redfin_sweep_area`** — Every for-sale listing in a lat/lng box, not just one capped page: tiles the map until no tile hits Redfin's 350-home cap and reports whether the sweep is complete. Use it when the user needs the whole inventory; pass `output_path` for large areas.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.2.2\",\n  \"publishedAt\": 1791380318573\n}\n\nFile v1.2.2:skill-card.md\n\n## Description:\n\nLooks up Redfin home listings, property details, market reports, and a user's saved homes and searches through an MCP integration.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome shoppers and real-estate professionals use this skill to explore listings, compare property details and market trends, estimate mortgage payments, and review their own saved Redfin activity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The browser integration can access a signed-in Redfin session and private saved homes and searches.\n\nMitigation: Enable it only if comfortable granting session access, and explicitly request retrieval of saved account data.\n\nRisk: Installation pulls an external MCP package and browser extension.\n\nMitigation: Review the package and extension source or verify release checksums before installing.\n\n## Reference(s):\n\n- [Redfin skill listing](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Natural-language responses with property and market data]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Property and saved-activity tools can return compact or full details.]\n\n## Skill Version(s):\n\n1.2.2 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.1: 3 files, 5508 bytes\n\nFiles: skill-card.md (1769b), SKILL.md (9049b), _meta.json (125b)\n\nFile v1.2.1:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL. Pass `bounds` to search a lat/lng box (works inside big cities).\n- **`redfin_sweep_area`** — Every for-sale listing in a lat/lng box, not just one capped page: tiles the map until no tile hits Redfin's 350-home cap and reports whether the sweep is complete. Use it when the user needs the whole inventory; pass `output_path` for large areas.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.2.1\",\n  \"publishedAt\": 1791301140674\n}\n\nFile v1.2.1:skill-card.md\n\n## Description:\n\nLooks up Redfin listings, property details, market reports, and saved homes and searches through a browser-connected MCP integration.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome shoppers and real-estate researchers use the skill to search for-sale listings, inspect properties and market trends, and retrieve their own saved homes and searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The MCP server and browser extension can use a signed-in Redfin session to read saved homes and searches, which may be personal data.\n\nMitigation: Install only if comfortable granting that access; treat saved activity as personal data and prefer project-local MCP configuration unless global access is intended.\n\n## Reference(s):\n\n- [Redfin skill on ClawHub](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Analysis, Guidance]\n\n**Output Format:** [Markdown text and structured property or market data]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read-only Redfin results; saved homes and searches require a signed-in browser session.]\n\n## Skill Version(s):\n\n1.2.1 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.0: 3 files, 5517 bytes\n\nFiles: skill-card.md (1868b), SKILL.md (9049b), _meta.json (125b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL. Pass `bounds` to search a lat/lng box (works inside big cities).\n- **`redfin_sweep_area`** — Every for-sale listing in a lat/lng box, not just one capped page: tiles the map until no tile hits Redfin's 350-home cap and reports whether the sweep is complete. Use it when the user needs the whole inventory; pass `output_path` for large areas.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1791293066225\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nHelps agents find Redfin property listings and market information and read a user's saved homes and searches through a browser-connected MCP server.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome buyers and real-estate researchers can search for-sale properties, check property details and market reports, estimate mortgage payments, and review their saved Redfin activity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Signed-in browser access can expose private saved homes and searches.\n\nMitigation: Treat saved activity as private account-linked data and share it only with authorized users.\n\nRisk: The MCP server and browser extension access Redfin through the user's signed-in session.\n\nMitigation: Review the referenced npm package and browser extension before installing or enabling them.\n\n## Reference(s):\n\n- [Redfin skill on ClawHub](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp npm package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Text or Markdown property summaries, market figures, and mortgage estimates]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Saved homes and searches require a signed-in Redfin browser session.]\n\n## Skill Version(s):\n\n1.2.0 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.8: 3 files, 5440 bytes\n\nFiles: skill-card.md (2016b), SKILL.md (8705b), _meta.json (125b)\n\nFile v1.1.8:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.8:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.8\",\n  \"publishedAt\": 1791220165755\n}\n\nFile v1.1.8:skill-card.md\n\n## Description:\n\nHelps agents look up Redfin property listings, property details, housing market reports, and a user's saved homes and searches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHomebuyers, real-estate professionals, and other users can ask an agent to find Redfin listings, review property and market information, estimate mortgage payments, and inspect their saved homes or searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The MCP server and browser bridge can access Redfin requests and private saved activity through a signed-in tab.\n\nMitigation: Install only if comfortable with that access; use project-scoped MCP configuration where possible and avoid connecting sessions with saved activity you do not want available to the agent.\n\nRisk: Using an external MCP package and browser extension requires trusting their source.\n\nMitigation: Verify the package and extension source before installing or using them.\n\n## Reference(s):\n\n- [Redfin skill release](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Natural-language responses with listing details, market metrics, saved activity, or mortgage calculations]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Read-only; saved homes and searches require a signed-in Redfin browser tab.]\n\n## Skill Version(s):\n\n1.1.8 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.7: 3 files, 5380 bytes\n\nFiles: skill-card.md (1992b), SKILL.md (8705b), _meta.json (125b)\n\nFile v1.1.7:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.7:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.7\",\n  \"publishedAt\": 1791168643767\n}\n\nFile v1.1.7:skill-card.md\n\n## Description:\n\nHelps agents find Redfin listings, inspect property details and market reports, and retrieve a user's saved homes and searches through an MCP server.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHomebuyers, real-estate professionals, and their assistants use this skill to research Redfin listings and market trends or review their saved Redfin activity. Access to saved homes and searches requires a signed-in browser session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The MCP server and browser extension can access the signed-in Redfin session and personal saved homes or searches.\n\nMitigation: Enable the integration only if comfortable granting that access, and treat saved-account details as personal data.\n\nRisk: The npm package and browser extension execute with access to the browser session.\n\nMitigation: Review their source or release provenance before enabling them.\n\n## Reference(s):\n\n- [redfin-mcp npm package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n- [ContextMint Bridge source](https://github.com/nullnet-app/contextmint-bridge)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Natural-language responses with Redfin listing, property, market, or saved-account details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Property and saved-account responses can omit photo URLs in compact view; full view retains them.]\n\n## Skill Version(s):\n\n1.1.7 (source: server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.6: 3 files, 5435 bytes\n\nFiles: skill-card.md (1986b), SKILL.md (8705b), _meta.json (125b)\n\nFile v1.1.6:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.6:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.6\",\n  \"publishedAt\": 1791035920714\n}\n\nFile v1.1.6:skill-card.md\n\n## Description:\n\nHelps agents find Redfin listings, inspect property details and market reports, estimate mortgage payments, and retrieve saved homes and searches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHomebuyers, real-estate professionals, and other users can ask an agent to research Redfin listings and market data, review their saved activity, and estimate housing costs.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The third-party server and browser extension can access the user's signed-in Redfin session and saved activity.\n\nMitigation: Install them only if trusted, treat saved homes and searches as personal data, and prefer project-level configuration to limit scope.\n\nRisk: Redfin's private endpoints or browser challenges may interrupt lookups or change returned data.\n\nMitigation: Confirm important property and market details on Redfin before relying on them.\n\n## Reference(s):\n\n- [redfin on ClawHub](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Natural-language answers with property, market, saved-search, or mortgage details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Property and saved-activity details depend on the available Redfin browser session; compact responses omit some image URLs.]\n\n## Skill Version(s):\n\n1.1.6 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.5: 3 files, 5460 bytes\n\nFiles: skill-card.md (2170b), SKILL.md (8705b), _meta.json (125b)\n\nFile v1.1.5:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.5\",\n  \"publishedAt\": 1790992033441\n}\n\nFile v1.1.5:skill-card.md\n\n## Description:\n\nHelps agents find Redfin property listings, property details, housing-market reports, and a user's saved homes and searches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome buyers, real-estate researchers, and other users can ask an agent to search Redfin listings, inspect properties and market trends, estimate mortgage payments, or retrieve their own saved homes and searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Signed-in Redfin access can expose private saved homes and searches to the connected tools.\n\nMitigation: Request account-scoped tools only when the user intends to retrieve private Redfin data.\n\nRisk: The MCP package and browser bridge operate through the user's Redfin browser session.\n\nMitigation: Review the npm package and browser extension source or releases before installation, and connect only if comfortable granting session access.\n\n## Reference(s):\n\n- [Redfin skill on ClawHub](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp npm package (linked in skill)](https://www.npmjs.com/package/redfin-mcp)\n- [redfin-mcp source (linked in skill; not verified import provenance)](https://github.com/chrischall/redfin-mcp)\n- [ContextMint Bridge releases (linked in skill)](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Configuration instructions, Guidance]\n\n**Output Format:** [Markdown guidance and structured Redfin tool results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Listing details, market metrics, mortgage calculations, and, when requested, saved-account data; results depend on Redfin availability and browser sign-in.]\n\n## Skill Version(s):\n\n1.1.5 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.4: 3 files, 5359 bytes\n\nFiles: skill-card.md (1895b), SKILL.md (8705b), _meta.json (125b)\n\nFile v1.1.4:SKILL.md\n\n---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.4\",\n  \"publishedAt\": 1790603776347\n}\n\nFile v1.1.4:skill-card.md\n\n## Description:\n\nLook up Redfin listings, property details, market reports, and your saved homes and searches through an MCP server.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome seekers and property researchers can ask an agent to search Redfin listings, examine properties and market trends, estimate mortgage payments, or review their saved homes and searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A connected agent can read saved homes and searches from your signed-in Redfin session.\n\nMitigation: Use saved-data tools only when you intend to share that account data with the agent session.\n\nRisk: Using the skill requires installing an MCP package and a browser extension with access to the Redfin session.\n\nMitigation: Review the package and extension source or verify the extension release checksums before installation.\n\n## Reference(s):\n\n- [Redfin skill on ClawHub](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes listing details, market metrics, mortgage calculations, and, when authorized, saved homes and searches. Compact responses omit some photo URLs.]\n\n## Skill Version(s):\n\n1.1.4 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.3: 3 files, 5144 bytes\n\nFiles: skill-card.md (1809b), SKILL.md (8252b), _meta.json (125b)\n\nFile v1.1.3:SKILL.md\n\n---\nname: redfin\ndescription: 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).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the fetchproxy extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the fetchproxy extension (one-time, shared across all fetchproxy-based MCPs)\n\n```bash\ngit clone https://github.com/chrischall/fetchproxy\ncd fetchproxy\nnpm ci\nnpm --workspace=@fetchproxy/extension-chrome run build\n```\n\nThen in Chrome: `chrome://extensions` → Developer mode → Load unpacked → pick `packages/extension-chrome/dist/`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL.\n- **`redfin_get_property(view?)`** — Full property record by `url` (Redfin homedetails URL or path), `property_id` alone (resolved internally by following Redfin's `/home/<id>` redirect to the canonical slug, then `initialInfo`), or `property_id` + `listing_id` (fastest — skips resolution). Two-round-trip API: `initialInfo` resolves the URL to IDs, then `aboveTheFold` fetches the data. Returns address, beds/baths, sqft, year built, price, status, days on market, primary photo.\n- **`redfin_get_market_report`** — Median sale/list prices, price per sqft, days on market, year-over-year change, homes sold/on market for a Redfin region. Provide either `location` (free-text) or `region_id` + `region_type`. All metrics returned as formatted strings (e.g. `\"$870K\"`, `\"+2.4%\"`).\n- **`redfin_calculate_mortgage`** — Local PITI calculator. No network call. Provide home price, interest rate, optional down payment / taxes / insurance / HOA / PMI; returns a full monthly breakdown.\n\n### Signed-in user data (the unique value vs. paid scrapers)\n\n- **`redfin_get_saved_homes(view?)`** — Your favorited homes, flattened across all collections. Returns address, price, beds/baths, status.\n- **`redfin_get_saved_searches(view?)`** — Your saved searches with region URLs and display text.\n\n## Response shape (`view`)\n\nSix tools take `view: \"compact\" | \"full\"`, and **`compact` is the default** —\nthe slim rung arrives without being asked for, because an efficiency a caller\nhas to know about and request is one that usually is not requested:\n\n`redfin_get_property`, `redfin_get_saved_homes`, `redfin_get_saved_searches`,\n`redfin_bulk_get`, `redfin_compare_properties`, `redfin_resolve_addresses`.\n\n**Compact strips image URLs, and claims no field projection.** This server\nhands Redfin's payloads back close to verbatim and holds no captured fixture or\ndocumented field list for them, so nothing here can honestly say which of\nRedfin's fields matter and which are noise. Stripping media needs no such\nknowledge and is SUBTRACTIVE, so it cannot lose a field nobody knew about —\nwhich is what an invented field list would risk, returning a record with holes\nin it that still reads like a verified answer. Do not expect a named field set\nfrom compact; expect the same record minus picture URLs.\n\nTwo photo fields are decided by name rather than left to the blind rule, and\nthe distinction is worth knowing because it looks arbitrary until you see why:\n\n- **`image_url` and `thumbnail_url` are KEPT.** On a saved-home card this\n  server CONSTRUCTS them from `mlsId` + `dataSourceId` — they are derived with\n  knowledge of Redfin's URL scheme, not incidental decoration — and the\n  `photo_count` beside them is your cue that `redfin_get_property_photos` has\n  more.\n- **`primary_photo_url` is DROPPED.** `redfin_get_property` reads it straight\n  off Redfin's `atf.mediaBrowserInfo` — an upstream CDN URL carried through\n  verbatim, which is exactly the shape media stripping exists to remove. Naming\n  it is what makes the removal deterministic: the blind rule catches it today\n  only because Redfin's URLs happen to end in `.jpg`, so a signed or\n  extension-less URL would silently start surviving compact.\n\n`view: \"full\"` returns Redfin's payload untouched. There is **no `raw` rung**:\n`full` already IS the untouched payload, so a third value could only alias it.\n\nThe other fifteen tools take no `view`, and not for one blanket reason:\n\n- **`redfin_search_properties`, `redfin_get_market_report`,\n  `redfin_get_price_history`, `redfin_get_comparable_rentals`,\n  `redfin_get_climate_risk` (and its bulk/baseline siblings), and\n  `redfin_get_by_address`** each build their answer through a hand-written\n  formatter — `formatHome`, `formatMetric`, `formatPriceEvent`,\n  `formatRentalComp`, `formatClimate`. The response is already field-picked\n  with knowledge of the payload and carries no pass-through CDN URL, so a blind\n  rung run over it could only overrule a grounded choice with an un-grounded\n  one.\n- **`redfin_get_property_photos`** is the documented way media stripping can be\n  misused: its PRODUCT is the `photoUrls` bundle. Compacting here would not\n  shrink the answer, it would empty it.\n- **`redfin_calculate_mortgage` and `redfin_calculate_affordability`** make no\n  network call at all. There is no upstream payload — the response is\n  arithmetic this server did.\n- **`redfin_register_session`, `redfin_set_active_session` and\n  `redfin_get_session_context`** are session bookkeeping: an id and a status.\n- **`redfin_healthcheck`** answers reachability and auth.\n\n## Trigger examples\n\n- \"Find me 2-bedroom condos under $1.5M in Brooklyn on Redfin\" → `redfin_search_properties`\n- \"What does Redfin say about 42 Monroe St in Brooklyn?\" → `redfin_get_property`\n- \"Pull up my favorited homes on Redfin\" → `redfin_get_saved_homes`\n- \"What's new on my saved Redfin searches?\" → `redfin_get_saved_searches`\n- \"Brooklyn housing market trends on Redfin\" → `redfin_get_market_report`\n- \"Monthly payment on a $500k home, 20% down, 6.5% rate\" → `redfin_calculate_mortgage`\n\n## Gotchas\n\n- **Sign-in required for saved-* tools.** If the user isn't signed into redfin.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way.\n- **AWS WAF challenge.** Redfin occasionally serves a WAF challenge to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.\n- **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.\n- **`for_rent` / `sold` listing statuses** map to entirely different Redfin URL paths (`/apartments-for-rent/...`, `/recently-sold`). `redfin_search_properties` supports `for_sale` only — `sold` / `for_rent` return an error rather than for-sale results.\n- **No equivalent to Zillow's Zestimate history tool.** Redfin's Redfin Estimate is exposed as a current scalar inside `redfin_get_property`; there's no historical-series endpoint yet.\n\nFile v1.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.1.3\",\n  \"publishedAt\": 1790351442847\n}\n\nFile v1.1.3:skill-card.md\n\n## Description:\n\nHelps agents look up Redfin listings, property details, market reports, and a user's saved homes and searches.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHomebuyers, real-estate professionals, and other users can ask an agent to find Redfin listings, review property and market information, and check their saved homes or searches when signed in.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Access to a signed-in Redfin session can expose saved homes and searches.\n\nMitigation: Enable this access only if comfortable sharing that activity; remove the MCP configuration or extension when no longer needed.\n\nRisk: The external MCP package and browser extension require trust before installation.\n\nMitigation: Review the npm package and extension source before installing.\n\n## Reference(s):\n\n- [redfin-mcp package](https://www.npmjs.com/package/redfin-mcp)\n- [redfin-mcp source](https://github.com/chrischall/redfin-mcp)\n- [fetchproxy browser extension source](https://github.com/chrischall/fetchproxy)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results can include listings, property details, market summaries, and signed-in saved activity; compact responses omit some photo URLs.]\n\n## Skill Version(s):\n\n1.1.3 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: redfin Owner: chrischall Summary: 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 ","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: redfin\ndescription: 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 ContextMint Bridge extension active (see Setup below).\n---\n\n# redfin-mcp\n\nMCP server for Redfin — natural-language access to listings, property records, market reports, and your saved homes/searches. Routes through your signed-in redfin.com tab via the fetchproxy browser extension, so AWS WAF / DataDome see a real browser session instead of a Node process.\n\n- **npm:** [npmjs.com/package/redfin-mcp](https://www.npmjs.com/package/redfin-mcp)\n- **Source:** [github.com/chrischall/redfin-mcp](https://github.com/chrischall/redfin-mcp)\n\n> ⚠️ Redfin does not publish a public consumer API. This server uses the same private `/stingray/...` endpoints the redfin.com web app calls, dispatched through your own signed-in browser tab via the ContextMint Bridge extension. Use at your own discretion.\n\n## Setup\n\n### 1. Install redfin-mcp\n\n`.mcp.json` (project) or `~/.claude/mcp.json` (global):\n\n```json\n{\n  \"mcpServers\": {\n    \"redfin\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"redfin-mcp\"]\n    }\n  }\n}\n```\n\n### 2. Install the ContextMint Bridge extension (one-time, shared across all fetchproxy-based MCPs)\n\nGet it from the [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases):\n\n- **Chrome:** download the Chrome zip, unzip it, then `chrome://extensions` → Developer mode → Load unpacked → pick the unzipped folder.\n- **Safari:** not available yet (it will ship inside the ContextMint app, which has no public download) — use Chrome for now.\n\nContextMint Bridge is the fetchproxy extension renamed, same maintainer (see https://github.com/chrischall/fetchproxy#extension); source at https://github.com/nullnet-app/contextmint-bridge — build it yourself or verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`.\n\n### 3. Open redfin.com and sign in.\n\nThat's it. No API keys, no env vars.\n\n## Tools\n\n### Public data\n\n- **`redfin_search_properties`** — Search by location + filters (price, beds/baths min, home type). Resolves the location via Redfin's autocomplete then queries the `/stingray/api/gis` endpoint. Returns matching listings with price, beds/baths, sqft, year built, address, and the Redfin home URL. Pass `bounds` to search a lat/lng box (works inside big cities).\n- **`redfin_sweep_area`** — Every for-sale listing in a lat/lng box, not just one capped page: tiles the map until no tile hits Redfin's 350-home cap and reports whether the sweep is complete. Use it when the user needs the whole inventory; pass `output_path` for large ar"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn700jq4sjtf2anb0rk3ft4p7n856872\",\n  \"slug\": \"redfin\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1791588519105\n}"},{"path":"skill-card.md","content":"## Description:\n\nHelps agents find Redfin property listings, property details, market reports, and a signed-in user's saved homes and searches through an MCP server.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chrischall](https://clawhub.ai/user/chrischall)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nHome seekers and real-estate professionals use this skill to ask an agent about Redfin listings, property details, local market trends, mortgage estimates, and their saved homes or searches.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Access to saved homes and searches exposes personal Redfin account data.\n\nMitigation: Use saved-account tools only with the user's consent and limit sharing of their results.\n\nRisk: The MCP server and browser extension use the user's signed-in Redfin session.\n\nMitigation: Verify the npm package and ContextMint Bridge release before installation and use a trusted signed-in session.\n\n## Reference(s):\n\n- [ClawHub redfin release](https://clawhub.ai/chrischall/skills/redfin)\n- [redfin-mcp npm package](https://www.npmjs.com/package/redfin-mcp)\n- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Natural-language answers based on structured property and market data]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Saved-home and saved-search results require an authenticated Redfin session; property results may include links and prices.]\n\n## Skill Version(s):\n\n1.2.3 (source: server-resolved ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1266,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:53:57.422Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:51:27.527Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}