Skip to content
Agentmart
Submit a tool

Propstack MCP

Connect AI assistants to your Propstack real estate CRM (contacts, properties, deals).

Connector by ashev87 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 9
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/ashev87-propstack-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Connect AI assistants to your Propstack real estate CRM (contacts, properties, deals).

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
30 read · 19 write · 3 delete · 4 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 56

Read from the source code; the running server may list different tools.

Read 30 · Look things up without changing anything.

  • full_contact_360
  • get_contact
  • get_contact_favorites
  • get_contact_sources
  • get_pipeline
  • get_project
  • get_property
  • get_property_statuses
  • get_task
  • list_activity_types
  • list_contact_statuses
  • list_custom_fields
Show 18 more tools
  • list_documents
  • list_events
  • list_locations
  • list_pipelines
  • list_projects
  • list_property_images
  • list_reservation_reasons
  • list_search_profiles
  • list_tags
  • list_teams
  • list_users
  • list_webhooks
  • match_contacts_to_property
  • search_activities
  • search_contacts
  • search_contacts_by_phone
  • search_deals
  • search_properties

Write 19 · Create, change, send or run things.

  • create_contact
  • create_deal
  • create_ownership
  • create_partnership
  • create_property
  • create_search_profile
  • create_tag
  • create_task
  • create_webhook
  • send_email
  • update_contact
  • update_deal
Show 7 more tools
  • update_email
  • update_image
  • update_property
  • update_search_profile
  • update_task
  • upload_document
  • upload_image

Delete 3 · Delete, drop, revoke or wipe things.

  • delete_contact
  • delete_search_profile
  • delete_webhook

Not yet classified 4 · We could not tell from the name and description.

  • match_properties_to_contact
  • pipeline_summary
  • property_performance_report
  • smart_lead_intake

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • PROPSTACK_API_KEY

Network hosts it talks to 2

  • api.propstack.de · found in code
  • github.com · found in code

Files it touches

  • Any path the agent passes to its tools

Tools (56)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • create_contact

    Create 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.

  • create_deal

    Create a deal linking an interested contact to a property in Propstack. A deal represents a contact's interest in a property and tracks it through pipeline stages (e.g. Anfrage → Besichtigung → Reserviert → Notartermin → Verkauft). Use this tool after: - A viewing to formalize interest - A contact inquiry about a property - Moving a lead into the sales pipeline Requires client_id, property_id, and deal_stage_id. Use list_pipelines or get_pipeline to find valid pipeline and stage IDs.

  • create_ownership

    Link a contact as the OWNER (Eigentümer) of a property. Use this tool to: - Record property ownership ("Herr Müller owns Hauptstraße 12") - Set up owner relationships for acquisition properties - Link sellers to their properties The ownership appears on both the contact's and the property's record.

  • create_partnership

    Link a contact as a PARTNER (buyer, tenant, etc.) to a property. Use this tool to: - Link a buyer to a property ("Frau Schmidt is the buyer of Hauptstraße 12") - Link a tenant to a rental property - Create any named contact↔property relationship The name field describes the role (e.g. "Käufer", "Mieter", "Verwalter").

  • create_property

    Create 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).

  • create_search_profile

    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" …

  • create_tag

    Create a new tag/label (Merkmal) in Propstack. Tags are used to categorize contacts, properties, and activities. Optionally assign to a parent super-group (Obermerkmal) for hierarchy. Examples: "Penthouse-Käufer", "VIP", "Kapitalanleger", "Erstbezug".

  • create_task

    Create a task (note, to-do, appointment, or cancellation) in Propstack. This is the central write endpoint for ALL activity types. The mode is determined by which flags you set: MODE 1 — Note (Notiz): Just provide title + body. No special flags needed. Example: log a call note after a conversation. MODE 2 — To-do (Aufgabe): Set is_reminder: true + due_date. Example: "remind me to call Herr Müller back tomorrow" MODE 3 — Appointment (Termin): Set is_event: true + starts_at + ends_at. Example: "schedule a viewing at Musterstr 12 at 3pm" MODE 4 — Cancellation (Absage): Set rese…

  • create_webhook

    Create a webhook to subscribe to Propstack CRM events. Propstack will POST a JSON payload to target_url whenever the event fires. Use HMAC verification (secret in response) to validate payloads. Common events: - CLIENT_CREATED — new contact added - CLIENT_UPDATED — contact details changed - PROPERTY_UPDATED — property details or status changed Use this to set up automation triggers, e.g.: "Notify me when any property status changes" "Alert when a new contact is created"

  • delete_contact

    Delete 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 data

  • delete_search_profile

    Delete a search profile from Propstack. Use this tool when: - A contact has found a property and is no longer searching - The search profile was created in error - A contact explicitly asks to stop receiving matching notifications

  • delete_webhook

    Delete a webhook subscription from Propstack. Removes the webhook so Propstack will stop sending events to its URL.

  • full_contact_360

    Get a complete 360° view of a contact — everything you need before calling a client. Combines 4 API calls in parallel: - Full contact details with children, documents, relationships, owned properties - Search profiles (what they're looking for) - Active deals (which properties they're linked to) - Recent activity (last 10 interactions) Returns a complete contact dossier in one request. Use this when you need the full picture: "Tell me everything about Herr Weber." Data minimization (Art. 25 DSGVO): pass 'fields' with an array of contact field names to limit the contact detail section to onl…

  • get_contact

    Get 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.

  • get_contact_favorites

    Get properties that a contact has favorited/bookmarked. Returns the list of properties the contact has marked as favorites in Propstack. Use to understand which listings a buyer is most interested in.

