mcpField
Z
zillow-mcp

zillow-mcp

本地服务
github.com/chrischall商业与营销0今天更新

关于 zillow-mcp

zillow-mcp 是借助已登录的 Zillow 浏览器会话搜索房产并读取房源数据的 MCP 服务,涵盖房源、历史、市场和已保存房屋工具,也提供本地购房能力计算;请求经 ContextMint Bridge 扩展转发。

主要功能

  1. 01搜索并枚举房源
  2. 02获取房产、照片和价格历史
  3. 03比较房产并查看市场报告
  4. 04访问已保存的搜索和收藏房屋
  5. 05计算房贷、购房能力及租买盈亏点

适用场景

  1. 01按地点、价格或房屋类型查找房源
  2. 02比较候选房产及其历史记录
  3. 03查看收藏房屋和新房源数量
  4. 04估算房贷支出或租买盈亏点

MCP 相关

向 MCP 客户端提供 Zillow 搜索、房产、市场及账户范围内的工具。Zillow 请求通过 ContextMint Bridge 扩展,经用户已登录的浏览器标签页发送。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-zillow": {
"command": "npx",
"args": [
"-y",
"zillow-mcp"
],
"env": {
"ZILLOW_WS_PORT": "<ZILLOW_WS_PORT>",
"ZILLOW_COMMUNITIES_FILE": "<ZILLOW_COMMUNITIES_FILE>",
"ZILLOW_LOCALITY_ALIASES_FILE": "<ZILLOW_LOCALITY_ALIASES_FILE>",
"ZILLOW_OUTPUT_DIR": "<ZILLOW_OUTPUT_DIR>",
"ZILLOW_DEBUG": "<ZILLOW_DEBUG>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y zillow-mcp
需要配置的环境变量
ZILLOW_WS_PORTOverride the fetchproxy WebSocket port (default 37149).
ZILLOW_COMMUNITIES_FILEPath to a JSON file containing a string array that overrides the default community vocabulary used for feature extraction.
ZILLOW_LOCALITY_ALIASES_FILEPath to a JSON file of [a, b] locality pairs (each registered both ways) that overrides the default locality aliases used by the address resolver.
ZILLOW_OUTPUT_DIRDirectory zillow_sweep_area writes its optional output_path JSON files into (default ~/Downloads/zillow-mcp); paths outside it are refused.
ZILLOW_DEBUGSet to 1 for verbose fetchproxy transport logging to stderr.
FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmzillow-mcp1.2.5

工具

21

收录的工具列表 · 更新于 今天

参数类型必填说明
viewenum否响应格式:"compact"(默认)会省略响应中其他位置已包含的字段;"full" 会返回此服务端支持的所有字段。compact 会从响应中移除图片/头像 URL;"full" 会原样返回 Zillow 的负载数据。不支持字段投影:此服务端未验证哪些 Zillow 字段重要,自行设定可能会误删调用方所需字段。compact | full
limitinteger否返回的房源数量上限(默认 40,最多 1000)。当数量 > 40 且 `auto_paginate` 为 true(默认值)时,工具会在服务端遍历 Zillow 的分页并汇总页面,直到达到 `limit`、返回空页面或某页未新增房源。Zillow 将每次搜索响应限制为约 40 条房源(issue #54)。
statusenum否房源状态。默认值为 for_sale。for_sale | for_rent | sold
beds_mininteger否
locationstring是自由文本位置:城市、ZIP、社区或地址(例如 "Brooklyn, NY"、"94110"、"Park Slope")
baths_mininteger否
price_maxinteger否
price_mininteger否
home_typesarray否限定为一种或多种房屋类型。
map_boundsobject否可选的地图视口(经纬度边界框),与位置取交集——用于将房源密集的市场划分为多个区域。
map_bounds.eastnumber是
map_bounds.westnumber是
map_bounds.northnumber是
map_bounds.southnumber是
include_metaboolean否为 true 时,返回 {meta, results}:meta 包含 Zillow 自身的 total_result_count、已获取的页面数、被筛选条件/房屋类型校验排除的房源,以及 `truncated`(匹配结果多于实际返回数量)。
auto_paginateboolean否为 true(默认值)时,聚合 Zillow 的分页搜索响应,直到达到 `limit`。传入 `false` 可禁用分页——仅获取一个 Zillow 页面(约 40 条房源)。

详细介绍

zillow-mcp

CI npm license

将 Zillow 房地产服务接入为 Claude 的 MCP 服务——通过自然语言搜索房源、获取房产详情、Zestimate 历史记录、已保存的搜索和房屋,以及市场报告。

⚠️ Zillow 不提供面向公众的消费者 API。官方 Bridge API 仅向 MLS 合作伙伴开放。此服务使用与 zillow.com 网页应用相同的私有端点,并通过 ContextMint Bridge 浏览器扩展,经由你已登录的浏览器标签页发送请求。每个请求都以你现有会话的身份发出——使用你的 Cookie、TLS 和 JS 上下文——就像你亲自在浏览器中点击一样。请将此服务视为对 Zillow 网站的非正式使用。使用风险自负。

为什么要开发它

现有的四个 Zillow MCP 服务都基于以下两种方式之一:

  • Bridge API——需要 MLS 会员资格、IDX 供应商关系或“获批的技术合作伙伴”身份(审批需要 10 个以上工作日)。消费者无法使用。
  • 付费爬虫(RapidAPI、Apify)——让第三方加入信任链路,并限制请求速率。

它们都无法查看你已保存、收藏或最近浏览的内容——因为 Bridge 和第三方爬虫都不在你的登录会话中。zillow-mcp 使用的是你已登录的 zillow.com 标签页。

工具

工具用途按身份验证范围限定
zillow_search_properties按位置、状态、价格范围、卧室/浴室数量和房屋类型搜索房源。可选的 map_bounds 视口;include_meta 会报告 Zillow 自身的总数与已获取数量,以便查看结果是否被截断
zillow_sweep_area穷尽枚举某个区域:递归划分地图,直到所有图块都未被截断;去重,并提供完整性摘要和数据偏差警告;可选输出 JSON 文件
zillow_get_property获取 zpid 的完整记录(价格、Zestimate、卧室、学校、社区、价格历史)
zillow_get_by_address将自由文本地址(可选城市/州/邮政编码)解析为 Zillow zpid 和规范 URL
zillow_resolve_addresses批量将多个自由文本地址(或结构化行)解析为 zpid 和规范 URL
zillow_bulk_get一次获取多个 zpid/URL 的完整记录,并处理部分结果和机器人拦截
zillow_get_property_photos房屋的完整照片集——homedetails 页面中嵌入的每张图片,包含多种宽度的 jpeg 和 webp 版本及说明
zillow_get_zestimate_historyZestimate 值的时间序列(以及可用时的租金 Zestimate)
zillow_get_price_history房源历史记录(Listed/Sold/Pending 等),包含价格和上市天数
zillow_get_tax_history年度税务记录历史——逐年缴纳的税款和评估价值
zillow_compare_properties并排比较最多 12 套房产,并提供对齐的摘要表格
zillow_calculate_affordability本地购房负担能力计算器——根据收入、DTI 和利率计算最高购买价格
zillow_estimate_rent_vs_buy本地租房与买房盈亏平衡计算,考虑升值和机会成本
zillow_get_saved_searches你保存的搜索,包含新房源数量和通知频率✓
zillow_get_saved_homes你收藏的房屋,包含当前价格、Zestimate 和主照片✓
zillow_get_market_report某个区域的销售/挂牌/租金中位数、上市天数、库存和 ZHVI
zillow_calculate_mortgage本地 PITI 计算器——本金+利息、税费、保险、HOA、PMI(不联网)
zillow_healthcheck通过桥接服务往返访问公开的 Zillow URL,以定位桥接服务/扩展程序/Zillow 端故障
zillow_register_session在本地会话注册表中记录已登录标签页所属的 Zillow 账户(仅作标签)
zillow_set_active_session将已注册的会话标记为当前账户标签——不会更改请求所使用的账户(每次调用都会通过已登录的浏览器标签页进行)
zillow_get_session_context检查活动会话和已注册会话列表
输入和输出约定

工具输入和输出的变更,方便你调整调用这些工具的脚本或提示词:

  • zillow_compare_properties 现在会像 zillow_bulk_get 一样报告遇到机器人拦截的行。 对于 Zillow 持续通过验证码拦截的行,现在会返回 error_kind: "bot_challenge",而不是通用错误类型,方便你将其与房源缺失区分开来。响应还可能包含 blocked(仍被拦截的行数)、retry_after_s(重试这些行前应等待的秒数)和 pending(未能在总截止时间前完成的行数;这些行的 error_kind 为 "pending")。

  • zpid 必须是数字。 所有接收 zpid 的工具(zillow_get_property、zillow_bulk_get、zillow_compare_properties、zillow_get_property_photos、zillow_get_zestimate_history、zillow_get_price_history、zillow_get_tax_history)都接受正整数,或仅包含数字的字符串,例如 "12345"。任何其他字符串,例如 "12345_zpid" 或 URL,现在都会被判定为无效输入。请改为在 url 或 urls 字段中传入房源详情页 URL。

  • 请传入 zpids 或 urls,不要同时传入两者。 zillow_bulk_get 和 zillow_compare_properties 现在会在一次调用同时包含两个列表时返回错误。此前,urls 列表会被静默忽略。如需获取这两类数据,请分两次调用。

条款确认

使用此 MCP 服务,即表示你确认并同意以下内容:

1. 此服务访问的是你自己的 Zillow 会话。 每个请求都会通过 ContextMint Bridge 扩展,经由你自己的浏览器标签页(无论是否已登录)发出。它不会,也无法访问其他人的账户。

2. Zillow 的使用条款适用于你对本服务的使用,就像它们适用于你直接使用 zillow.com 一样。与此最相关的条款如下:

未经我们明确书面许可,你不得出于任何目的使用任何机器人、蜘蛛程序、抓取工具或其他自动化方式访问服务……也不得执行自动化查询(包括屏幕和数据库抓取、蜘蛛程序、机器人、爬虫、绕过验证码或类似防护措施)。

每次调用此服务中的工具,即表示你同意这些条款——维护者于 2026-05-23 阅读了这些条款。Zillow 的条款广泛禁止未经书面许可的自动访问;这是一个非官方工具,Zillow 并未授予其使用许可。

3. 仅限个人非商业用途。 本项目与 Zillow Group 无关联,也未获其认可、赞助或与其合作。它是一款个人自动化工具,用于操作与您手动访问时相同的 Zillow 网站——一次搜索、你自己收藏的房屋、你自己的市场报告。请勿用它批量提取房源、训练模型、填充竞争对手的房地产产品,或用于任何商业目的。

4. 不保证稳定性。 此服务会读取私有内部端点(/async-create-search-page-state/、__NEXT_DATA__ 数据块、/myzillow/...),Zillow 可能随时更改这些端点。服务可能会出故障,也可能停止工作。这是设计如此——这些接口并非由 Zillow 维护来为我们提供支持。

5. 你须对因使用此服务访问 Zillow 而产生的任何后果承担全部责任——包括限流、账户警告、暂停使用、IP 封禁、验证码拦截,或 Zillow Group 采取的任何执法行动。如果 Zillow 对你的使用提出异议,请停止使用此服务。

本节是维护者本着诚意对相关条款所作的摘要;它不构成法律建议,也不会修改或取代 Zillow 的实际服务条款。

安装

选项 A — npx(发布后)

添加到 .mcp.json:

{
  "mcpServers": {
    "zillow": {
      "command": "npx",
      "args": ["-y", "zillow-mcp"]
    }
  }
}
选项 B — 从源码安装
git clone https://github.com/chrischall/zillow-mcp
cd zillow-mcp
npm install
npm run build
{
  "mcpServers": {
    "zillow": {
      "command": "node",
      "args": ["/path/to/zillow-mcp/dist/bundle.js"]
    }
  }
}
一次性浏览器设置

zillow-mcp 通过 ContextMint Bridge 扩展与浏览器通信,该扩展由所有基于 fetchproxy 的 MCP(resy-mcp、opentable-mcp、……)共用。从 ContextMint Bridge releases 安装一次即可:

  • Chrome: 下载 Chrome 压缩包并解压,然后打开 chrome://extensions → 切换“开发者模式” →“加载已解压的扩展程序” → 选择解压后的文件夹。
  • Safari: 暂不可用——它将随 ContextMint 应用一起发布,但该应用没有公开下载渠道。目前请使用 Chrome。

ContextMint Bridge 是 fetchproxy 浏览器扩展的新名称,由同一位维护者开发——fetchproxy 自己的 README(安装 → 扩展)也指向它。其源代码公开于 nullnet-app/contextmint-bridge:你可以自行构建(参见该仓库的 README),也可以在加载发布压缩包前,将其与旁边发布的 .sha256 文件进行校验——shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256。

打开 zillow.com 并登录。该服务所需的身份验证就完成了。

工作原理

┌────────────────┐  stdio   ┌──────────────────┐   WS   ┌──────────────────┐    fetch()    ┌─────────────┐
│ MCP client     │◀────────▶│  dist/bundle.js  │◀──────▶│  ContextMint     │◀────────────▶│ zillow.com  │
│ (Claude, etc.) │          │  (Zillow MCP)    │ :37149 │  Bridge          │   (real TLS, │ (your tab)  │
└────────────────┘          └──────────────────┘        │  (separate)      │   cookies)    └─────────────┘

MCP 服务运行在 Node 中,但所有发往 zillow.com 的 HTTP 调用都会通过 ContextMint Bridge 扩展,转发到你当前打开的浏览器标签页。每个请求都会使用你现有的会话——_abck、TLS 指纹和 Cookie 都与屏幕上已打开的页面一致。没有无头浏览器替身,没有独立身份,也没有第三方代理:只有你的真实浏览器自行发起请求,由 MCP 服务决定要请求什么。

命令

npm test               # vitest, mocked transport, no network
npm run test:watch
npm run test:coverage
npm run build          # tsc --noEmit + esbuild bundle → dist/bundle.js
npm run dev            # node dist/bundle.js (after build)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。