# `search_plots`

> **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. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

Search commercial plots (Germany). Product: [Claro AI](/docs/claro). Scope: Germany, commercial plots, a set of its own, never premises.

Call it as `search_plots` on Claro AI's own server, not through `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.

Over REST: [`POST /v1/plots/search`](/docs/rest/claro/search-plots) (equivalent). [MCP and REST compared](/docs/parity#claro-ai).

## 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?

- `criteria` (object, optional)
  - `regions` (string[], optional): Länder by name or slug: "Bayern", "nordrhein-westfalen".
  - `municipalities` (string[], optional): Towns or cities as the property's data names them: "München", "Leipzig".
  - `zipcodes` (string[], optional): Postcodes or their first digits: "80331", "04".
  - `plot_types` (string[], optional): building_plot (Grundstück) or rural_plot (agricultural, forest and other land). Values: `building_plot`, `rural_plot`.
  - `operation` (string, optional) Values: `sale`, `rent`, `either`.
  - `plot_area_min` (number, optional): m²; a plot that states no area is out.
  - `plot_area_max` (number, optional)
  - `sale_price_min` (number, optional): EUR total.
  - `sale_price_max` (number, optional)
  - `sale_price_m2_max` (number, optional): EUR per m² of plot area.
  - `commercial_use` (string | string[], optional): Levels to keep; default zoned_commercial, zoned_mixed_or_special, commercial_use_stated.
  - `serviced` (boolean, optional): true: drop plots whose text says they are not serviced (unerschlossen); plots that do not say stay.
  - `keywords` (string[], optional): Words or phrases the property's text must contain, all of them: "Gleisanschluss", "Autobahn".
- `limit` (integer, optional) 1–50; default 20.
- `offset` (integer, optional): Results to skip, for the next page. ≥ 0; default 0.
- `sort` (string, optional) Values: `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; see the parameters above for real ones.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_plots",
    "arguments": {
      "criteria": {
        "regions": [
          "…"
        ]
      }
    }
  }
}
```

## Related pages

- [Search commercial premises (search_premises)](/docs/claro/search_premises)
- [Refine a search (refine_search)](/docs/claro/refine_search)
- [Get one premises (get_premises)](/docs/claro/get_premises)
- [Compare premises (compare_premises)](/docs/claro/compare_premises)
- [Claro AI: all its MCP tools and REST operations](/docs/claro)
- [Connect Claro to an MCP client](/docs/claro/connect)
