Housing Intel vs Zillow MCP

A side-by-side look at the Housing Intel and Zillow MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Housing Intel logoHousing IntelReal Estate · Local subprocess (stdio)Housing Intel MCP — Meta-pack that chains FRED, BLS, ATTOM, and HUD APIs61GoodAuth: not declaredZillow MCP logoZillow MCPReal Estate · Local subprocess (stdio)Zillow real-estate for Claude — search, property details, Zestimates, saved searches & homes63GoodAuth: other

Verdict: choose Housing Intel for real estate work as a local process; choose Zillow MCP for real estate as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Housing Intel logoChoose Housing Intel when

  • You need dedicated capabilities in the Real Estate domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like case_shiller_metro_compare, housing_market_snapshot, housing_property_report.
Explore Housing Intel

Zillow MCP logoChoose Zillow MCP when

  • You need dedicated capabilities in the Real Estate domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: other.
  • You want tools like zillow_search_properties, zillow_sweep_area, zillow_get_property.
Explore Zillow MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecHousing Intel logoHousing IntelZillow MCP logoZillow MCP
CategoryReal EstateReal Estate
Quality signal61/100 · Good63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredother
PricingNot declaredFree
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars10
Directory activity 1 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools1021

Tools & capabilities

Housing Intel tools 10

  • case_shiller_metro_compareCompare Case-Shiller home price indices across multiple US metros in one call (the 20-city composite). For each metro returns latest level, 3-month change, 12-month change, all-time peak, drawdown from peak, and a softening flag. Output also ranks metros softest → strongest. Use for "which metros are softening", "Case-Shiller for [list of cities]", "compare housing prices in X, Y, Z" queries — picks the right per-metro FRED series IDs (DNXRSA, PHXRSA, TPXRSA, etc.) so callers don't have to. Available metros: Atlanta, Boston, Charlotte, Chicago, Cleveland, Dallas, Denver, Detroit, Las Vegas, Los Angeles, Miami, Minneapolis, New York, Phoenix, Portland, San Diego, San Francisco, Seattle, Tampa, Washington DC. NOT A CURRENT-MARKET READ: Case-Shiller is monthly, published on a roughly two-month lag, and each value is a three-month moving average — so the newest observation is typically 90-120 days old and describes a trailing quarter. The `freshness` block states the exact age of the call you made.
  • housing_market_snapshotGet national housing market overview: mortgage rates, housing starts, Case-Shiller index, unemployment, construction employment. Optionally add metro-level prices (e.g., "Denver", "Atlanta"). For comparing Case-Shiller across multiple metros use case_shiller_metro_compare instead. THE COMPONENTS DO NOT SHARE A DATE — they are weekly, monthly and quarterly official statistics, each published on its own lag, so one call can span months of vintages. `freshness` states the span in days and names the oldest component; read it before comparing components against each other.
  • housing_property_reportAnalyze a property by address and zip code. Returns valuation estimate, sales history, tax assessment, and detailed characteristics.
  • housing_rental_analysisEvaluate rental investment potential by address and zip code. Returns estimated rent, fair market rents, and CPI rent trends.
  • housing_affordability_checkCheck housing affordability in a market. Returns mortgage rate, median price, monthly payment, required income, and HUD limits. Optionally specify metro (e.g., "Denver"). The inputs are official statistics on DIFFERENT cadences — a weekly mortgage rate against a quarterly median price — so the monthly payment is an illustrative ratio of published figures, not a live quote. `freshness` states the span and the age of each input.
  • housing_employment_outlookAssess labor market health for housing demand. Returns employment, construction jobs, residential building employment, unemployment rate, and job openings. All BLS monthly releases; each series carries its own `observation_date` and `cadence` (JOLTS runs an extra month behind CES/LAUS), and `freshness` states the span. `snapshot_date` is the call date, not the data date.
  • housing_signal_scanScan 45+ housing indicators for anomalies and reversals. Flags unusual moves across rates, starts, sales, prices, wages, unemployment, and rent. Each signal carries its own `observation_date` and `cadence` — series here span weekly (mortgage rate) to quarterly (median sales price), and Case-Shiller is additionally a 3-month moving average, so "turned negative" does not mean "this month" for every series. `freshness` states the full span and the oldest component.
  • housing_mortgage_historyFreddie Mac Primary Mortgage Market Survey — the weekly US mortgage INTEREST rate (the annual percentage borrowers pay on a home loan, e.g. 6.5%), back to 1971. This is the borrowing cost paid by home buyers. Returns the latest snapshot, a time series for the requested window, and min/max/avg stats. Sourced from Freddie Mac directly (not FRED), ingested weekly by the Pipeworx data pipeline.
  • housing_market_screenRank US metros for rental cash flow in ONE call — the "which markets are best for a landlord" view. Returns metros sorted by gross rent yield = (Zillow median monthly rent × 12) ÷ Zillow typical home value. No per-metro orchestration and no API key. Use for "best/worst rental markets", "highest-yield metros", "where does rent go furthest vs. home prices". Tune with direction (top = highest yield / best cash flow, bottom = lowest), limit, and optional home-value bounds. rent_as_of and home_value_as_of are two independent Zillow queries and can land on different months; `freshness` says whether they matched this call.
  • housing_metro_demandDemand + rent-durability signals for a shortlist of US metros in ONE call — population & 5-year growth, renter share, median household income, and unemployment, straight from Census ACS. Deterministic by metro (CBSA-keyed) — NO FRED series-ID guessing. Pass `metros` ("City, ST", e.g. the top results from housing_market_screen). This is the Stage-2 "is the demand real?" filter on a yield shortlist — high yield in a shrinking metro is a trap. No API key needed. HIGHEST-LAG SOURCE IN THIS PACK: figures are a Census ACS 5-YEAR rolling average (currently 2018-2022, released Dec 2023) — for structural demand, not a current-quarter read. `freshness` states the exact age.

