Skip to main content
Glama
MagicDoorInc

MagicDoor MCP server

Official
by MagicDoorInc

Servidor MCP de MagicDoor

Permite que un asistente de IA lea tu cartera de MagicDoor: propiedades, unidades, contratos de arrendamiento, inquilinos, propietarios y renovaciones de contratos, usando una clave API que puedes crear y revocar en cualquier momento.

Se ejecuta en tu propia máquina. Nada está alojado, y tu clave nunca sale de tu ordenador excepto hacia MagicDoor.

Configuración

1. Crea una clave API en MagicDoor en Configuración → Claves API. Elige los permisos que debe tener el asistente: properties:read, units:read, leases:read, tenants:read y owners:read son suficientes para todo lo que hay aquí. La clave se muestra una vez; cópiala.

2. Añade el servidor a la configuración MCP de tu asistente:

{
  "mcpServers": {
    "magicdoor": {
      "command": "npx",
      "args": ["-y", "@magicdoor/mcp"],
      "env": { "MAGICDOOR_API_KEY": "magic_0_EXAMPLE-NOT-A-REAL-KEY" }
    }
  }
}

Para Claude Code, claude mcp add magicdoor -e MAGICDOOR_API_KEY=magic_… -- npx -y @magicdoor/mcp hace lo mismo.

3. Reinicia el asistente. Pregúntale algo como "¿cuántas unidades tenemos en la propiedad Oak Street?"

Related MCP server: Lanten MCP Server

Herramientas

Cartera

Herramienta

Responde preguntas como

list_properties / list_units

¿Qué hay en la cartera? ¿Cuántas unidades tiene esta propiedad?

list_tenants / list_owners

¿Quién vive dónde? ¿Quién posee qué? ¿Cómo puedo contactarlos?

Contratos de arrendamiento — varias herramientas requieren un id para un registro, o filtros para una lista.

Herramienta

Responde preguntas como

get_leases

¿Quién alquila qué? ¿Qué contratos tienen saldo? Un contrato completo.

get_lease_ledger

¿Qué deben, qué han pagado? Cargos o depósitos.

get_lease_transaction

Una entrada del libro mayor: cargo, pago, abono, recargo por demora, transferencia o depósito.

list_lease_recurring_items

¿Qué se factura o acredita cada período, en lugar de lo que se ha contabilizado.

list_lease_related

Pago automático, ofertas de renovación, mudanzas, subsidios, archivos o campos personalizados de un contrato.

list_expiring_leases / list_move_outs / list_lease_renewals

¿Qué está terminando, quién se va, qué se ha renovado.

list_lease_documents

¿Se ha firmado el contrato?

Conversaciones

Herramienta

Responde preguntas como

list_chats / get_chat / get_chat_messages

¿Qué preguntan las personas y qué se dijo?

list_unread_messages / search_chat_messages

¿Qué necesita respuesta? ¿Alguien mencionó la caldera?

Contabilidad

Herramienta

Responde preguntas como

get_bank_accounts / get_chart_of_accounts

¿Qué cuentas tenemos? ¿Cómo están estructurados los libros?

get_transaction / get_bank_ledger_transfers / get_manual_journal_entries

¿Qué fue esto? ¿Qué se movió? ¿Qué se ajustó manualmente?

list_deposit_slips

¿Qué pagos se depositaron juntos?

get_financial_report

Balance, cuenta de resultados, flujo de caja o libro mayor general.

get_rent_payments_report / get_owner_statement

¿Qué alquiler entró? ¿Qué recibe este propietario?

get_accounting_summary

Alquiler a tiempo, pagos online, movimientos diarios de dinero, devoluciones y disputas.

Mantenimiento

Herramienta

Responde preguntas como

get_maintenance_requests

¿Qué está averiado? ¿Qué ha entrado esta semana? Una solicitud completa.

get_work_orders / get_work_order_schedule

¿Qué trabajo está abierto? ¿Qué pasa el martes?

get_maintenance_history

¿Qué pasó con esto y por qué está tardando tanto?

get_recurring_work_orders / get_recurring_work_order_stats

¿Qué se repite, con qué frecuencia, a qué coste?

get_vendors / get_vendor_detail

¿A quién usamos para fontanería? ¿Cuánto gastamos con ellos?

list_maintenance_categories / get_run_books

¿Cómo se clasifica el trabajo? ¿Cuál es nuestro proceso?

get_maintenance_request_stats

¿Cuánto está pendiente?

Todas las herramientas son de solo lectura. No hay forma de crear, cambiar o eliminar nada en MagicDoor a través de este servidor, por diseño.

Configuración

Variable

Obligatorio

Valor por defecto

Propósito

MAGICDOOR_API_KEY

sí

—

La clave que creaste en MagicDoor.

MAGICDOOR_ENV

no

production

production, staging, demo o development.

MAGICDOOR_AUTH_URL

no

de MAGICDOOR_ENV

Sobrescribe el host de autenticación, para desarrollo local.

MAGICDOOR_API_URL

no

de MAGICDOOR_ENV

Sobrescribe el host de la API del portal, para desarrollo local.

MAGICDOOR_ACCOUNTING_URL

no

de MAGICDOOR_ENV

Sobrescribe el host de contabilidad, para desarrollo local.

MAGICDOOR_MAINTENANCE_URL

no

de MAGICDOOR_ENV

Sobrescribe el host de mantenimiento, para desarrollo local.

Cómo funciona el acceso

La clave API es de larga duración; los tokens que produce no lo son. En la primera llamada a una herramienta, el servidor intercambia tu clave por un token de acceso de 15 minutos, lo guarda en memoria y lo renueva un minuto antes de que expire. No hay token de actualización: la clave en sí misma es la credencial duradera.

Dos cosas se derivan de esto, y ambas son deliberadas:

  • Revocar la clave detiene este servidor inmediatamente. No hay sesión que caduque.

  • Reducir tus propios permisos de MagicDoor también reduce los de la clave. Los permisos se vuelven a comprobar cada vez que se emite un token, por lo que una clave nunca puede hacer más de lo que tú puedes hacer en ese momento.

Publicación

npm version patch                  # or minor, or major
NPM_TOKEN=npm_xxx ./publish.sh

npm no publicará sin un segundo factor. Crea un token de acceso granular en npmjs.com → Tokens de acceso → Generar nuevo token → Token de acceso granular, con la casilla Omitir 2FA marcada y permisos de lectura/escritura limitados al ámbito @magicdoor, y pásalo como NPM_TOKEN. No puede tocar nada fuera de ese ámbito incluso si se filtra. Si tienes configurado 2FA en su lugar, pasa el código: ./publish.sh 123456.

publish.sh se niega a ejecutarse en un árbol sucio o en una versión que ya está en npm, comprueba tipos, ejecuta las pruebas y luego publica.

Desarrollo

npm install
npm run build
MAGICDOOR_API_KEY=magic_… MAGICDOOR_ENV=development node dist/index.js

El servidor habla MCP sobre stdio, por lo que espera un cliente al otro lado en lugar de una terminal. npx @modelcontextprotocol/inspector node dist/index.js te da uno para interactuar con él.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to securely interact with rental management data (leases, rent status, tenant records, tax filings) through a per-user OAuth 2.0 authenticated MCP server, with human-in-the-loop for sensitive actions.
    5
    AGPL 3.0