zillow-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
+ "name": "zillow-mcp",
4
+ "owner": {
5
+ "name": "Chris Hall",
6
+ "email": "chris.c.hall@gmail.com"
7
+ },
8
+ "metadata": {
9
+ "description": "MCP server for Zillow — search listings, fetch property details, Zestimate history, saved searches & homes, market reports. Routes through the user's signed-in zillow.com tab via the fetchproxy browser extension to dodge bot detection.",
10
+ "version": "0.1.0"
11
+ },
12
+ "plugins": [
13
+ {
14
+ "name": "zillow-mcp",
15
+ "displayName": "Zillow",
16
+ "source": "./",
17
+ "description": "MCP server for Zillow — search listings, get property details, Zestimate history, saved searches & homes, market reports",
18
+ "version": "0.1.0",
19
+ "author": {
20
+ "name": "Chris Hall"
21
+ },
22
+ "homepage": "https://github.com/chrischall/zillow-mcp",
23
+ "repository": "https://github.com/chrischall/zillow-mcp",
24
+ "license": "MIT",
25
+ "keywords": [
26
+ "zillow",
27
+ "real-estate",
28
+ "property",
29
+ "zestimate",
30
+ "housing",
31
+ "mcp"
32
+ ],
33
+ "category": "productivity"
34
+ }
35
+ ]
36
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "zillow-mcp",
3
+ "displayName": "Zillow",
4
+ "version": "0.1.0",
5
+ "description": "Zillow real-estate access for Claude — search listings, get property details, Zestimate history, your saved searches & homes, market reports",
6
+ "author": {
7
+ "name": "Chris Hall",
8
+ "email": "chris.c.hall@gmail.com"
9
+ },
10
+ "homepage": "https://github.com/chrischall/zillow-mcp",
11
+ "repository": "https://github.com/chrischall/zillow-mcp",
12
+ "license": "MIT",
13
+ "keywords": [
14
+ "zillow",
15
+ "real-estate",
16
+ "property",
17
+ "zestimate",
18
+ "housing",
19
+ "mcp"
20
+ ],
21
+ "skills": "./SKILL.md",
22
+ "mcp": "./.mcp.json"
23
+ }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "zillow": {
4
+ "command": "node",
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/dist/bundle.js"]
6
+ }
7
+ }
8
+ }
package/README.md ADDED
@@ -0,0 +1,103 @@
1
+ # zillow-mcp
2
+
3
+ Zillow real-estate access as an MCP server for Claude — search listings, fetch property details, Zestimate history, your saved searches & homes, and market reports via natural language.
4
+
5
+ > ⚠️ Zillow does not publish a public consumer API. The official [Bridge API](https://www.bridgeinteractive.com/developers/bridge-api/) is gated to MLS partners. This server uses the same private endpoints the zillow.com web app uses, routed through your own signed-in browser tab via the [fetchproxy](https://github.com/chrischall/fetchproxy) extension. Akamai / PerimeterX see a real browser session, not a Node process — but you should still treat this as informal use of Zillow's website. Use at your own discretion.
6
+
7
+ ## Why this exists
8
+
9
+ The four existing Zillow MCPs all sit on one of two foundations:
10
+
11
+ - The **Bridge API** — requires MLS membership, IDX vendor relationship, or "approved technology partnership" (10+ business-day approval). Consumers can't get in.
12
+ - A **paid scraper** (RapidAPI, Apify) — adds a third party to the trust path and rate-limits.
13
+
14
+ None of them can see what *you* have saved, favorited, or recently viewed — because both Bridge and third-party scrapers are out-of-session. zillow-mcp uses your already-signed-in zillow.com tab.
15
+
16
+ ## Tools
17
+
18
+ | Tool | Purpose | Auth-scoped |
19
+ | --- | --- | :---: |
20
+ | `zillow_search_properties` | Search listings by location and filters | |
21
+ | `zillow_get_property` | Full record for a zpid (price, Zestimate, beds, schools, history) | |
22
+ | `zillow_get_zestimate_history` | Time series of Zestimate values | |
23
+ | `zillow_get_saved_searches` | Your saved searches with new-listing counts | ✓ |
24
+ | `zillow_get_saved_homes` | Your favorited homes | ✓ |
25
+ | `zillow_get_market_report` | Median price, days on market, ZHVI for a region | |
26
+ | `zillow_calculate_mortgage` | Local PITI calculator (no network) | |
27
+
28
+ ## Install
29
+
30
+ ### Option A — npx (after publishing)
31
+
32
+ Add to `.mcp.json`:
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "zillow": {
38
+ "command": "npx",
39
+ "args": ["-y", "zillow-mcp"]
40
+ }
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### Option B — from source
46
+
47
+ ```bash
48
+ git clone https://github.com/chrischall/zillow-mcp
49
+ cd zillow-mcp
50
+ npm install
51
+ npm run build
52
+ ```
53
+
54
+ ```json
55
+ {
56
+ "mcpServers": {
57
+ "zillow": {
58
+ "command": "node",
59
+ "args": ["/path/to/zillow-mcp/dist/bundle.js"]
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ ### One-time browser setup
66
+
67
+ zillow-mcp talks to your browser through the [fetchproxy](https://github.com/chrischall/fetchproxy) extension, which is shared across every fetchproxy-based MCP (resy-mcp, opentable-mcp, …). Install it once:
68
+
69
+ ```bash
70
+ git clone https://github.com/chrischall/fetchproxy
71
+ cd fetchproxy
72
+ npm ci
73
+ npm --workspace=@fetchproxy/extension-chrome run build
74
+ ```
75
+
76
+ Then in Chrome: `chrome://extensions` → toggle Developer mode → Load unpacked → pick `packages/extension-chrome/dist/`.
77
+
78
+ Open zillow.com and sign in. That's all the auth this server needs.
79
+
80
+ ## How it works
81
+
82
+ ```
83
+ ┌────────────────┐ stdio ┌──────────────────┐ WS ┌──────────────────┐ fetch() ┌─────────────┐
84
+ │ MCP client │◀────────▶│ dist/bundle.js │◀──────▶│ fetchproxy │◀────────────▶│ zillow.com │
85
+ │ (Claude, etc.) │ │ (Zillow MCP) │ :37149 │ extension │ (real TLS, │ (your tab) │
86
+ └────────────────┘ └──────────────────┘ │ (separate) │ cookies) └─────────────┘
87
+ ```
88
+
89
+ The MCP server runs in Node, but every HTTP call to zillow.com is dispatched into your live browser tab through the fetchproxy extension. Akamai sees a real browser making a real request from a real session — `_abck`, TLS fingerprint, cookies all match the page that's already on screen. No headless browser, no impersonation, no proxy farm.
90
+
91
+ ## Commands
92
+
93
+ ```bash
94
+ npm test # vitest, mocked transport, no network
95
+ npm run test:watch
96
+ npm run test:coverage
97
+ npm run build # tsc --noEmit + esbuild bundle → dist/bundle.js
98
+ npm run dev # node dist/bundle.js (after build)
99
+ ```
100
+
101
+ ## License
102
+
103
+ MIT
package/SKILL.md ADDED
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: zillow-mcp
3
+ description: Look up real-estate listings, property details, Zestimates, saved searches/homes, and market reports on Zillow via MCP. Triggers on phrases like "find homes in", "what's the Zestimate for", "show my saved Zillow homes", "what's my saved Zillow search seeing", "what does Zillow say about", "Zillow market report for", or any request involving Zillow properties, prices, or your saved Zillow activity. Requires zillow-mcp installed and the fetchproxy extension active (see Setup below).
4
+ ---
5
+
6
+ # zillow-mcp
7
+
8
+ MCP server for Zillow — natural-language access to listings, property records, Zestimates, your saved searches/homes, and market reports. Routes through your signed-in zillow.com tab via the fetchproxy browser extension, so Akamai sees a real browser session instead of a Node process.
9
+
10
+ - **npm:** [npmjs.com/package/zillow-mcp](https://www.npmjs.com/package/zillow-mcp)
11
+ - **Source:** [github.com/chrischall/zillow-mcp](https://github.com/chrischall/zillow-mcp)
12
+
13
+ > ⚠️ Zillow does not publish a public consumer API. This server uses the same private endpoints the zillow.com web app calls, dispatched through your own signed-in browser tab via the fetchproxy extension. Use at your own discretion.
14
+
15
+ ## Setup
16
+
17
+ ### 1. Install zillow-mcp
18
+
19
+ `.mcp.json` (project) or `~/.claude/mcp.json` (global):
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "zillow": {
25
+ "command": "npx",
26
+ "args": ["-y", "zillow-mcp"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ ### 2. Install the fetchproxy extension (one-time, shared across all fetchproxy-based MCPs)
33
+
34
+ ```bash
35
+ git clone https://github.com/chrischall/fetchproxy
36
+ cd fetchproxy
37
+ npm ci
38
+ npm --workspace=@fetchproxy/extension-chrome run build
39
+ ```
40
+
41
+ Then in Chrome: `chrome://extensions` → Developer mode → Load unpacked → pick `packages/extension-chrome/dist/`.
42
+
43
+ ### 3. Open zillow.com and sign in.
44
+
45
+ That's it. No API keys, no env vars.
46
+
47
+ ## Tools
48
+
49
+ ### Public data
50
+
51
+ - **`zillow_search_properties`** — Search by location + filters (price, beds, home type, status). Returns matching listings with price, Zestimate, beds/baths, sqft, image, and homedetails URL.
52
+ - **`zillow_get_property`** — Full property record by `zpid` or homedetails URL. Returns address, price, Zestimate, rent Zestimate, beds, baths, sqft, year built, schools, price history.
53
+ - **`zillow_get_zestimate_history`** — Time series of Zestimate values for a property.
54
+ - **`zillow_get_market_report`** — Median sale/list/rent price, days on market, inventory, ZHVI for a Zillow region (e.g. `/home-values/6181/brooklyn-ny/`).
55
+ - **`zillow_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.
56
+
57
+ ### Signed-in user data (the unique value vs. Bridge-API competitors)
58
+
59
+ - **`zillow_get_saved_searches`** — Your saved searches, with new-listing counts and notification frequency.
60
+ - **`zillow_get_saved_homes`** — Homes you've favorited.
61
+
62
+ ## Trigger examples
63
+
64
+ - "Find me 2-bedroom condos under $1.5M in Brooklyn" → `zillow_search_properties`
65
+ - "What's the Zestimate on 123 Main St?" → resolve to zpid, then `zillow_get_property`
66
+ - "How has the Zestimate for zpid 12345 changed?" → `zillow_get_zestimate_history`
67
+ - "What's new on my saved Zillow searches?" → `zillow_get_saved_searches`
68
+ - "Pull up my saved homes on Zillow" → `zillow_get_saved_homes`
69
+ - "Brooklyn real-estate market trends" → `zillow_get_market_report`
70
+ - "Monthly payment on a $500k home, 20% down, 6.5% rate" → `zillow_calculate_mortgage`
71
+
72
+ ## Gotchas
73
+
74
+ - **Sign-in required for saved-* tools.** If the user isn't signed into zillow.com in the bridged Chrome tab, those tools fail with `SessionNotAuthenticatedError`. Public tools work either way, but signed-in sessions are more reliable against captcha walls.
75
+ - **Captcha interstitial.** Zillow occasionally serves a captcha to fresh sessions. Solving it in the Chrome tab once unblocks subsequent fetches.
76
+ - **No write surface yet.** All tools are read-only. Saving a home / search / contact form are not implemented in v0.1.