Cubi Estate
Read-only European property search by location, price, size and features. No sign-in required.
| Endpoint | https://mcp.cubi.estate/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 12 tools · grade D (59) · pin ts_0afac91345c7949c65a2cb074bdaade3 · protocol 2025-06-18 |
| First / last listed | 2026-11-01 01:44 UTC / 2026-11-01 01:44 UTC |
| Grade over time | 2026-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.
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
search_properties | Search 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_listing | Fetch 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_options | How 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_listings | Structured 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_prices | Compare 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_inventory | What 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_elsewhere | Homes 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_homes | Homes 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_history | Has 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_stats | Day-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_stats | Live 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_stats | How 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.