estate.cubi/cubi-properties

Cubi Estate

Read-only European property search by location, price, size and features. No sign-in required.

Endpointhttps://mcp.cubi.estate/mcp (streamable-http)
Registry version1.0.0
Now12 tools · grade D (59) · pin ts_0afac91345c7949c65a2cb074bdaade3 · protocol 2025-06-18
First / last listed2026-11-01 01:44 UTC / 2026-11-01 01:44 UTC
Grade over time2026-11-01: D (59), 12 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-01 01:44 UTC
12 tools, grade D (59)

Tools: search_properties get_listing get_contact_options filter_listings compare_asking_prices compare_inventory find_similar_elsewhere find_similar_homes get_price_history corpus_stats data_layer_stats get_daily_new_listing_stats

Current tools (12)

search_propertiesSearch Cubi Estate's live property listings across 17 European countries. Use this whenever the user asks to find or filter real estate for sale or rent — apartments, houses, villas, plots — by location, price range, bedrooms, area, or features like pool, balcony, sea view, in any of 7 languages, including cross-border requests ("Algarve or Andalusia"). Every returned listing
params: query*, lang, limit
get_listingFetch one Cubi Estate listing's full details. Use after a search when the user wants the long description, every feature/amenity, or the full image list for a specific result. Args: listing_id: Either the listing URL exactly as shown in a search result (e.g. https://cubi.estate/r/remax%3A12345?rq=req_… or the agency's own page — the simplest option, si
params: listing_id*, lang, parent_request_id
get_contact_optionsHow a buyer can reach the agent for one Cubi Estate listing. Read-only: lists the available contact methods (send the agent questions via Cubi, message Cubi on WhatsApp/Telegram, send a request by email), suggested questions the listing does not already answer, and the links that start each one. Nothing is sent to anyone, and the agent's phone number or email is never returned
params: listing_id*, lang
filter_listingsStructured property filter — bypasses natural-language extraction. Use this when filters are already known (from prior turns or external state) and you want to skip the OpenAI NLU step. For free-text user queries like "cheap apartments near the beach", use `search_properties` instead. Prefer this tool whenever the user has named specific towns or cities plus a budget: it runs
params: location, type, transaction_type, price_period, min_price, max_price, min_bedrooms, max_bedrooms, min_floor, max_floor, min_living_area, max_living_area, min_plot_area, max_plot_area, min_bathrooms, max_bathrooms, has_parking, min_year_built, max_year_built, features, amenities, radius_center, radius_km, dimension_filters, updated_since, sort, city_only, parent_request_id, lang, limit
compare_asking_pricesCompare one listing's asking price with comparable homes on Cubi. Returns the range of ASKING prices of comparable active listings in the same city (25th-75th percentile, with the number of comparables) and where this listing's own asking price sits against it: below, within or above. This is a comparison of asking prices, not a valuation and not a prediction of the sale price
params: listing_id*, lang
compare_inventoryWhat a budget buys in 2-3 towns or cities: the share of each place's active listings within the price cap, and optionally also with parking. Use when the user compares places by what they can afford ("2-bed flats up to 300k in Porto or Valencia", "and with parking?"). For each place it counts the cohort (type, sale, bedrooms), the part within `max_price`, and, with `has_parkin
params: places*, type, transaction_type, min_bedrooms, max_bedrooms, max_price, has_parking, lang
find_similar_elsewhereHomes like one listing, in another city, side by side with it. Use when the user likes a home and asks what something similar costs, or looks like, elsewhere ("homes like #2 in Lisbon"). Returns the listing and up to 2 matches in `city`, each with asking price, price per m², stated features, environment readings (quiet, clean air, leafy, coastal, flood / wildfire / seismic / g
params: listing_id*, city, lang, compare_with
find_similar_homesHomes like one listing in its own market, picked by Cubi's similarity model. Use when the user likes a home and wants more like it nearby ("more like #2", "anything similar?"). Returns up to `limit` listings in the same city with the same type family and a similar size, ranked by Cubi's similarity model: a nearest-neighbour search over each listing's concept embedding (a 50-di
params: listing_id*, lang, limit
get_price_historyHas this home's asking price changed? Every change Cubi observed. Returns each observed asking-price change for one listing (date, old and new price, percent), oldest first, with the current price, the total change since the first observed price, and when Cubi first saw the listing. Cubi's log starts on `tracked_since` (2026-05-02): no change listed means none was observed sin
params: listing_id*
corpus_statsDay-by-day Cubi corpus activity — aggregate counts only, no listings. Use this for dashboards or "how is the corpus moving" questions: active listing totals, per-country breakdown, and per-day series of newly ingested listings, deactivated listings, and detected price drops. Args: days: Trailing window length in days (1-90, default 30). country: Optional full coun
params: days, country
data_layer_statsLive coverage of Cubi's per-listing enrichment data layers. Use for a data-pipeline dashboard: how many active listings carry each environmental / accessibility layer, the flood-risk band split, and the per-country share of listings in a modelled High (1-in-20-year) river floodplain. Returns: JSON string. Warm cache (exact, ~6h fresh): {active_listings, cached:
params: none
get_daily_new_listing_statsHow many NEW listings Cubi added per day, by country and by source, split into sale and rent — aggregate counts only, no listings. Use it to answer "how much new inventory is arriving" questions: today, yesterday and the last 7 completed days, per country, plus the 15 sources contributing the most new listings over those 7 days. Complements corpus_stats (which has no transact
params: none

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.