Zillow MCP tools 21

  • zillow_search_propertiesSearch Zillow listings by location (city, ZIP, neighborhood, or address) and optional filters (status, price band, beds/baths minimums, home types). Returns matching properties with price, beds/baths, sqft, Zestimate, status, image, and homedetails URL. Works with city/ZIP-level queries (filtered against your criteria) AND with full-address or street-only queries (returns the listings Zillow resolves to directly — filters are not applied in this single-round-trip path; use zillow_get_by_address for the cleanest one-shot address → zpid lookup). Throws LocationNotResolved if Zillow can't pin either a region or matching listings for the input (instead of silently falling back to your default search region). Heads up: Zillow renders ~40 listings per page server-side; this tool auto-paginates by default when `limit` exceeds that, walking subsequent pages and concatenating results (set `auto_paginate: false` to opt out and get the single-page response). For dense markets, price-band the search to enumerate fully. Does NOT return Zestimate history — use zillow_get_zestimate_history for that. Read-only; safe to call repeatedly.
  • zillow_sweep_areaEnumerate EVERY Zillow listing matching the filters inside a location (resolved like zillow_search_properties) or an explicit bounding box, without silent truncation. Splits the area into map tiles and recursively quarters any tile whose Zillow-reported total exceeds what one query can return, dedupes by zpid and re-applies the numeric filters (drift guard). Returns a completeness summary (requests, tiles, unique listings, tiles still truncated at max depth, drift warnings such as Zillow ignoring the price filter or the viewport) plus the listings, or writes the listings to `output_path` as JSON for large areas (inside the output directory: ZILLOW_OUTPUT_DIR, default ~/Downloads/zillow-mcp). Sequential requests with a delay, paced by the same per-host requests-per-minute throttle as `zillow_bulk_get`; if Zillow's bot-wall blocks a request the sweep stops and returns `{ blocked: true, retry_after_s }` with what it had. Read-only against Zillow; the only write is the optional local output file.
  • zillow_get_propertyFetch a property's full Zillow record by zpid (numeric Zillow Property ID, e.g. 12345) or by homedetails URL. Returns address (Zillow's slugged form), mls_street_address (canonical MLS form — prefer this when it disagrees), neighborhood, price, Zestimate, rent Zestimate, beds/baths, square footage, lot_size (sq ft) plus the derived lot_size_acres (round(lot_size / 43560, 2); both null — never 0 — for condos and listings with no lot), year built, schools, and an `extracted_features` block (lake_front, hot_tub, basement, furnished, dock, community) keyword-parsed from the description. Also returns `zest_vs_list_pct` — the list-vs-Zestimate spread, `(price − zestimate) / zestimate × 100` rounded to 1 decimal: POSITIVE means listed ABOVE the Zestimate, negative below (null when either input is missing). The raw `description` is omitted by default — pass `include_description: true` to keep it; in most cases the extracted features cover what callers need. Price-history and tax-history are also opt-in (`include_price_history: true` / `include_tax_history: true`) — bundle them in to skip a separate call. Provide exactly one of zpid or url. Read-only; safe to call repeatedly.
  • zillow_get_zestimate_historyHistorical Zestimate values for a property by zpid or homedetails URL. Returns a time series of {date, value, rent?} entries (rent included when Zillow has a rent Zestimate for the property). Note: zillow_get_property returns only the *current* Zestimate as a scalar — call this tool when you need the trend. For some listings (commonly non-Showcase) Zillow renders the trend client-side and omits it from the server-rendered page; then `points` is empty and an explanatory `note` is returned — distinct from a genuine no-history. Read-only; safe to call repeatedly.
  • zillow_get_saved_searchesThe signed-in user's saved searches on zillow.com (name, filters, new-listing count, notification frequency). Requires the user to be signed in at zillow.com in the bridged browser tab — throws SessionNotAuthenticatedError otherwise. An optional `session_id` (from `zillow_register_session`) is checked against the session registry — an unknown id errors — but it is a label only: the request always goes through whichever browser tab the extension is signed into. Read-only; safe to call repeatedly.
  • zillow_get_saved_homesThe signed-in user's saved (favorited) homes on zillow.com, flattened across all of the user's collections. Returns address, price, Zestimate, status, and when each home was saved. An optional `session_id` (from `zillow_register_session`) is checked against the session registry — an unknown id errors — but it is a label only: the request always goes through whichever browser tab the extension is signed into. Requires the user to be signed in. Read-only; safe to call repeatedly.
  • zillow_get_market_reportMarket report for a Zillow region: median sale/list prices, days on market, for-sale inventory, new listings, Zillow Home Value Index (ZHVI), and year-over-year ZHVI change. Provide either a `region_path` (e.g. "/home-values/6181/brooklyn-ny/") or a full Zillow home-values URL. Read-only; safe to call repeatedly.
  • zillow_calculate_mortgageLocal-only mortgage payment calculator. Returns a full PITI breakdown (principal + interest, property tax, insurance, HOA, PMI) and total interest over the life of the loan. No network call — fully deterministic, safe to use for scenario comparison without burning a fetch. Provide either `down_payment` OR `down_payment_percent`; defaults to 20%. Property tax can be given as `property_tax_annual` or `property_tax_rate` (% of home price). PMI applies automatically when LTV > 80% and `pmi_rate` is provided.
  • zillow_get_price_historyListing-price events for a property — listings, price changes, pending, sold, etc. — by zpid or homedetails URL. Returns two parallel arrays: `events` (raw Zillow shape with `event` strings and MLS attribution) and `events_normalized` (cross-MCP shared shape with a fixed `type` enum: Listed/PriceChange/Pending/Contingent/Sold/Withdrawn/Relisted/Delisted). The normalized form lets callers merge histories across real-estate MCPs without re-implementing taxonomy. Sourced from the same homedetails page as zillow_get_property. For some listings (commonly non-Showcase) Zillow omits the history from the server-rendered page; then `events` is empty and an explanatory `note` is returned — distinct from a genuine no-history.
  • zillow_get_tax_historyYear-by-year property-tax record for a property: tax paid, assessed value, and the year-over-year change rates. Sourced from the homedetails page. Useful for spotting reassessment jumps or comparing tax burdens across properties. For some listings (commonly non-Showcase) Zillow omits the history from the server-rendered page; then `events` is empty and an explanatory `note` is returned — distinct from a genuine no-history.
  • zillow_compare_propertiesSide-by-side analysis of 2-25 Zillow properties. **If you just want N property records, use `zillow_bulk_get` instead** — compare is for genuine side-by-side (its pivoted summary table is the value-add); bulk_get is the fetch-many endpoint and accepts up to 200 ids. (Issue #79 raised this cap from 8 to 25 — a 19-listing analysis now fits in one call instead of three.) Provide an array of zpids (or homedetails URLs). Returns the full per-property record per row (with `extracted_features` populated). Pass `include_summary: true` for an extra pivoted summary table (one row per field) — defaults off because `results[].property.*` already carries everything. The raw `description` is omitted from each row by default — pass `include_description: true` to keep it. Errors for individual properties are captured per-row — one bad zpid won't fail the whole call. Calls fan out concurrently (capped at 6 in flight, per issue #78, with retry-once-on-timeout per sub-request to absorb transient SW evictions), paced by the same throttle as `zillow_bulk_get`; a bot-wall block is retried with backoff and, if it persists, reported as `error_kind: "bot_challenge"` (distinct from a missing listing) with `{ blocked, retry_after_s }` on the envelope. The call is bounded by an overall deadline — unsettled rows come back as `error_kind: "pending"`.
  • zillow_calculate_affordabilitySolve for the maximum home price you can afford under the standard 28/36 DTI rule. Inputs: monthly income, recurring monthly debts (car loans, student loans, etc.), down payment, interest rate, and optional property-tax rate / insurance / HOA / loan term. Output: max home price, the binding constraint (front-end vs back-end), and the full PITI breakdown at that price. Same math across the realty MCP cohort (@chrischall/realty-core). No network — pure local math.
  • +9 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Housing Intel

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "housing-intel": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-housing-intel"
      ]
    }
  }
}

Zillow MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "zillow-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "zillow-mcp"
      ]
    }
  }
}

Frequently asked questions

Housing Intel is categorized under Real Estate and uses a local stdio subprocess. Zillow MCP belongs to Real Estate and uses a local stdio subprocess. Pick Housing Intel for real estate work and Zillow MCP for real estate.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Housing Intel has no declared pricing — check the project's own site. Zillow MCP is listed as free. Auth: other. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add housing-intel and zillow-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Housing Intel has a quality signal of 61/100 (Good) with 1 views, 0 installs and 1 GitHub stars. Zillow MCP has 63/100 (Good) with 2 views, 0 installs and 0 GitHub stars.