Skip to main content
Glama
MagicDoorInc

MagicDoor MCP server

Official
by MagicDoorInc

MagicDoor MCP 服务端

让 AI 助手读取你的 MagicDoor 资产组合——物业、单元、租约、租户、业主 及租约续签——通过你创建并可随时撤销的 API 密钥实现。

它在你自己机器上运行。没有托管服务,你的密钥除了发送给 MagicDoor 本身外永远不会离开你的电脑。

设置

1. 创建 API 密钥:在 MagicDoor 中进入 设置 → API 密钥。为助手选择所需的权限——properties:read、units:read、leases:read、tenants:read 和 owners:read 足以覆盖此处所有功能。密钥仅显示一次,请复制保存。

2. 添加服务端:将服务端添加到助手的 MCP 配置中:

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

对于 Claude Code,claude mcp add magicdoor -e MAGICDOOR_API_KEY=magic_… -- npx -y @magicdoor/mcp 实现相同效果。

3. 重启助手。询问类似“Oak Street 物业有多少单元?”的问题。

Related MCP server: Lanten MCP Server

工具

资产组合

工具

可回答的问题

list_properties / list_units

资产组合里有什么?这个物业有多少单元?

list_tenants / list_owners

谁住在哪里?谁拥有什么?如何联系他们?

租约——多个工具接受单个记录的 ID,或用于列表的筛选条件。

工具

可回答的问题

get_leases

谁在租用什么?哪些租约有余额?完整查看一份租约。

get_lease_ledger

他们欠什么、付了什么——费用或押金。

get_lease_transaction

单笔收支记录:费用、付款、贷项、滞纳金、转账或押金。

list_lease_recurring_items

每个周期账单或贷记的内容,而非已过账项目。

list_lease_related

租约的自动付款、续租邀约、搬出、补贴、文件或自定义字段。

list_expiring_leases / list_move_outs / list_lease_renewals

哪些即将到期、谁要搬走、哪些已续签。

list_lease_documents

租约是否已签署?

对话

工具

可回答的问题

list_chats / get_chat / get_chat_messages

人们在询问什么?说了什么?

list_unread_messages / search_chat_messages

哪些需要回复?有人提到锅炉吗?

会计

工具

可回答的问题

get_bank_accounts / get_chart_of_accounts

我们持有哪些账户?账簿如何结构?

get_transaction / get_bank_ledger_transfers / get_manual_journal_entries

这是什么?什么变动了?哪些是手动调整的?

list_deposit_slips

哪些付款被一并存入银行?

get_financial_report

资产负债表、损益表、现金流量表或总分类账。

get_rent_payments_report / get_owner_statement

收到了哪些租金?这位业主能拿到多少?

get_accounting_summary

准时租金、在线支付、每日资金流动、退货和争议。

维护

工具

可回答的问题

get_maintenance_requests

什么东西坏了?这周来了什么?完整查看一个请求。

get_work_orders / get_work_order_schedule

有哪些工单开着?周二有什么安排?

get_maintenance_history

这个情况如何?为什么花了这么久?

get_recurring_work_orders / get_recurring_work_order_stats

哪些重复发生、频率如何、成本多少?

get_vendors / get_vendor_detail

我们用谁做水管工?和他们花了多少钱?

list_maintenance_categories / get_run_books

工作如何分类?我们的流程是什么?

get_maintenance_request_stats

有多少未完成?

所有工具均为只读。 通过此服务端无法在 MagicDoor 中创建、更改或删除任何内容,这是刻意设计。

配置

变量

必需

默认值

用途

MAGICDOOR_API_KEY

是

—

你在 MagicDoor 创建的密钥。

MAGICDOOR_ENV

否

production

production、staging、demo 或 development。

MAGICDOOR_AUTH_URL

否

来自 MAGICDOOR_ENV

覆盖认证主机,用于本地开发。

MAGICDOOR_API_URL

否

来自 MAGICDOOR_ENV

覆盖门户 API 主机,用于本地开发。

MAGICDOOR_ACCOUNTING_URL

否

来自 MAGICDOOR_ENV

覆盖会计主机,用于本地开发。

MAGICDOOR_MAINTENANCE_URL

否

来自 MAGICDOOR_ENV

覆盖维护主机,用于本地开发。

访问机制

API 密钥是长期有效的;但它生成的令牌则不是。首次工具调用时,服务端会将你的密钥交换为一个 15 分钟有效的访问令牌,保存在内存中,并在到期前 1 分钟自动续期。没有刷新令牌——密钥本身就是持久的凭证。

由此产生以下两点,均为刻意设计:

  • 撤销密钥将立即停止此服务端。 没有待过期的会话。

  • 缩小你在 MagicDoor 中的权限也会缩小该密钥的权限。 每次颁发令牌时都会重新检查权限,因此密钥的权限绝不会超过你当前的权限。

发布

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

npm 不提供第二因素认证将无法发布。在 npmjs.com → Access Tokens → Generate New Token → Granular Access Token 创建一个精细访问令牌,勾选 Bypass 2FA,读写权限限制在 @magicdoor 范围内,并将其作为 NPM_TOKEN 传入。即使泄露,它也无法触及该范围之外的任何内容。如果你已设置双因素认证,则传入验证码:./publish.sh 123456。

publish.sh 拒绝在树不干净或版本已在 npm 上存在时运行,会进行类型检查、运行测试,然后发布。

开发

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

服务端通过 stdio 使用 MCP 协议,因此它期望另一端有一个客户端,而非终端。npx @modelcontextprotocol/inspector node dist/index.js 会为你提供一个工具来调试它。

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