A side-by-side look at the Propstack MCP and MCP Market Russia MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Propstack MCP for real estate work as a local process; choose MCP Market Russia for real estate over a hosted endpoint. You can also run both side by side in one mcpServers block.
PROPSTACK_API_KEY.search_contacts, get_contact, create_contact.search_companies, search_projects, compare_companies.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Real Estate | Real Estate |
| Quality signal | 61/100 · Good | 55/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | API key required | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | PROPSTACK_API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 9 | 0 |
| Directory activity | 5 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 52 | 24 |
| Full listing | View Propstack MCP | View MCP Market Russia |
search_contactsSearch and filter contacts in Propstack CRM.
Use this tool to:
- Find contacts by name, email, or phone number
- List recent leads (sort by created_at desc)
- Find uncontacted leads (last_contact_at is null)
- Filter by broker assignment, status, tags, or GDPR status
- Search across all contact fields with 'q' parameter
The 'q' parameter searches across: first name, last name, all emails,
all addresses, and all phone numbers.
Phone search ('phone_number') ignores formatting — both 015712345678
and 0157-123-456-78 will match.
Returns paginated results. Use expand=true for full details including
custom fields.
Custom fields: pass 'custom_filters' as an object of custom-field-name →
value to filter by agency-specific fields (use list_custom_fields to
discover field names). Each entry becomes a cf_<name> query parameter,
e.g. { marketing_channel: "Website" }.
Data minimization (Art. 25 DSGVO): pass 'fields' with an array of contact
field names to return only those fields per contact (e.g. ["first_name",
"last_name", "email"]). Omit 'fields' to return the default set unchanged.
Unknown field names produce an error listing the valid options.get_contactGet full details of a single contact by ID.
Use this tool to:
- View complete contact information before a call
- Check relationships, documents, and owned properties
- See sub-contacts (e.g. family members at same address)
Use 'include' to load related data in one request.create_contactCreate a new contact in Propstack CRM.
Use this tool to:
- Register a new lead after a phone call
- Create a contact from a web form submission
- Add a new property owner
Auto-upserts: if a contact with the same email or old_crm_id already
exists, it will be updated instead of creating a duplicate.
Use get_contact_sources first to find valid source IDs.update_contactUpdate an existing contact in Propstack CRM.
Use this tool to:
- Update contact details after a call
- Change broker assignment
- Add or remove tags (Merkmale)
- Update GDPR status
- Change contact rating or status
Tag management options:
- group_ids: replaces ALL tags with this list
- add_group_ids: adds tags without removing existing ones
- sub_group_ids: removes specific tags
Only provide the fields you want to change.delete_contactDelete a contact from Propstack CRM (soft delete).
The contact is moved to a 30-day recycle bin and can be restored.
Use this tool for:
- GDPR deletion requests (Art. 17 DSGVO)
- Removing duplicate contacts
- Cleaning up test dataget_contact_sourcesList all available contact/lead sources in Propstack.
Returns the list of sources like "Immobilienscout 24", "Website",
"Empfehlung", etc. with their IDs.
Use this tool to look up valid source IDs before creating or updating
contacts with client_source_id.search_contacts_by_phoneLook up a contact by phone number.
This is the go-to tool for voice agent caller identification. When a call
comes in, use this tool with the caller's phone number to instantly find
the matching contact.
Phone matching ignores formatting — all of these find the same contact:
015712345678, 0157-123-456-78, +49 157 12345678
Returns the matching contact(s) with key details. If no match is found,
the caller is unknown and you should create a new contact.search_propertiesSearch and filter properties (Objekte) in Propstack CRM.
Use this tool to:
- Find properties by address, ID, or exposé ID (use 'q' for fulltext)
- Filter by status, type, marketing type, or project
- Find properties in a price/rent range
- List properties by size, rooms, or construction year
- Filter by custom fields via the 'custom_filters' object (see below)
The 'q' parameter searches: unit_id, street, zip code, city, district, exposé ID.
Range filter pattern: 11 numeric fields each have _from and _to variants.
For example, price_from=200000 & price_to=400000 finds properties priced 200–400k.
Available range fields: price, base_rent, total_rent, property_space_value,
living_space, plot_area, number_of_rooms, number_of_bed_rooms,
number_of_bath_rooms, floor, construction_year.
Common queries:
- "Apartments 300–400k in Berlin": q="Berlin", marketing_type=BUY, rs_type=APARTMENT, price_from=300000, price_to=400000
- "All available rentals": marketing_type=RENT, status=<available_id from get_property_statuses>
- "Properties on market 90+ days": sort_by=created_at, order=asc
- "What's in Project X?": project_id=<id>
Custom fields: pass 'custom_filters' as an object of custom-field-name →
value (use list_custom_fields to discover field names). Each entry becomes
a cf_<name> query parameter, e.g. { energy_class: "A" }.
Always returns total count. Use expand=true for custom fields.
Data minimization (Art. 25 DSGVO): pass 'fields' with an array of property
field names to return only those fields per property (e.g. ["id", "title",
"price", "city"]). Omit 'fields' to return the default set unchanged.
Unknown field names produce an error listing the valid options.get_propertyGet full details of a single property by ID.
Use this tool to:
- View complete property information for an exposé
- Check images, floorplans, documents, and links
- See custom fields, broker assignment, and project
- Get multilingual texts (use locale parameter)
Always fetches with new=1 (extra fields) and expand=1 (custom fields).create_propertyCreate a new property (Objekt) in Propstack CRM.
Use this tool to:
- List a new property from an acquisition call
- Create a listing from an owner inquiry
- Add a property to a project
Use get_property_statuses to look up valid status IDs.
Use the relationships_attributes array to link an owner contact on creation.
rs_type values: APARTMENT, HOUSE, TRADE_SITE, GARAGE, SHORT_TERM_ACCOMODATION,
OFFICE, GASTRONOMY, INDUSTRY, STORE, SPECIAL_PURPOSE, INVESTMENT.
rs_category provides sub-types (e.g. PENTHOUSE, VILLA, MAISONETTE for APARTMENT/HOUSE).update_propertyUpdate an existing property in Propstack CRM.
Use this tool to:
- Update the price or rent
- Change property status (e.g. mark as reserved or sold)
- Edit description texts
- Assign to a different broker or project
- Update custom fields
Only provide the fields you want to change.
Use get_property_statuses to look up valid status IDs.get_property_statusesList all available property statuses in Propstack.
Returns statuses like "Verfügbar", "Reserviert", "Verkauft" with their IDs,
colors, and sort positions.
Use this tool to look up valid status IDs before:
- Filtering properties by status in search_properties
- Setting a property's status in create_property or update_propertysearch_companiesSearch Russian construction companies by category, region, and budget.
Returns company name, rating, prices, website, and phone number.
Args:
query: Free text search query (e.g. 'каркасные дома недорого', 'frame houses')
category: Company category filter (каркасные_дома, дома_из_бруса, газобетон, кирпич, недвижимость, модульные_дома, СИП)
region: Region or city name (e.g. 'Московская область', 'Санкт-Петербург', 'Краснодар')
budget_max: Maximum budget in rubles. Set to 0 for no limit.
limit: Number of results to return, maximum 20search_projectsSearch house building projects by area, floors, material, and price.
Returns project specifications, price, direct link, and company contacts.
Args:
area_min: Minimum house area in square meters. Set to 0 for no limit.
area_max: Maximum house area in square meters. Set to 0 for no limit.
floors: Number of floors/stories. Set to 0 for any.
material: Building material filter (каркас/frame, брус/timber, газобетон/aerated_concrete, кирпич/brick, СИП/SIP)
budget_max: Maximum price in rubles. Set to 0 for no limit.
region: Filter by company region or city name
query: Free text search in project name and description
limit: Number of results to return, maximum 20compare_companiesCompare 2-3 construction companies side by side on prices, ratings, number of projects, and specialization.
Args:
company_ids: Comma-separated company UUIDs to compare (2-3 IDs). Example: 'uuid1,uuid2,uuid3'calculate_costCalculate estimated construction cost based on real market data from the catalog.
Uses average price per m² by material and region from actual company prices and projects.
Args:
area: House area in square meters (required, e.g. 120)
material: Building material (каркас/frame, брус/timber, газобетон/aerated_concrete, кирпич/brick, СИП/SIP). Empty = average across all.
region: Region or city name for regional pricing. Empty = nationwide average.
floors: Number of floors (1 or 2). 0 = no adjustment.get_companyGet full company profile including contacts, prices, rating, reviews, and list of house projects.
Args:
company_id: Company UUID from search_companies resultsget_projectGet detailed house project information including specifications, price, features, and company contacts.
Args:
project_id: Project UUID from search_projects resultsget_categoriesGet all company categories with the number of companies in each category.get_regionsGet all available regions with the number of companies in each region.get_statsGet catalog statistics: total companies, projects, regions, categories, agent queries today, and leads generated.request_quoteSend a quote request to a construction company on behalf of the user.
Returns confirmation with lead ID and company contact details.
Args:
company_id: Target company UUID (required)
project_id: Specific project UUID if the user is interested in a particular house project
name: Client's name for the quote request
phone: Client's phone number for callback
email: Client's email address
comment: Additional comments or requirements for the quotemarket_analyticsGet comprehensive market analytics for the Russian construction market.
Returns: average prices, top companies by rating, market size, price distribution.
Perfect for investors, analysts, and companies entering the market.
Args:
region: Filter by region (e.g. 'Москва', 'Санкт-Петербург'). Empty = all regions.
category: Filter by category (e.g. 'Строительство домов'). Empty = all categories.find_best_companiesSmart lead generation: find the best construction companies matching your criteria.
Perfect for finding contractors, generating leads, or market research.
Args:
region: Filter by region name (e.g. 'Москва'). Empty = all.
category: Filter by category/subcategory. Empty = all.
min_rating: Minimum rating (0-5). 0 = no filter.
max_price: Maximum price per m2 in thousands RUB. 0 = no filter.
min_price: Minimum price per m2 in thousands RUB. 0 = no filter.
has_phone: Only companies with phone number.
has_projects: Only companies with project portfolio.
sort_by: Sort by: 'rating', 'price_asc', 'price_desc', 'reviews', 'projects'.
limit: Max results (1-50).Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"ashev87-propstack-mcp": {
"command": "npx",
"args": [
"-y",
"propstack-mcp-server"
],
"env": {
"PROPSTACK_API_KEY": "YOUR_PROPSTACK_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"mcp-market-russia": {
"url": "https://mcp-market.ru/mcp"
}
}
}