A side-by-side look at the Homes MCP and Zillow MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Homes MCP 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.
homes_search_properties, homes_get_by_address, homes_resolve_addresses.zillow_search_properties, zillow_sweep_area, zillow_get_property.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Real Estate | Real Estate |
| Quality signal | 56/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 19 | 21 |
| Full listing | View Homes MCP | View Zillow MCP |
homes_search_propertiesSearch listings by free-text location (city/ZIP/neighborhood). Slugifies the input into homes.com's URL routing (a blank or unsluggable location is an error, not an empty result) and parses the JSON-LD `CollectionPage.mainEntity.itemListElement[]`. Filters by `property_type`, `listing_type`, `sort`…homes_get_by_addressResolve one US street address to its canonical homes.com property URL + opaque hash. Walks structured typeahead → slug → city/zip search-fallback with whole-token street + unit verification. Returns `matched_via`; degrades to `{ resolved: false }`.homes_resolve_addressesBulk `homes_get_by_address` (up to 100 addresses, input order preserved, per-row outcomes). Prefer for batches ≥ 3.homes_get_propertyFull record for a property by URL. Parses JSON-LD + DOM-side sections: address, lat/lng, beds/baths, sqft, year built, price, status, agent (name/title/profile — telephone/email only with `include_agent_contact: true`) + brokerage, highlights, schools, HOA (raw + monthly), lot size (sqft + acres),…homes_get_property_photosFull photo gallery scraped from `<img>` tags on the detail page (JSON-LD only carries one image). Returns `{ url, position, alt? }` per photo, filtered to the homes.com CDN.homes_bulk_getFetch up to 200 properties' structured records in one call (per-row errors, input order preserved).homes_compare_propertiesSide-by-side comparison of 2–8 properties with an aligned summary table. Per-target errors captured per-row. Concurrent fetches.homes_get_nearby_listingsThe "Homes for Sale Near This Property" cross-link cards from a detail page (For Sale, optionally Rentals). URL + address only.homes_get_historyCombined price + tax history in one fetch: `listing_events`, `ownership_events`, `lien_events`, normalized `events_normalized`, and `tax_records`. `events_normalized` sets `price_change_pct` only on `PriceChange` rows; other rows carry homes.com's "List to Sale" figure as `list_to_sale_pct` (no `do…homes_get_property_history*Deprecated* — price/ownership/lien timelines only. Prefer `homes_get_history`.homes_get_tax_history*Deprecated* — year-by-year tax records only. Prefer `homes_get_history`.homes_get_market_reportMedian / average / $-per-sqft for a market, derived from the `sold` search page's JSON-LD. A blank or unsluggable location is an error, not an empty market.zillow_search_propertiesSearch listings by location, status, price band, beds/baths, home type. Optional `map_bounds` viewport; `include_meta` reports Zillow's own total vs fetched, so truncation is visiblezillow_sweep_areaExhaustive enumeration of an area: recursive map tiling until no tile is truncated, deduped, with a completeness summary and drift warnings; optional JSON output filezillow_get_propertyFull record for a zpid (price, Zestimate, beds, schools, neighborhood, price history)zillow_get_by_addressResolve a free-text address (with optional city/state/zip) to its Zillow zpid + canonical URLzillow_resolve_addressesBatch-resolve many free-text addresses (or structured rows) to zpids + canonical URLszillow_bulk_getFetch full records for many zpids/URLs at once, with partial-result + bot-wall handlingzillow_get_property_photosFull photo gallery for a property — every image embedded in the homedetails page with multi-width jpeg + webp variants and captionszillow_get_zestimate_historyTime series of Zestimate values (and rent Zestimate where available)zillow_get_price_historyListing history (Listed/Sold/Pending/etc.) with price + days on marketzillow_get_tax_historyAnnual tax-roll history — taxes paid and assessed value year-over-yearzillow_compare_propertiesSide-by-side comparison of up to 12 properties, with an aligned summary tablezillow_calculate_affordabilityLocal affordability calculator — max purchase price from income/DTI/ratesPaste 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.
{
"mcpServers": {
"homes-mcp": {
"command": "npx",
"args": [
"-y",
"homes-mcp"
]
}
}
}
{
"mcpServers": {
"zillow-mcp": {
"command": "npx",
"args": [
"-y",
"zillow-mcp"
]
}
}
}