Skip to main content
Glama
ashev87

Propstack MCP

create_search_profile

Converts a buyer's or renter's natural language property requirements into a structured search profile for a contact in Propstack, enabling automated matching with available properties.

Instructions

Create a search profile (Suchprofil) for a contact in Propstack.

This is THE killer feature for an AI real estate assistant. When a buyer or renter describes what they're looking for in natural language, map it to structured search criteria:

Example conversation: "Herr Weber sucht eine 3-Zimmer-Wohnung in Berlin oder Potsdam, Budget 300.000–400.000 €, muss einen Balkon haben" → client_id: <Herr Weber's ID> marketing_type: "BUY" rs_types: ["APARTMENT"] cities: ["Berlin", "Potsdam"] number_of_rooms: 3, number_of_rooms_to: 3 price: 300000, price_to: 400000 balcony: "true"

Mapping guide:

  • "Wohnung" / "apartment" → rs_types: ["APARTMENT"]

  • "Haus" / "house" → rs_types: ["HOUSE"]

  • "kaufen" / "buy" → marketing_type: "BUY"

  • "mieten" / "rent" → marketing_type: "RENT"

  • "3 Zimmer" → number_of_rooms: 3, number_of_rooms_to: 3

  • "3-4 Zimmer" → number_of_rooms: 3, number_of_rooms_to: 4

  • "bis 400k" → price_to: 400000

  • "mind. 80m²" → living_space: 80

  • "mit Balkon" → balcony: "true"

  • "mit Aufzug" → lift: "true"

  • "mit Garten" → garden: "true"

  • "mit EBK" → built_in_kitchen: "true"

  • "Neubau" → construction_year: 2020

Feature booleans use strings: "true" = required, "false" = excluded, omit = don't care.

Use radius search (lat/lng/radius) for "within 5km of Alexanderplatz".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude for radius search center
lngNoLongitude for radius search center
liftNoLift/elevator required: 'true', 'false', or omit for any
noteNoFree-text note about this search profile
floorNoMinimum floor
priceNoMinimum purchase price (EUR)
activeNoWhether the search profile is active (default: true)
cellarNoCellar required: 'true', 'false', or omit for any
citiesNoCity names to search in (e.g. ['Berlin', 'Potsdam'])
gardenNoGarden required: 'true', 'false', or omit for any
radiusNoSearch radius in meters from lat/lng center
rentedNoCurrently rented: 'true', 'false', or omit for any
balconyNoBalcony required: 'true', 'false', or omit for any
regionsNoRegion names to search in
floor_toNoMaximum floor
price_toNoMaximum purchase price (EUR)
rs_typesNoProperty types (e.g. ['APARTMENT', 'HOUSE'])
base_rentNoMinimum base rent (EUR/month)
client_idYesContact ID this search profile belongs to (required)
group_idsNoTag/group IDs to assign
plot_areaNoMinimum plot area (m²)
total_rentNoMinimum total rent (EUR/month)
base_rent_toNoMaximum base rent (EUR/month)
living_spaceNoMinimum living space (m²)
location_idsNoPropstack location/district IDs
plot_area_toNoMaximum plot area (m²)
yield_actualNoMinimum actual yield (%)
price_per_sqmNoMinimum price per m² (EUR)
rs_categoriesNoProperty categories (e.g. ['APARTMENT_NORMAL', 'HOUSE_DETACHED'])
total_rent_toNoMaximum total rent (EUR/month)
marketing_typeNoMarketing type: BUY (Kauf) or RENT (Miete)
living_space_toNoMaximum living space (m²)
number_of_roomsNoMinimum number of rooms
yield_actual_toNoMaximum actual yield (%)
built_in_kitchenNoBuilt-in kitchen required: 'true', 'false', or omit for any
price_multiplierNoMinimum price multiplier (Vervielfältiger)
price_per_sqm_toNoMaximum price per m² (EUR)
construction_yearNoMinimum construction year
number_of_rooms_toNoMaximum number of rooms
number_of_bed_roomsNoMinimum number of bedrooms
price_multiplier_toNoMaximum price multiplier
construction_year_toNoMaximum construction year
number_of_bed_rooms_toNoMaximum number of bedrooms
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should cover behavioral aspects. It discloses that feature booleans use strings ('true'/'false'/omit) and that radius search uses lat/lng/radius. However, it does not mention error conditions, permissions, or whether creation overwrites or merges with existing profiles.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then uses bullet points and examples. It is longer than necessary but well-organized, with the mapping guide making it highly useful. Could be slightly trimmed but remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (43) and no output schema, the description covers key aspects: required client_id, mapping guide, radius search, boolean conventions. It does not describe the return value or error handling, but this is acceptable for a create tool with many optional fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 43 parameters have descriptions). The description adds significant value by providing a natural language mapping guide for many parameters (e.g., '3 Zimmer' → number_of_rooms). This translates user intent into parameter values, which is beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a search profile (Suchprofil) for a contact in Propstack' and provides a detailed mapping guide with example. This specific verb+resource combination distinguishes it from sibling tools like list_search_profiles or update_search_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames this as 'THE killer feature for an AI real estate assistant' and shows how to map natural language to structured criteria. While it provides strong context, it does not explicitly state when NOT to use this tool or mention alternatives like update_search_profile for existing profiles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ashev87/propstack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server