Propstack MCP Server
Conecta asistentes de IA con el CRM inmobiliario Propstack. Busca contactos, gestiona propiedades, rastrea acuerdos, programa visitas y administra todo tu pipeline inmobiliario mediante lenguaje natural. 47 herramientas que cubren la API completa de Propstack.
Documentación
Propstack MCP Server
Conecta asistentes de IA (Claude, ChatGPT) a tu CRM inmobiliario de Propstack.
Conecta asistentes de IA con tu CRM de Propstack — gestiona contactos, busca propiedades, mantén tratos, planifica visitas y crea perfiles de búsqueda, todo por voz o chat.
Qué puedes hacer
- Gestión de contactos — busca, crea, actualiza y etiqueta contactos con seguimiento GDPR
- Búsqueda y gestión de propiedades — filtra por precio, habitaciones, superficie, estado; crea y actualiza anuncios
- Pipeline de tratos — crea tratos, muévelos por etapas, haz seguimiento de tasas de éxito/fracaso
- Emparejamiento de compradores — crea perfiles de búsqueda a partir de lenguaje natural ("3 habitaciones en Berlín, hasta 400k, con balcón") y empareja automáticamente con nuevos anuncios
- Tareas y calendario — registra notas de llamadas, establece recordatorios de seguimiento, programa visitas
- Correo electrónico — envía correos con plantillas vinculados a contactos y propiedades
- Vista de contacto de 360 grados — obtén un informe completo antes de cada llamada
- Paneles de pipeline — recuento y valor de tratos por etapa, alertas de tratos estancados
- Captación de leads — flujo de una llamada: deduplicación, creación de contacto, registro de notas, creación de trato, recordatorio
Protección de datos (DSGVO): El uso de este servidor envía datos personales de tu CRM de Propstack al LLM que conectes (Claude, ChatGPT, …). Tú — el cliente de Propstack — sigues siendo el responsable del tratamiento. Consulta Protección de datos (DSGVO) para conocer la responsabilidad, la base legal, el parámetro de minimización de datos
fieldsy las notas sobre decisiones automatizadas.
Inicio rápido
1. Configura tu clave de API
export PROPSTACK_API_KEY=your_api_key_here
2a. Claude Desktop
Añade a tu configuración de Claude Desktop (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)
Añade al .mcp.json de tu proyecto:
{
"mcpServers": {
"propstack": {
"command": "npx",
"args": ["-y", "propstack-mcp-server"],
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}
2c. ChatGPT
- Ve a Configuración > Conectores > Modo desarrollador
- Añade un nuevo conector MCP
- Establece el comando en
npx -y propstack-mcp-server - Añade la variable de entorno
PROPSTACK_API_KEY
2d. Cursor IDE
- Abre Configuración (Ctrl+,) → busca "MCP"
- Edita el JSON de Servidores MCP, o añade
mcp.jsonen la raíz del proyecto /.cursor/
Opción A — proyecto local (después de 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"
}
}
}
}
O usa .env en la raíz del proyecto — el servidor lo carga automáticamente; puedes omitir el bloque env.
Opción B — npx (paquete publicado o npx desde local):
{
"mcpServers": {
"propstack": {
"command": "npx",
"args": ["-y", "propstack-mcp-server"],
"env": {
"PROPSTACK_API_KEY": "your_api_key_here"
}
}
}
}
2e. Ejecutar directamente
npm install propstack-mcp-server
PROPSTACK_API_KEY=your_key npx propstack-mcp-server
Clave de API
Obtén tu clave de API de Propstack:
- Inicia sesión en crm.propstack.de
- Ve a Verwaltung > API-Schluessel (Administración > Claves de API)
- Crea o copia tu clave de API V1
Nota: La clave de API determina los permisos. Asegúrate de que el acceso de lectura y escritura esté activado para los endpoints necesarios.
Herramientas disponibles (49)
Contactos
| Herramienta | Descripción |
|---|---|
search_contacts | Busca y filtra contactos por nombre, correo, teléfono, estado, etiquetas, agente, estado GDPR, campos personalizados |
get_contact | Obtén los detalles completos de un contacto con datos relacionados |
create_contact | Crea un nuevo contacto (deduplicación automática por correo) |
update_contact | Actualiza detalles del contacto, etiquetas, estado GDPR, asignación de agente |
delete_contact | Eliminación suave de un contacto (papelera de reciclaje de 30 días) |
get_contact_sources | Lista fuentes de leads (ImmoScout24, Sitio web, Empfehlung, etc.) |
search_contacts_by_phone | Busca un contacto por número de teléfono (insensible al formato) |
Propiedades
| Herramienta | Descripción |
|---|---|
search_properties | Busca propiedades con 11 filtros de rango, 17 campos de ordenación, filtros de campos personalizados |
get_property | Obtén los detalles completos de la propiedad, incluidos medios y campos personalizados |
create_property | Crea un nuevo anuncio de propiedad |
update_property | Actualiza precio, estado, descripción, asignación de agente |
get_property_statuses | Lista estados de propiedad (Verfuegbar, Reserviert, Verkauft, etc.) |
Tareas
| Herramienta | Descripción |
|---|---|
create_task | Crea una nota, tarea pendiente, cita o cancelación (polimórfico) |
update_task | Marca como completado, reprograma, actualiza notas |
get_task | Obtén detalles de la tarea con contactos, propiedades y proyectos vinculados |
Tratos (Pipeline)
| Herramienta | Descripción |
|---|---|
search_deals | Busca tratos por etapa, pipeline, categoría, agente, puntuación de sentimiento |
create_deal | Vincula un contacto a una propiedad en una etapa del pipeline |
update_deal | Mueve el trato por las etapas del pipeline, actualiza precio/notas |
Perfiles de búsqueda
| Herramienta | Descripción |
|---|---|
list_search_profiles | Lista lo que buscan compradores/inquilinos |
create_search_profile | Captura criterios de comprador a partir de lenguaje natural |
update_search_profile | Ajusta presupuesto, ciudades, número de habitaciones, características |
delete_search_profile | Elimina un perfil de búsqueda |
Proyectos
| Herramienta | Descripción |
|---|---|
list_projects | Lista proyectos de desarrollo con recuento de unidades |
get_project | Obtén detalles del proyecto con todas las unidades, medios y documentos |
Actividades y eventos
| Herramienta | Descripción |
|---|---|
search_activities | Cronología completa de actividad para un contacto, propiedad o proyecto |
list_events | Eventos de calendario — visitas, reuniones, filtrados por fecha/estado |
Correos electrónicos
| Herramienta | Descripción |
|---|---|
send_email | Envía correo usando una plantilla de Propstack (fragmento) |
update_email | Marca como leído/archivado, categoriza, vincula a registros del CRM |
Documentos
| Herramienta | Descripción |
|---|---|
list_documents | Lista archivos adjuntos a una propiedad, proyecto o contacto |
upload_document | Sube un documento (URI de datos base64) |
Relaciones
| Herramienta | Descripción |
|---|---|
create_ownership | Vincula un contacto como propietario de la propiedad (Eigentuemer) |
create_partnership | Vincula un contacto como comprador, inquilino, etc. (Kaeufer, Mieter) |
Consultas (Configuración)
| Herramienta | Descripción |
|---|---|
list_pipelines | Obtén pipelines de tratos con etapas (IDs, nombres, posiciones) |
get_pipeline | Obtén un pipeline individual con detalles de etapas |
list_tags | Lista etiquetas/grupos (Merkmale) — filtra contactos por IDs de grupo |
create_tag | Crea una nueva etiqueta para contactos, propiedades o actividades |
list_activity_types | Lista plantillas de nota/tarea/evento para create_task |
list_contact_statuses | Lista estados de contacto para búsqueda/asignación |
list_reservation_reasons | Lista motivos de cancelación de tratos |
list_custom_fields | Descubre definiciones de campos personalizados (nombres, tipos, opciones) |
list_users | Lista todos los agentes/brókers con información de contacto |
list_teams | Lista equipos/departamentos con asignaciones de miembros |
list_locations | Lista áreas geográficas (Geolagen) para emparejamiento de ubicación |
Composiciones inteligentes (Flujos de trabajo inteligentes)
| Herramienta | Descripción |
|---|---|
full_contact_360 | Dossier completo del contacto — información, perfiles de búsqueda, tratos, actividad |
property_performance_report | Días en el mercado, recuento de consultas, desglose del pipeline, resumen de actividad |
pipeline_summary | Tratos por etapa, valores totales, tratos estancados que requieren atención |
smart_lead_intake | Flujo completo de leads: deduplicación, crear/actualizar, registrar notas, trato, recordatorio |
match_contacts_to_property | Encuentra compradores cuyos perfiles de búsqueda coincidan con una propiedad |
Administración
| Herramienta | Descripción |
|---|---|
list_webhooks | Lista todas las suscripciones de webhook configuradas |
create_webhook | Suscríbete a eventos del CRM (CLIENT_CREATED, PROPERTY_UPDATED, etc.) |
delete_webhook | Elimina una suscripción de webhook |
get_contact_favorites | Obtén propiedades que un contacto ha marcado como favoritas |
Conversaciones de ejemplo
Informe matutino
Tú: ¿Qué hay en mi calendario hoy?
IA: llama a
list_eventscon el rango de fechas de hoy — Tienes 3 visitas programadas...
Tú: ¿Hay nuevos leads desde ayer?
IA: llama a
search_contactscon created_at_from=ayer — 5 nuevos contactos...
Captación de leads
Tú: Acabo de colgar con Maria Schmidt, +49 157 1234 5678. Busca un apartamento de 3 habitaciones en Berlín, presupuesto 300-400k, debe tener balcón. Nos encontró en ImmoScout.
IA: llama a
smart_lead_intake— Contacto creado (ID: 4521), nota de llamada registrada, recordatorio de seguimiento establecido para mañana a las 9:00. ¿Quieres que cree un perfil de búsqueda con sus criterios?
Emparejamiento de propiedades
Tú: Tenemos un nuevo anuncio: apartamento de 3 habitaciones en Charlottenburg, 385.000 EUR. ¿Quién podría ser comprador?
IA: llama a
match_contacts_to_property— Se encontraron 12 perfiles de búsqueda coincidentes. Top 3: Sr. Weber (puntuación 95%), Sra. Mueller (puntuación 88%), Sr. Kim (puntuación 85%)...
Revisión del pipeline
Tú: ¿Cómo va nuestro pipeline de ventas? ¿Hay tratos estancados?
IA: llama a
pipeline_summary— 47 tratos activos, valor total 12,3M EUR. 5 tratos no se han actualizado en más de 14 días...
Informe previo a la llamada
Tú: Dame todo sobre el contacto 3847 — voy a llamar ahora.
IA: llama a
full_contact_360— Sr. Weber, calificación 3 estrellas, busca 3 habitaciones en Berlín/Potsdam hasta 400k. 2 tratos activos, última actividad hace 3 días...
Protección de datos (DSGVO)
Resumen en español: El uso de este servidor MCP envía datos personales de tu CRM de Propstack al LLM que conectes. Tú (el cliente de Propstack) eres el responsable del tratamiento (Verantwortlicher) según el Art. 4(7) del RGPD — el autor de la herramienta no aloja ni procesa nada. La sección en español a continuación cubre la responsabilidad del responsable, la base legal que necesita tu procesamiento con LLM, el parámetro
fieldspara la minimización de datos, notas sobre decisiones automatizadas paramatch_contacts_to_propertyy registro de auditoría. Estos puntos se aplican a cualquier herramienta LLM que maneje datos de clientes; se indican aquí porque es fácil pasarlos por alto.
Responsabilidad
Esta es una herramienta de código abierto (Open Source). Cada usuario la conecta con su propia clave de API a su propia cuenta de Propstack. El servidor no tiene estado, se ejecuta localmente en el equipo del usuario y no almacena datos. El autor de la herramienta no aloja ni procesa datos. El cliente de Propstack que utiliza esta herramienta es el responsable del tratamiento en el sentido del Art. 4 N.º 7 del RGPD.
Procesamiento por el LLM
Al utilizar esta herramienta, los datos personales (nombres, direcciones, datos de contacto y, según la herramienta, también datos financieros o de tratos) se transfieren a la ventana de contexto del LLM conectado (Claude, ChatGPT, etc.). Esto constituye un proceso de tratamiento en el sentido del Art. 4 N.º 2 del RGPD. El responsable del tratamiento necesita para ello:
- una base legal según el Art. 6 del RGPD,
- una indicación correspondiente en su propia política de privacidad (obligaciones de transparencia según los Arts. 13/14 del RGPD hacia las personas afectadas),
- si procede, un contrato de procesamiento de datos (AVV) con el proveedor del LLM.
Esto se aplica a cualquier herramienta basada en LLM que procese datos de clientes, y no es específico de este servidor MCP — no obstante, se menciona aquí explícitamente porque es fácil pasarlo por alto.
Nota sobre decisiones automatizadas (match_contacts_to_property)
La herramienta match_contacts_to_property genera una puntuación de coincidencia (ranking) entre contactos y una propiedad — para su revisión humana. Está diseñada como apoyo a la decisión, no como decisor autónomo: el agente revisa los resultados y actúa manualmente. Por ello, su uso no cae bajo el Art. 22 del RGPD (que se refiere exclusivamente a decisiones automatizadas con efectos jurídicos o similares significativos). No obstante, el responsable debe asegurarse de que la herramienta se utilice efectivamente de esta manera — es decir, que no se integre en una comunicación totalmente automatizada sin revisión humana.
Minimización de datos (parámetro fields)
Las herramientas que devuelven datos personales en mayor volumen — search_contacts, search_properties, search_deals y full_contact_360 — admiten un parámetro opcional fields. Esto permite recuperar únicamente los campos necesarios (p. ej., ["first_name", "last_name", "email"]). Sin fields, el comportamiento permanece sin cambios (se devuelven todos los campos). Se recomienda que los responsables utilicen fields para procesar solo los datos necesarios para cada propósito — en el sentido de protección de datos desde el diseño (Art. 25 RGPD).
Registro de auditoría / Control de acceso
El registro de accesos y el control de acceso son responsabilidad del responsable — por ejemplo, mediante el control de permisos de Propstack (permisos de claves API) o mediante el registro a nivel de cliente o sesión. Dado que el servidor no tiene estado y se ejecuta localmente en el usuario respectivo, dicho registro no está incluido en la propia herramienta.
Desarrollo
git clone <repo-url>
cd propstack-mcp-server
npm install
npm run build # tsc → dist/
npm start # requires PROPSTACK_API_KEY
Estructura del proyecto
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)
Licencia
MIT