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

search_plots

Search commercial plots (Germany)

Germany, commercial plotsSeparate server17 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/plots/search (equivalent). MCP and REST compared.

What does Search commercial plots (Germany) do?

Find plots of land for sale or rent in Germany for a commercial building, from Casafari's property graph. Plots only, never premises: counts and results come from a separate set, one result per plot however many agencies advertise it (the others in also_listed_by). Criteria are data: Länder (regions), municipalities, postcodes, plot type, operation, plot area, sale price and price per m², keywords in the property's own words, and commercial_use, how far the property's own text says a commercial building can go on the plot. Levels: zoned_commercial (GE, GI, MK, MU stated), zoned_mixed_or_special (MI, SO, MD stated: check the plan), commercial_use_stated (commercial use stated as allowed or suitable, no class: read the quote), building_land_use_not_stated, residential_only_stated, zoned_leisure_special (SO for recreation), not_building_land_stated, not_stated. The default is the first three; send "all" or any list to widen it. Each result gives its level with the quote it rests on and, for a stated class, zoning_source (a Flächennutzungsplan is not binding), the facts read from the text (zoning class, serviced, B-Plan, §34/§35, building permit, GRZ, GFZ), an excerpt and the agency's link. The level is what the property's text says, not a zoning check; coordinates are approximate.

Which parameters does search_plots take?

criteriaobject
13 properties
regionsstring[]
Länder by name or slug: "Bayern", "nordrhein-westfalen".
municipalitiesstring[]
Towns or cities as the property's data names them: "München", "Leipzig".
zipcodesstring[]
Postcodes or their first digits: "80331", "04".
plot_typesstring[]
building_plot (Grundstück) or rural_plot (agricultural, forest and other land).
building_plot rural_plot
operationstring
sale rent either
plot_area_minnumber
m²; a plot that states no area is out.
plot_area_maxnumber
sale_price_minnumber
EUR total.
sale_price_maxnumber
sale_price_m2_maxnumber
EUR per m² of plot area.
commercial_usestring | string[]
Levels to keep; default zoned_commercial, zoned_mixed_or_special, commercial_use_stated.
servicedboolean
true: drop plots whose text says they are not serviced (unerschlossen); plots that do not say stay.
keywordsstring[]
Words or phrases the property's text must contain, all of them: "Gleisanschluss", "Autobahn".
limitinteger
1–50default 20
offsetinteger
Results to skip, for the next page.
≥ 0default 0
sortstring
commercial_use newest price_asc area_desc price_m2_asc
default "commercial_use"

How do I call search_plots?

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": "search_plots",
    "arguments": {
      "criteria": {
        "regions": [
          "…"
        ]
      }
    }
  }
}

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