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 fields y 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

  1. Ve a Configuración > Conectores > Modo desarrollador
  2. Añade un nuevo conector MCP
  3. Establece el comando en npx -y propstack-mcp-server
  4. Añade la variable de entorno PROPSTACK_API_KEY

2d. Cursor IDE

  1. Abre Configuración (Ctrl+,) → busca "MCP"
  2. Edita el JSON de Servidores MCP, o añade mcp.json en 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:

  1. Inicia sesión en crm.propstack.de
  2. Ve a Verwaltung > API-Schluessel (Administración > Claves de API)
  3. 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

HerramientaDescripción
search_contactsBusca y filtra contactos por nombre, correo, teléfono, estado, etiquetas, agente, estado GDPR, campos personalizados
get_contactObtén los detalles completos de un contacto con datos relacionados
create_contactCrea un nuevo contacto (deduplicación automática por correo)
update_contactActualiza detalles del contacto, etiquetas, estado GDPR, asignación de agente
delete_contactEliminación suave de un contacto (papelera de reciclaje de 30 días)
get_contact_sourcesLista fuentes de leads (ImmoScout24, Sitio web, Empfehlung, etc.)
search_contacts_by_phoneBusca un contacto por número de teléfono (insensible al formato)

Propiedades

HerramientaDescripción
search_propertiesBusca propiedades con 11 filtros de rango, 17 campos de ordenación, filtros de campos personalizados
get_propertyObtén los detalles completos de la propiedad, incluidos medios y campos personalizados
create_propertyCrea un nuevo anuncio de propiedad
update_propertyActualiza precio, estado, descripción, asignación de agente
get_property_statusesLista estados de propiedad (Verfuegbar, Reserviert, Verkauft, etc.)

Tareas

HerramientaDescripción
create_taskCrea una nota, tarea pendiente, cita o cancelación (polimórfico)
update_taskMarca como completado, reprograma, actualiza notas
get_taskObtén detalles de la tarea con contactos, propiedades y proyectos vinculados

Tratos (Pipeline)

HerramientaDescripción
search_dealsBusca tratos por etapa, pipeline, categoría, agente, puntuación de sentimiento
create_dealVincula un contacto a una propiedad en una etapa del pipeline
update_dealMueve el trato por las etapas del pipeline, actualiza precio/notas

Perfiles de búsqueda

HerramientaDescripción
list_search_profilesLista lo que buscan compradores/inquilinos
create_search_profileCaptura criterios de comprador a partir de lenguaje natural
update_search_profileAjusta presupuesto, ciudades, número de habitaciones, características
delete_search_profileElimina un perfil de búsqueda

Proyectos

HerramientaDescripción
list_projectsLista proyectos de desarrollo con recuento de unidades
get_projectObtén detalles del proyecto con todas las unidades, medios y documentos

Actividades y eventos

HerramientaDescripción
search_activitiesCronología completa de actividad para un contacto, propiedad o proyecto
list_eventsEventos de calendario — visitas, reuniones, filtrados por fecha/estado

Correos electrónicos

HerramientaDescripción
send_emailEnvía correo usando una plantilla de Propstack (fragmento)
update_emailMarca como leído/archivado, categoriza, vincula a registros del CRM

Documentos

HerramientaDescripción
list_documentsLista archivos adjuntos a una propiedad, proyecto o contacto
upload_documentSube un documento (URI de datos base64)

Relaciones

HerramientaDescripción
create_ownershipVincula un contacto como propietario de la propiedad (Eigentuemer)
create_partnershipVincula un contacto como comprador, inquilino, etc. (Kaeufer, Mieter)

Consultas (Configuración)

HerramientaDescripción
list_pipelinesObtén pipelines de tratos con etapas (IDs, nombres, posiciones)
get_pipelineObtén un pipeline individual con detalles de etapas
list_tagsLista etiquetas/grupos (Merkmale) — filtra contactos por IDs de grupo
create_tagCrea una nueva etiqueta para contactos, propiedades o actividades
list_activity_typesLista plantillas de nota/tarea/evento para create_task
list_contact_statusesLista estados de contacto para búsqueda/asignación
list_reservation_reasonsLista motivos de cancelación de tratos
list_custom_fieldsDescubre definiciones de campos personalizados (nombres, tipos, opciones)
list_usersLista todos los agentes/brókers con información de contacto
list_teamsLista equipos/departamentos con asignaciones de miembros
list_locationsLista áreas geográficas (Geolagen) para emparejamiento de ubicación

Composiciones inteligentes (Flujos de trabajo inteligentes)

HerramientaDescripción
full_contact_360Dossier completo del contacto — información, perfiles de búsqueda, tratos, actividad
property_performance_reportDías en el mercado, recuento de consultas, desglose del pipeline, resumen de actividad
pipeline_summaryTratos por etapa, valores totales, tratos estancados que requieren atención
smart_lead_intakeFlujo completo de leads: deduplicación, crear/actualizar, registrar notas, trato, recordatorio
match_contacts_to_propertyEncuentra compradores cuyos perfiles de búsqueda coincidan con una propiedad

Administración

HerramientaDescripción
list_webhooksLista todas las suscripciones de webhook configuradas
create_webhookSuscríbete a eventos del CRM (CLIENT_CREATED, PROPERTY_UPDATED, etc.)
delete_webhookElimina una suscripción de webhook
get_contact_favoritesObté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_events con el rango de fechas de hoy — Tienes 3 visitas programadas...

Tú: ¿Hay nuevos leads desde ayer?

IA: llama a search_contacts con 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 fields para la minimización de datos, notas sobre decisiones automatizadas para match_contacts_to_property y 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