Platform
Get started

Casafari is the AI agent-native real estate data intelligence platform. The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries.The most complete property index in Europe: a deduplicated, cleaned property graph.

How the graph is built

Claro AI · MCP tool

market_snapshot

What premises ask in a place

Separate server63 parameters

Claro AI is a separate MCP server provided by Casafari, not part of https://mcp.casafari.com/. Its address on the platform is https://platform.casafari.com/mcp/claro: Streamable HTTP, a platform API key or the platform's OAuth, metered in platform units. How to connect.

Over REST: POST /v1/market (equivalent). MCP and REST compared.

What does What premises ask in a place do?

What commercial premises of a kind ask in a place anywhere in Spain, from every active property of that kind and place (each unit counted once): the asking price per m² as a distribution with its median and middle half, by size band, by district or town, and for one town or province the monthly average over three years with the change in a year, the properties on the market and their days on the market (Casafari Area Insights). Ask in plain words (question: "what does retail rent for in Chamberí?") or send criteria as data (place, types, operation, optional size range); other criteria are ignored. Asking prices, not agreed ones; at least 10 properties or no figures. Returns the criteria as understood and insights: charts as data, each with a one-sentence answer, its count, scope, source and date.

Which parameters does market_snapshot take?

questionstring
The question in plain words, any language: "what do offices rent for in Valencia?"
criteriaobject
Criteria as data. Hard criteria (operation, cities, types, price, area) exclude properties outside them; the rest exclude only properties that state the opposite, and each result says which were met and which the property does not state.
53 properties
operationstring
rent sale either
citiesstring[]
Spanish towns or cities by name or slug ("valencia", "Palma"). Leave out for all of Spain.
provincesstring[]
Provinces; a property must be in one of them.
52 allowed valuesa-coruna alava albacete alicante almeria asturias avila badajoz barcelona burgos caceres cadiz cantabria castellon ceuta ciudad-real cordoba cuenca girona granada guadalajara guipuzcoa huelva huesca islas-baleares jaen la-rioja las-palmas leon lleida lugo madrid malaga melilla murcia navarra ourense palencia pontevedra salamanca santa-cruz-de-tenerife segovia sevilla soria tarragona teruel toledo valencia valladolid vizcaya zamora zaragoza
districtsstring[]
Named districts or neighbourhoods in the cities (Centro, Malasaña, Chamberí, Eixample, Gràcia, Poblenou...). A property outside them is out; one that does not state its district stays, marked not stated.
typesstring[]
hotel retail warehouse industrial office other_commercial
area_minnumber
area_maxnumber
price_minnumber
EUR: a month for rent, the total for a sale; applies to each operation without its own rent_/sale_ limit.
price_maxnumber
rent_price_minnumber
EUR a month; compared only with rents.
rent_price_maxnumber
EUR a month; compared only with rents. With sale_price_max, operation "either" keeps a property whose rent or sale price fits its own limit.
sale_price_minnumber
EUR total; compared only with sale prices.
sale_price_maxnumber
price_m2_minnumber
EUR per m² of the property's area (a month for rent); a property with no stated area is "not stated".
price_m2_maxnumber
rent_price_m2_minnumber
rent_price_m2_maxnumber
sale_price_m2_minnumber
sale_price_m2_maxnumber
street_levelboolean
frontage_min_mnumber
Facade length (fachada) in metres.
frontage_max_mnumber
floors_minnumber
Number of floors (plantas) the premises has.
floors_maxnumber
ceiling_min_mnumber
smoke_extractionboolean
cornerboolean
shop_windowboolean
open_planboolean
step_freeboolean
loading_accessboolean
licencestring
food_service retail office gym none
licence_activitiesstring[]
Activities its licence sentence must name, in Spanish or Catalan: cafetería, panadería, restaurante...
transfer_price_minnumber
Transfer fee (traspaso) in EUR; met when its stated range overlaps.
transfer_price_maxnumber
business_transferboolean
true: only business transfers (traspasos); false: none.
business_typesstring[]
Uses its text says it suits, in English: restaurant, cafe, gym...
keywordsstring[][]
Groups of phrases; a property meets a group when its text holds any phrase. Write phrases as Spanish agencies do.
exclude_keywordsstring[]
Leave out properties whose text holds any of these.
footfall_minnumber
Minimum footfall index within a 5-minute walk (an index of pedestrian activity that compares places; not a head count). Needs location data access.
pop_walk10_minnumber
Residents within a 10-minute walk. Needs location data access.
pop_drive10_minnumber
Residents within a 10-minute drive. Needs location data access.
transit_minnumber
Stations and stops within a 5-minute walk. Needs location data access.
competitors_maxobject[]
At most this many places of a kind within a 5-minute walk (gyms: 10). Needs location data access.
2 properties
kindstringrequired
restaurants fast_food cafes shops supermarkets gyms
maxnumberrequired
own_stores_away_mnumber
No store from your own list (upload it with PUT /v1/stores) within this many metres of the premises, straight-line, 1-1,000. Needs an exact pin.
competitors_near_maxobject[]
At most max businesses of a segment (or of the named chains) within within_m straight-line metres (1-1,000), from Overture Maps places. A property with an approximate pin gets no verdict.
4 properties
segmentstringrequired
gym burger fast_food coffee bakery pharmacy supermarket fashion pizza
within_mnumberrequired
maxnumberrequired
chainsstring[]
Only these brands count (rivals or your own), e.g. Burger King, Basic-Fit. Matched on Overture brand and name.
spending_per_resident_minnumber
Spending power a resident a year (EUR) within a 10-minute walk. Needs location data access.
high_income_share_minnumber
% of households within a 10-minute walk with net income above 40,162 EUR a year. Needs location data access.
age_shares_minobject[]
Minimum % of residents within a 10-minute walk in an age band. Needs location data access.
2 properties
bandstringrequired
0_14 15_29 30_44 45_59 60p
min_pctnumberrequired
meaningstring
A wish no field holds, in any language; ranks results, never filters.
sortstring
supply_gap ranks where residents per similar place is highest (residents within a 10-minute walk / (places within gap_radius_m, 600 m by default, + 1)); needs gap_segment or one competitors_near_max segment. Needs location data access; unscored properties go last.
best price_asc price_desc area_desc footfall_desc supply_gap
gap_segmentstring
The business kind the supply_gap sort counts.
gym burger fast_food coffee bakery pharmacy supermarket fashion pizza
gap_radius_minteger
Radius in metres in which the supply_gap sort counts similar places: 600 (default) or 300 (about a 5-minute walk). Only with sort supply_gap.
300 600

How do I call market_snapshot?

Required arguments only, with placeholder values. Your assistant fills them in from the parameters above.

JSON-RPC
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "market_snapshot",
    "arguments": {
      "question": "…"
    }
  }
}

Tip: add .md to any URL to read it as Markdown.