Show 41 more tools
  • get_contact_sources

    List 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.

  • get_pipeline

    Get a single deal pipeline by ID with its stages. Returns the pipeline with all stages in order. Use this when you already know which pipeline you need and want its stage details.

  • get_project

    Get full details of a single project by ID. Returns the complete project with all units, images, floorplans, documents, and links. Use this tool to: - See how a project is performing (unit statuses) - Check how many units are still available vs. sold/reserved - View project media and documents - Get unit-level details (prices, sizes, statuses)

  • get_property

    Get 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).

  • get_property_statuses

    List 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_property

  • get_task

    Get full details of a single task by ID. Returns the task with all linked entities expanded (contacts, properties, projects, viewings) by default. Use this tool to: - View full context of an activity before acting on it - Check linked contacts and properties - See appointment details (time, location, state) - Check if a to-do has been completed

  • list_activity_types

    List all activity/task types in Propstack. These are templates for creating notes, todos (reminders), events, and messages. Each has an id, name, and category. Use these IDs when creating tasks: - category "for_notes" → note_type_id in create_task - category "for_reminders" → todo_type_id (when is_reminder: true) - category "for_events" → event_type_id (when is_event: true) - category "message" → snippet_id for email templates Categories map to search_activities filter: for_notes→note, for_reminders→reminder, for_events→event, message→message.

  • list_contact_statuses

    List contact statuses (Kontaktstatus) in Propstack. Use these IDs for search_contacts (status param) and create_contact/update_contact (client_status_id). E.g. "Lead", "Kunde", "Archiviert".

  • list_custom_fields

    List custom field definitions for an entity type in Propstack. IMPORTANT: Call this tool to discover what custom fields exist before reading or writing custom field values on contacts, properties, etc. Returns field groups, each containing field definitions with: - name: The API key to use (e.g. "cf_budget_range") - pretty_name: Human-readable label (e.g. "Budget Range") - type: Field type (String, Dropdown, Number, Date, etc.) - options: Available values for Dropdown fields To READ custom fields: use expand=true on search or get tools. To WRITE custom fields: use partial_custom_fields: {"c…

  • list_documents

    List documents attached to a property, project, or contact. Documents include floor plans (Grundrisse), exposés, contracts, photos, and any other uploaded files. Use this tool to: - See all documents for a property ("Where's the Grundriss?") - List a contact's uploaded files - Find exposés or contracts for a project - Check what's already been uploaded before adding more Filter by exactly one of property_id, project_id, or client_id.

  • list_events

    List calendar events (Termine) in Propstack. Events are appointments like property viewings, client meetings, notary appointments, etc. Use this tool to: - See what's scheduled this week (starts_at_after/starts_at_before) - List upcoming viewings for a broker (broker=ID) - Find cancelled appointments (state="cancelled") - Check recurring events - Filter by contact (client=ID) or property (property=ID) - Answer "what viewings are scheduled this week?" Event states: - neutral: Scheduled, not yet happened - took_place: Completed - cancelled: Was cancelled

  • list_locations

    List geographic areas/districts (Geolagen) in Propstack. Returns location IDs and names used for property and search profile location matching. Use location IDs when creating search profiles or filtering properties by area.

  • list_pipelines

    List all deal pipelines and their stages in Propstack. Returns each pipeline with its ordered stages, including stage IDs, names, positions, colors, and chance percentages. You NEED stage IDs from this tool to create or move deals. Call this before using create_deal or update_deal if you don't know the stage IDs. Typical pipelines: Sales (Verkauf), Acquisition (Akquise), Rental (Vermietung). Typical stages: Anfrage → Besichtigung → Reserviert → Notartermin → Verkauft.

  • list_projects

    List development projects in Propstack. A project is a "super-object" that groups multiple property units (e.g. a new-build apartment complex with 20 units). Use this tool to: - See all active development projects - Get an overview of unit counts and statuses - Find a project by name before drilling into its units Use expand=true to include custom fields in the response.

  • list_property_images

    List all images and floor plans of a property, in portal order. Returns each image's ID, title, position, floorplan/private flags and URL. Use the IDs with update_image. Image URLs are signed and may expire after a while; fetch them again rather than storing them.

  • list_reservation_reasons

    List deal cancellation reasons (Reservierungsgründe/Absagegründe). Use when creating deal cancellations (create_task with reservation_reason_id) or filtering lost deals (search_deals reservation_reason_ids).

  • list_search_profiles

    List search profiles (Suchprofile) in Propstack. A search profile captures what a buyer or renter is looking for — cities, price range, room count, features, etc. Every search profile belongs to a contact. Use this tool to: - See what a specific contact is looking for (filter by client) - List all active search profiles - Review criteria before matching properties Filter by contact ID to answer "What is this buyer looking for?"

  • list_tags

    List all tags/labels (Merkmale/Gruppen) in Propstack. Use these IDs to filter contacts (search_contacts group param) or assign tags (create_contact/update_contact group_ids). Filter by entity to get tags for contacts, properties, or activities. Entity: for_clients (default), for_properties, for_activities. Returns flat list: **Name** (ID: 123). Use super_groups param to optionally try hierarchical view via /super_groups.

  • list_teams

    List all teams/departments in Propstack. Returns teams with their broker member assignments. Use for team-level filtering and to understand the organizational structure.

  • list_users

    List all brokers/agents (Nutzer) in the Propstack account. Returns team members with their IDs, names, email, phone, position, team, and department assignments. You need broker IDs for: - Assigning contacts or properties to a broker - Filtering by broker in search tools - Setting the sender for emails (send_email broker_id) - Assigning tasks and events

  • list_webhooks

    List all configured webhooks in Propstack. Returns each webhook with its URL, subscribed events, active status, and HMAC secret. Use to review existing automation triggers.

  • match_contacts_to_property

    Find contacts whose search profiles match a property. Returns a ranked list with match scores. Use when a new listing comes in to find potential buyers/renters: "Who should I send this new listing to?" Logic: 1. Fetches the property details (type, price, rooms, space, city, features) 2. Fetches active search profiles (paginates, capped by max_profiles) 3. Scores each profile against the property on: marketing type, city, price range, room count, living space, property type, and features 4. Returns top 20 matches sorted by score with match/mismatch details

  • match_properties_to_contact

    Reverse matching: find properties that fit a contact's search profiles. The counterpart to match_contacts_to_property. Use it for "Which of our listings fit Herr Weber?" or before calling a buyer. Logic: 1. Loads the contact's active search profiles (or one specific profile) 2. Pre-filters properties via the API on marketing type, price/rent, rooms and living space (single property type too, when the profile names exactly one) 3. Scores every candidate on type, city, price/rent, rooms, space, property type and features (balcony, lift, garden, kitchen, cellar, rented) 4. Returns t…

  • pipeline_summary

    Pipeline overview — deals per stage, total values, and stale deals needing attention. Fetches all deal pipelines and deals, then aggregates: - Deal count per stage - Total value per stage (from deal price or property price) - Stale deals: deals with no update in 14+ days Filter by pipeline_id and/or broker_id. Use when asked: "How's the pipeline looking?" or "Give me a sales overview."

  • property_performance_report

    Performance report for a property — days on market, inquiry count, pipeline breakdown, and activity summary. Combines 3 API calls in parallel: - Full property details (with custom fields) - All deals/inquiries for this property - Activity feed (last 50 interactions) Calculates: days on market, total inquiries, deals by stage/category, and recent activity breakdown by type. Use when asked: "How is the Friedrichstr property doing?"

  • search_activities

    Search the activity feed/timeline in Propstack. Activities are the read-only feed of everything that happened: emails sent, notes logged, tasks created, events scheduled, cancellations, GDPR policy changes, etc. Use this tool to: - View the full interaction history for a contact (client_id) - See all activity on a property (property_id) - Track what a broker has been doing (broker_id) - Filter by activity type to find specific interactions - Answer "what happened with this contact/property this week?" Activity types: - message: Emails sent/received - note: Call notes, comments - reminder: T…

  • search_contacts

    Search 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 inclu…

  • search_contacts_by_phone

    Look 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_deals

    Search and filter deals (contact↔property relationships) in Propstack. Use this tool to: - Show all deals in a specific pipeline stage - Find deals for a contact or property - Track deal pipeline progress for a project - Find lost deals and cancellation reasons - Filter by broker, team, feeling (cold/warm/hot) A "deal" represents an interested contact linked to a property at a specific stage in a sales/rental pipeline (e.g. Anfrage → Besichtigung → Reserviert → Notartermin → Verkauft). Use include="client,property" to get expanded contact and property details in one request. Common queries…

  • search_properties

    Search 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–4…

  • send_email

    Send an email using a Propstack email template (snippet). Propstack sends emails through connected broker email accounts. The broker_id determines which account sends the email. The snippet_id selects the email template to use. Use this tool to: - Send an exposé to an interested contact - Send a follow-up email after a viewing - Send a confirmation or rejection to a lead Link the email to contacts, properties, and projects so it appears in the correct CRM activity feeds. Important: - broker_id must be a broker with a connected email account - snippet_id is the email template ID — the templ…

  • smart_lead_intake

    Complete lead intake workflow — dedup check, create/update contact, log notes, create deal if specific property, and set follow-up reminder. Perfect for post-call processing from a voice agent. Handles the entire intake in one tool call: 1. If phone or email provided → search for existing contact (dedup) 2. If found → update contact; if not → create new contact 3. If notes provided → log as a note task 4. If property_id provided → create deal at first pipeline stage 5. Create follow-up reminder for broker (due tomorrow 9am) Returns what was done: created vs updated, IDs of all created recor…

  • update_contact

    Update 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.

  • update_deal

    Update an existing deal in Propstack. Use this tool to: - Move a deal to the next pipeline stage (change deal_stage_id) - Update expected/agreed price - Add or update notes - Change broker assignment - Update feeling score after contact - Record cancellation reason Only provide the fields you want to change.

  • update_email

    Update an email in Propstack. Use this tool to: - Mark an email as read or unread - Archive an email - Categorize an email (set message_category_id) - Link an email to contacts, properties, or projects Only provide the fields you want to change.

  • update_image

    Update an image's title or portal visibility. Use list_property_images to find image IDs. Titles can be set per language with title_de / title_en. Only provide the fields you want to change.

  • update_property

    Update 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.

  • update_search_profile

    Update an existing search profile in Propstack. Use this tool to: - Expand or narrow budget ("increase max price to 450k") - Add or change cities ("also look in Potsdam") - Adjust room count or space requirements - Toggle feature requirements (add/remove balcony, lift, etc.) - Activate or deactivate the profile Only provide the fields you want to change.

  • update_task

    Update an existing task in Propstack. Use this tool to: - Mark a to-do as done - Reschedule an appointment (change starts_at/ends_at) - Add notes to an existing task (update body) - Change broker assignment - Update event state (took_place, cancelled) - Link additional contacts or properties Only provide the fields you want to change.

  • upload_document

    Upload a document to a property, project, or contact in Propstack. The doc field must be a base64 data URI, e.g.: "data:application/pdf;base64,JVBERi0xLjQ..." "data:image/png;base64,iVBORw0KGgo..." Attach to exactly one entity: property_id, project_id, or client_id. Use the boolean flags to classify the document: - is_floorplan: Mark as a floor plan (Grundriss) - is_exposee: Mark as an exposé document - is_private: Hide from public/portal views - on_landing_page: Show on the property landing page

  • upload_image

    Upload an image to a property or project in Propstack. The photo must be a base64 data URI, e.g. "data:image/jpeg;base64,/9j/4AAQ...". Attach to exactly one of property_id or project_id. is_private: false (default) = the image is published to portals; true = kept internal. The title is shown as caption and used in the file name. For AI-staged or edited images (virtual staging), say so in the title, e.g. "Wohnzimmer (virtuell möbliert)"; German law requires the label.

Signals

Stars
9
Forks
3
Open issues
2
Last commit
Oct 15, 2026 (13 days ago)
Last release
Jun 30, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.ashev87/propstack-mcp
Version
1.1.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

Propstack MCP. Agent Mart. https://agentmart.dev/connectors/ashev87-propstack-mcp (last updated 2026-10-25)