Propstack MCP
The Propstack MCP Server connects AI assistants (Claude, ChatGPT, Cursor) to the Propstack real estate CRM, enabling natural language management of contacts, properties, deals, and workflows.
Contact Management
Search, create, update, delete, and tag contacts with auto-deduplication
GDPR tracking, phone-based caller lookup, and lead source management
Full 360° contact view with relationships, documents, and owned properties
Property Management
Search listings with 11 range filters (price, rooms, area) and 17 sort fields
Create/update properties with owner relationships, media, and multilingual texts
Manage property statuses (Verfügbar, Reserviert, Verkauft, etc.)
Deal Pipeline
Create deals linking contacts to properties at specific pipeline stages
Move deals through stages, update price/notes, track win/loss and feeling scores
Pipeline summaries with deal counts, values, and stale deal alerts
Buyer Matching & Search Profiles
Create search profiles from natural language criteria (e.g., "3-Zimmer in Berlin, bis 400k, mit Balkon")
List, update, and delete buyer/renter search profiles
Auto-match and score contacts against new listings
Tasks & Calendar
Create and update tasks: notes, to-dos, appointments, cancellations
List calendar events filtered by date, broker, contact, or state
Email & Communication
Send templated emails linked to contacts and properties via Propstack snippets
Update emails: mark read/archived, categorize, link to CRM records
Documents
List and upload documents (floor plans, exposés, contracts) for properties, projects, or contacts
Activity Tracking
Full activity timeline (emails, notes, events, GDPR changes) filterable by contact, property, broker, or type
Relationships
Link contacts as property owners, buyers, tenants, or partners
Projects
List development projects and view unit-level details with statuses, media, and documents
Lookups & Configuration
Access pipelines, tags, custom fields, activity types, contact statuses, users/brokers, teams, and locations
Create tags for categorization
Smart Composite Workflows
Full 360° contact dossier in one call
Property performance report (days on market, inquiry count, pipeline breakdown)
Smart lead intake: dedup → create/update contact → log notes → create deal → set reminder
Scored buyer-to-property matching
Admin & Automation
Manage webhooks for CRM event automation (CLIENT_CREATED, PROPERTY_UPDATED, etc.)
Bulk export any CRM table as JSON for reporting or migration
View contact favorites (bookmarked properties)
Propstack MCP Server
Connect AI assistants (Claude, ChatGPT) to your Propstack real estate CRM.
Verbinden Sie KI-Assistenten mit Ihrem Propstack-CRM — Kontakte verwalten, Objekte durchsuchen, Deals pflegen, Besichtigungen planen und Suchprofile erstellen, alles per Sprache oder Chat.
What you can do / Was Sie damit machen koennen
Contact management — search, create, update, and tag contacts with GDPR tracking
Property search & management — filter by price, rooms, area, status; create and update listings
Deal pipeline — create deals, move through stages, track win/loss rates
Buyer matching — create search profiles from natural language ("3-Zimmer in Berlin, bis 400k, mit Balkon") and auto-match to new listings
Task & calendar — log call notes, set follow-up reminders, schedule viewings
Email — send templated emails linked to contacts and properties
360-degree contact view — get a complete briefing before every call
Pipeline dashboards — deal counts and values per stage, stale deal alerts
Lead intake — one-call workflow: dedup, create contact, log notes, create deal, set reminder
Data protection (DSGVO): Using this server sends personal data from your Propstack CRM into the LLM you connect (Claude, ChatGPT, …). You — the Propstack customer — remain the data controller. See Datenschutz (DSGVO) for responsibility, legal basis, the
fieldsdata-minimization parameter, and notes on automated decisions.
Related MCP server: 0nMCP
Quick Start
1. Set your API key
export PROPSTACK_API_KEY=your_api_key_here2a. Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"propstack": {
"command": "npx",
"args": ["-y", "propstack-mcp-server"],
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}2b. Claude Code (CLI)
Add to your project's .mcp.json:
{
"mcpServers": {
"propstack": {
"command": "npx",
"args": ["-y", "propstack-mcp-server"],
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}2c. ChatGPT
Go to Settings > Connectors > Developer Mode
Add a new MCP connector
Set the command to
npx -y propstack-mcp-serverAdd environment variable
PROPSTACK_API_KEY
2d. Cursor IDE
Open Settings (Ctrl+,) → search "MCP"
Edit MCP Servers JSON, or add
mcp.jsonin project root /.cursor/
Option A — local project (after npm run build):
{
"mcpServers": {
"propstack": {
"command": "node",
"args": ["./dist/index.js"],
"cwd": "C:/Users/you/path/to/propstack_mcp",
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}Or use .env in project root — the server loads it automatically; you can omit the env block.
Option B — npx (published package or npx from local):
{
"mcpServers": {
"propstack": {
"command": "npx",
"args": ["-y", "propstack-mcp-server"],
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}2e. Run directly
npm install propstack-mcp-server
PROPSTACK_API_KEY=your_key npx propstack-mcp-serverAPI Key / API-Schluessel
Get your Propstack API key:
Log in to crm.propstack.de
Go to Verwaltung > API-Schluessel (Administration > API Keys)
Create or copy your V1 API key
Hinweis: Der API-Schluessel bestimmt die Berechtigungen. Stellen Sie sicher, dass Lese- und Schreibzugriff fuer die benoetigten Endpunkte aktiviert ist.
Available Tools (49)
Contacts (Kontakte)
Tool | Description |
| Search and filter contacts by name, email, phone, status, tags, broker, GDPR status, custom fields |
| Get full details of a single contact with related data |
| Create a new contact (auto-dedup by email) |
| Update contact details, tags, GDPR status, broker assignment |
| Soft-delete a contact (30-day recycle bin) |
| List lead sources (ImmoScout24, Website, Empfehlung, etc.) |
| Look up a contact by phone number (formatting-insensitive) |
Properties (Objekte)
Tool | Description |
| Search properties with 11 range filters, 17 sort fields, custom-field filters |
| Get full property details including media and custom fields |
| Create a new property listing |
| Update price, status, description, broker assignment |
| List property statuses (Verfuegbar, Reserviert, Verkauft, etc.) |
Tasks (Aufgaben & Notizen)
Tool | Description |
| Create a note, to-do, appointment, or cancellation (polymorphic) |
| Mark done, reschedule, update notes |
| Get task details with linked contacts, properties, projects |
Deals (Pipeline)
Tool | Description |
| Search deals by stage, pipeline, category, broker, feeling score |
| Link a contact to a property at a pipeline stage |
| Move deal through pipeline stages, update price/notes |
Search Profiles (Suchprofile)
Tool | Description |
| List what buyers/renters are looking for |
| Capture buyer criteria from natural language |
| Adjust budget, cities, room count, features |
| Remove a search profile |
Projects (Projekte)
Tool | Description |
| List development projects with unit counts |
| Get project details with all units, media, documents |
Activities & Events (Aktivitaeten & Termine)
Tool | Description |
| Full activity timeline for a contact, property, or project |
| Calendar events — viewings, meetings, filtered by date/state |
Emails (E-Mails)
Tool | Description |
| Send email using a Propstack template (snippet) |
| Mark read/archived, categorize, link to CRM records |
Documents (Dokumente)
Tool | Description |
| List files attached to a property, project, or contact |
| Upload a document (base64 data URI) |
Relationships (Beziehungen)
Tool | Description |
| Link a contact as property owner (Eigentuemer) |
| Link a contact as buyer, tenant, etc. (Kaeufer, Mieter) |
Lookups (Konfiguration)
Tool | Description |
| Get deal pipelines with stages (IDs, names, positions) |
| Get a single pipeline with stage details |
| List tags/groups (Merkmale) — filter contacts by group IDs |
| Create a new tag for contacts, properties, or activities |
| List note/todo/event templates for create_task |
| List contact statuses for search/assign |
| List deal cancellation reasons |
| Discover custom field definitions (names, types, options) |
| List all brokers/agents with contact info |
| List teams/departments with member assignments |
| List geographic areas (Geolagen) for location matching |
Smart Composites (Intelligente Workflows)
Tool | Description |
| Complete contact dossier — info, search profiles, deals, activity |
| Days on market, inquiry count, pipeline breakdown, activity summary |
| Deals per stage, total values, stale deals needing attention |
| Full lead workflow: dedup, create/update, log notes, deal, reminder |
| Find buyers whose search profiles match a property |
Admin (Verwaltung)
Tool | Description |
| List all configured webhook subscriptions |
| Subscribe to CRM events (CLIENT_CREATED, PROPERTY_UPDATED, etc.) |
| Remove a webhook subscription |
| Get properties a contact has favorited |
Example Conversations / Beispiel-Konversationen
Morning Briefing / Morgen-Briefing
You: What's on my calendar today?
AI: calls
list_eventswith today's date range — You have 3 viewings scheduled...
Du: Gibt es neue Leads seit gestern?
KI: ruft
search_contactsmit created_at_from=gestern auf — 5 neue Kontakte...
Lead Intake / Leaderfassung
You: I just got off the phone with Maria Schmidt, +49 157 1234 5678. She's looking for a 3-room apartment in Berlin, budget 300-400k, must have a balcony. She found us on ImmoScout.
AI: calls
smart_lead_intake— Contact created (ID: 4521), call note logged, follow-up reminder set for tomorrow 9:00. Would you like me to create a search profile for her criteria?
Property Matching / Objekt-Matching
Du: Wir haben ein neues Listing: 3-Zimmer-Wohnung in Charlottenburg, 385.000 EUR. Wer kommt als Kaeufer in Frage?
KI: ruft
match_contacts_to_propertyauf — 12 passende Suchprofile gefunden. Top 3: Herr Weber (Score 95%), Frau Mueller (Score 88%), Herr Kim (Score 85%)...
Pipeline Review
You: How's our sales pipeline looking? Any stale deals?
AI: calls
pipeline_summary— 47 active deals, total value 12.3M EUR. 5 deals haven't been updated in 14+ days...
Pre-Call Briefing / Vor dem Anruf
Du: Gib mir alles ueber Kontakt 3847 — ich rufe gleich an.
KI: ruft
full_contact_360auf — Herr Weber, Rating 3 Sterne, sucht 3-Zimmer in Berlin/Potsdam bis 400k. 2 aktive Deals, letzte Aktivitaet vor 3 Tagen...
Datenschutz (DSGVO)
English summary: Using this MCP server sends personal data from your Propstack CRM into whichever LLM you connect. You (the Propstack customer) are the data controller (Verantwortlicher) under Art. 4(7) GDPR — the tool author hosts and processes nothing. The German section below covers controller responsibility, the legal basis your LLM processing needs, the
fieldsparameter for data minimization, automated-decision notes formatch_contacts_to_property, and audit logging. These points apply to any LLM tool handling customer data; they are stated here because they are easy to overlook.
Verantwortlichkeit
Dies ist ein quelloffenes Werkzeug (Open Source). Jeder Nutzer verbindet es über seinen eigenen API-Schluessel mit seinem eigenen Propstack-Konto. Der Server ist zustandslos, laeuft lokal beim jeweiligen Nutzer und speichert keine Daten. Es werden keine Daten durch den Autor des Werkzeugs gehostet oder verarbeitet. Der Propstack-Kunde, der dieses Werkzeug einsetzt, ist der Verantwortliche im Sinne von Art. 4 Nr. 7 DSGVO.
Verarbeitung durch das LLM
Bei der Nutzung dieses Werkzeugs werden personenbezogene Daten (Namen, Adressen, Kontaktdaten sowie je nach Tool auch Finanz- bzw. Deal-Daten) in das Kontextfenster des jeweils verbundenen LLM (Claude, ChatGPT usw.) uebertragen. Dies stellt einen Verarbeitungsvorgang im Sinne von Art. 4 Nr. 2 DSGVO dar. Der Verantwortliche benoetigt hierfuer:
eine Rechtsgrundlage nach Art. 6 DSGVO,
eine entsprechende Angabe in der eigenen Datenschutzerklaerung (Transparenzpflichten nach Art. 13/14 DSGVO gegenueber den betroffenen Personen),
gegebenenfalls einen Auftragsverarbeitungsvertrag (AVV) mit dem LLM-Anbieter.
Dies gilt fuer jedes LLM-gestuetzte Werkzeug, das Kundendaten verarbeitet, und ist nicht spezifisch fuer diesen MCP-Server — es wird hier dennoch ausdruecklich genannt, da es leicht uebersehen wird.
Hinweis zu automatisierten Entscheidungen (match_contacts_to_property)
Das Tool match_contacts_to_property erzeugt einen Uebereinstimmungs-Score (Ranking) zwischen Kontakten und einem Objekt — zur Vorlage fuer eine menschliche Pruefung. Es ist als Entscheidungsunterstuetzung konzipiert, nicht als autonomer Entscheider: Der Makler prueft die Ergebnisse und handelt manuell. Dadurch faellt die Nutzung nicht unter Art. 22 DSGVO (der ausschliesslich automatisierte Entscheidungen mit rechtlicher oder aehnlich erheblicher Wirkung betrifft). Der Verantwortliche sollte jedoch sicherstellen, dass das Tool auch tatsaechlich so eingesetzt wird — also nicht ohne menschliche Pruefung in eine vollstaendig automatisierte Ansprache eingebunden wird.
Datenminimierung (fields-Parameter)
Die Tools, die personenbezogene Daten in groesserem Umfang zurueckgeben — search_contacts, search_properties, search_deals und full_contact_360 — unterstuetzen einen optionalen fields-Parameter. Damit lassen sich gezielt nur die benoetigten Felder abrufen (z. B. ["first_name", "last_name", "email"]). Ohne fields bleibt das Verhalten unveraendert (alle Felder werden zurueckgegeben). Es wird empfohlen, dass Verantwortliche fields nutzen, um nur die fuer den jeweiligen Zweck erforderlichen Daten zu verarbeiten — im Sinne von Datenschutz durch Technikgestaltung (Art. 25 DSGVO).
Audit-Logging / Zugriffskontrolle
Protokollierung von Zugriffen und Zugriffskontrolle liegen in der Verantwortung des Verantwortlichen — etwa ueber die Berechtigungssteuerung von Propstack (API-Schluessel-Berechtigungen) oder ueber Protokollierung auf Client- bzw. Sitzungsebene. Da der Server zustandslos ist und lokal beim jeweiligen Nutzer laeuft, ist eine solche Protokollierung nicht im Werkzeug selbst enthalten.
Development
git clone <repo-url>
cd propstack-mcp-server
npm install
npm run build # tsc → dist/
npm start # requires PROPSTACK_API_KEYProject Structure
src/
index.ts # Server entry point (stdio transport)
propstack-client.ts # HTTP client with auth, retry, error handling
types/
propstack.ts # TypeScript interfaces for all API responses
tools/
helpers.ts # Shared formatting utilities
contacts.ts # 7 contact tools
properties.ts # 5 property tools
tasks.ts # 3 task tools (polymorphic: note/todo/event/cancel)
deals.ts # 3 deal pipeline tools
search-profiles.ts # 4 search profile tools
projects.ts # 2 project tools
activities.ts # 2 activity/event tools
emails.ts # 2 email tools
documents.ts # 2 document tools
relationships.ts # 2 relationship tools (ownership/partnership)
lookups.ts # 8 lookup/config tools
composites.ts # 5 smart composite tools
admin.ts # 5 admin tools (webhooks, export, favorites)License
MIT
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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