A side-by-side look at the Hemnet MCP and Homes MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Hemnet MCP for real estate work as a local process; choose Homes MCP for real estate as a local process. You can also run both side by side in one mcpServers block.
hemnet_autocomplete_location, hemnet_search_listings, hemnet_get_listing.homes_search_properties, homes_get_by_address, homes_resolve_addresses.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 | 1 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 11 | 19 |
| Full listing | View Hemnet MCP | View Homes MCP |
hemnet_autocomplete_locationResolve a place name (`"Vasastan"`) to Hemnet location ids — the starting point for search.hemnet_search_listingsSearch active for-sale listings by location + filters (price SEK, rooms, m², property type, keywords).hemnet_get_listingFull detail for one listing (price, fee, running costs, m², rooms, tenure, energy class, broker, description, photos).hemnet_get_listing_photosJust the gallery photo URLs.hemnet_search_soldSearch **sold** listings with final price, asking price, and over/under-asking %.hemnet_get_sold_listingFull detail for one sold listing.hemnet_get_market_statsMedian/average final price and price-per-m² for a location, over the most recent `max_sales` sales (default 200).hemnet_compare_listingsFetch several listings at once for side-by-side comparison.hemnet_get_by_addressResolve a free-text street address to a live listing.hemnet_calculate_mortgageLocal Swedish monthly-cost calculator (interest + amortisation + fee, gross & after-tax). No network.hemnet_healthcheckVerify the Hemnet GraphQL endpoint is reachable. Reports which transport served the probe (`transport`: direct fetch or the browser bridge, plus the configured `HEMNET_TRANSPORT`), the bridge's role/port/extension-link state (`bridge`, once a bridge exists), a classified `error.kind` (e.g. `cloudfl…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.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.
{
"mcpServers": {
"hemnet-mcp": {
"command": "npx",
"args": [
"-y",
"hemnet-mcp"
]
}
}
}
{
"mcpServers": {
"homes-mcp": {
"command": "npx",
"args": [
"-y",
"homes-mcp"
]
}
}
}