DoorLoop MCP by usefulapi

Read DoorLoop properties, units, leases, tenants and payments; create tasks and task updates.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
90%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~5,255token 数(工具定义)
~2.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.11%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "doorloop": {
      "url": "https://doorloop.usefulapi.io/mcp"
    }
  }
}

远程端点

https://doorloop.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(21)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢doorloop_get_current_user

Get the DoorLoop user that created this API key. Good first call to confirm the connection. DoorLoop API: GET /users/me.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_properties(text, group, class, owner, page_number, ...)

List properties (buildings) with address, class and portfolio. DoorLoop API: GET /properties.

输入模式

{
  "type": "object",
  "properties": {
    "text": {
      "description": "Filter by property name.",
      "type": "string"
    },
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "class": {
      "description": "Filter by property class.",
      "type": "string",
      "enum": [
        "RESIDENTIAL",
        "COMMERCIAL"
      ]
    },
    "owner": {
      "description": "Filter by owner id.",
      "type": "string"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_get_property(property_id)

Get one property by id. DoorLoop API: GET /properties/{propertyId}.

输入模式

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "minLength": 1,
      "description": "The property_id (from the matching list tool)."
    }
  },
  "required": [
    "property_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_units(group, property, owner, text, active, ...)

List rental units with rent, bedrooms and status. Without filter_active the API returns active units only. DoorLoop API: GET /units.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "owner": {
      "description": "Filter by owner id.",
      "type": "string"
    },
    "text": {
      "description": "Filter by unit name.",
      "type": "string"
    },
    "active": {
      "description": "Which units to return by status.",
      "type": "string",
      "enum": [
        "true",
        "false",
        "all"
      ]
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_get_unit(unit_id)

Get one unit by id. DoorLoop API: GET /units/{unitId}.

输入模式

{
  "type": "object",
  "properties": {
    "unit_id": {
      "type": "string",
      "minLength": 1,
      "description": "The unit_id (from the matching list tool)."
    }
  },
  "required": [
    "unit_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_leases(group, property, owner, unit, tenant, ...)

List leases with dates, rent, status and outstanding balance. Use calculatedStatus or situation to find at-risk or late leases. DoorLoop API: GET /leases.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "owner": {
      "description": "Filter by owner id.",
      "type": "string"
    },
    "unit": {
      "description": "Filter by unit id.",
      "type": "string"
    },
    "tenant": {
      "description": "Filter by tenant id.",
      "type": "string"
    },
    "text": {
      "description": "Filter by lease name.",
      "type": "string"
    },
    "start_date_from": {
      "description": "Lease start date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "start_date_to": {
      "description": "Lease start date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date_from": {
      "description": "Lease end date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date_to": {
      "description": "Lease end date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "propertyClass": {
      "description": "Filter by property class.",
      "type": "string",
      "enum": [
        "RESIDENTIAL",
        "COMMERCIAL"
      ]
    },
    "outstandingBalanceGreaterThan": {
      "description": "Only leases with an outstanding balance above this amount.",
      "type": "number"
    },
    "status": {
      "description": "Filter by lease status.",
      "type": "string",
      "enum": [
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "term": {
      "description": "Filter by lease term.",
      "type": "string",
      "enum": [
        "Rollover",
        "AtWill"
      ]
    },
    "calculatedStatus": {
      "description": "Collections stage.",
      "type": "string",
      "enum": [
        "IN_EVICTION",
        "PAY_OR_QUIT_EXPIRED",
        "PAY_OR_QUIT_SENT",
        "EXPIRED",
        "AT_RISK",
        "ACTIVE"
      ]
    },
    "situation": {
      "description": "Lease situation from balance and lifecycle.",
      "type": "string",
      "enum": [
        "BALANCE_DUE",
        "CREDIT_AVAILABLE",
        "ZERO_BALANCE",
        "EXPIRED",
        "EVICTION"
      ]
    },
    "evictionPending": {
      "description": "Only leases with a pending eviction.",
      "type": "boolean"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_get_lease(lease_id)

Get one lease by id. DoorLoop API: GET /leases/{leaseId}.

输入模式

{
  "type": "object",
  "properties": {
    "lease_id": {
      "type": "string",
      "minLength": 1,
      "description": "The lease_id (from the matching list tool)."
    }
  },
  "required": [
    "lease_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_lease_tenants(group, property, lease, status, text, ...)

List tenants joined to their leases, with move-in and move-out dates. Best way to map tenants to leases. DoorLoop API: GET /leases/tenants.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "lease": {
      "description": "Filter by lease id.",
      "type": "string"
    },
    "status": {
      "description": "Occupancy status.",
      "type": "string",
      "enum": [
        "PAST",
        "CURRENT",
        "FUTURE"
      ]
    },
    "text": {
      "description": "Filter by tenant name or email.",
      "type": "string"
    },
    "movedInAt_from": {
      "description": "Move-in date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "movedInAt_to": {
      "description": "Move-in date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_tenants(group, property, lease, unit, text, ...)

List tenants and prospects with contact details. DoorLoop API: GET /tenants.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "lease": {
      "description": "Filter by lease id.",
      "type": "string"
    },
    "unit": {
      "description": "Filter by unit id.",
      "type": "string"
    },
    "text": {
      "description": "Filter by tenant name or email.",
      "type": "string"
    },
    "type": {
      "description": "Filter by tenant type.",
      "type": "string",
      "enum": [
        "LEASE_TENANT",
        "PROSPECT_TENANT"
      ]
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_get_tenant(tenant_id)

Get one tenant by id. DoorLoop API: GET /tenants/{tenantId}.

输入模式

{
  "type": "object",
  "properties": {
    "tenant_id": {
      "type": "string",
      "minLength": 1,
      "description": "The tenant_id (from the matching list tool)."
    }
  },
  "required": [
    "tenant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_lease_payments(lease, property, owner, date_from, date_to, ...)

List rent payments received on leases. DoorLoop API: GET /lease-payments.

输入模式

{
  "type": "object",
  "properties": {
    "lease": {
      "description": "Filter by lease id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "owner": {
      "description": "Filter by owner id.",
      "type": "string"
    },
    "date_from": {
      "description": "Payment date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "date_to": {
      "description": "Payment date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_lease_charges(lease, property, owner, unit, date_from, ...)

List charges (rent, fees, late fees) billed on leases. Use totalBalanceGreaterThan to find unpaid charges. DoorLoop API: GET /lease-charges.

输入模式

{
  "type": "object",
  "properties": {
    "lease": {
      "description": "Filter by lease id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "owner": {
      "description": "Filter by owner id.",
      "type": "string"
    },
    "unit": {
      "description": "Filter by unit id.",
      "type": "string"
    },
    "date_from": {
      "description": "Charge date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "date_to": {
      "description": "Charge date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "totalBalanceGreaterThan": {
      "description": "Only charges with a remaining balance above this amount.",
      "type": "number"
    },
    "lateFeeCharges": {
      "description": "Only late-fee charges.",
      "type": "boolean"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_tasks(propertyGroup, property, unit, type, status, ...)

List tasks, work orders, tenant requests and owner requests. DoorLoop API: GET /tasks.

输入模式

{
  "type": "object",
  "properties": {
    "propertyGroup": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "unit": {
      "description": "Filter by unit id.",
      "type": "string"
    },
    "type": {
      "description": "Filter by task type.",
      "type": "string",
      "enum": [
        "INTERNAL_TASK",
        "WORK_ORDER",
        "TENANT_REQUEST",
        "OWNER_REQUEST"
      ]
    },
    "status": {
      "description": "Filter by task status.",
      "type": "string",
      "enum": [
        "NOT_STARTED",
        "IN_PROGRESS",
        "COMPLETED",
        "NOT_COMPLETED",
        "RECEIVED",
        "ARCHIVED"
      ]
    },
    "createdAt_from": {
      "description": "Created from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "createdAt_to": {
      "description": "Created to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "dueDate_from": {
      "description": "Due date from (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "dueDate_to": {
      "description": "Due date to (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "assignedToUser": {
      "description": "Filter by user id or \"unassigned\".",
      "type": "string"
    },
    "text": {
      "description": "Filter by subject, description or reference.",
      "type": "string"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_get_task(task_id)

Get one task by id. DoorLoop API: GET /tasks/{taskId}.

输入模式

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "minLength": 1,
      "description": "The task_id (from the matching list tool)."
    }
  },
  "required": [
    "task_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_owners(group, property, active, text, page_number, ...)

List property owners. DoorLoop API: GET /owners.

输入模式

{
  "type": "object",
  "properties": {
    "group": {
      "description": "Filter by portfolio id.",
      "type": "string"
    },
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "active": {
      "description": "Filter by active or inactive.",
      "type": "boolean"
    },
    "text": {
      "description": "Filter by owner name or email.",
      "type": "string"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_vendors(property, active, insurance_expires_before, openBalance, page_number, ...)

List maintenance vendors. DoorLoop API: GET /vendors.

输入模式

{
  "type": "object",
  "properties": {
    "property": {
      "description": "Filter by property id.",
      "type": "string"
    },
    "active": {
      "description": "Filter by active or inactive.",
      "type": "boolean"
    },
    "insurance_expires_before": {
      "description": "Insurance expires before (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "openBalance": {
      "description": "Only vendors with an open balance.",
      "type": "boolean"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_portfolios(page_number, page_size, sort_by, sort_descending)

List portfolios (property groups). DoorLoop API: GET /property-groups.

输入模式

{
  "type": "object",
  "properties": {
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_users(page_number, page_size, sort_by, sort_descending)

List DoorLoop users of the company. DoorLoop API: GET /users.

输入模式

{
  "type": "object",
  "properties": {
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢doorloop_list_accounts(type, leaseChargeItem, page_number, page_size, sort_by, ...)

List chart-of-accounts entries. DoorLoop API: GET /accounts.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Account type, for example REVENUE_INCOME or EXPENSE_EXPENSE.",
      "type": "string"
    },
    "leaseChargeItem": {
      "description": "Only lease charge items.",
      "type": "boolean"
    },
    "page_number": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Results per page (default 50, max 1000).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "sort_by": {
      "description": "Field name of the resource to sort by, for example createdAt.",
      "type": "string"
    },
    "sort_descending": {
      "description": "Sort in descending order (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴doorloop_create_task(type, subject, status, description, due_date, ...)

WRITE: create a task in DoorLoop. INTERNAL_TASK needs requested_by_user, TENANT_REQUEST needs requested_by_tenant, OWNER_REQUEST needs requested_by_owner, WORK_ORDER needs assigned_to_vendor. Notifications are off unless you set them. Each call creates a new task. DoorLoop API: POST /tasks.

输入模式

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "INTERNAL_TASK",
        "TENANT_REQUEST",
        "OWNER_REQUEST",
        "WORK_ORDER"
      ]
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Task subject."
    },
    "status": {
      "type": "string",
      "enum": [
        "NOT_STARTED",
        "RECEIVED",
        "IN_PROGRESS",
        "COMPLETED",
        "ARCHIVED"
      ],
      "description": "Initial status."
    },
    "description": {
      "type": "string",
      "maxLength": 10000
    },
    "due_date": {
      "description": "Due date (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "priority": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "property": {
      "description": "Property id.",
      "type": "string"
    },
    "unit": {
      "description": "Unit id.",
      "type": "string"
    },
    "requested_by_user": {
      "description": "User id. Required for INTERNAL_TASK.",
      "type": "string"
    },
    "requested_by_tenant": {
      "description": "Tenant id. Required for TENANT_REQUEST.",
      "type": "string"
    },
    "requested_by_owner": {
      "description": "Owner id. Required for OWNER_REQUEST.",
      "type": "string"
    },
    "assigned_to_users": {
      "description": "User ids to assign.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "assigned_to_vendor": {
      "description": "Vendor id. Required for WORK_ORDER.",
      "type": "string"
    },
    "instructions_to_vendor": {
      "type": "string",
      "maxLength": 10000
    },
    "notify_tenant": {
      "description": "Notify the tenant (TENANT_REQUEST only). Default: no.",
      "type": "boolean"
    },
    "notify_assignees": {
      "description": "Notify the assigned users. Default: no.",
      "type": "boolean"
    }
  },
  "required": [
    "type",
    "subject",
    "status"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴doorloop_post_task_update(task_id, message, status, priority, due_date, ...)

WRITE: post a message on an existing task and optionally change its status, priority, due date or assignees. Each call adds a new update. Notifications are off unless you set them. DoorLoop API: POST /tasks/update.

输入模式

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "minLength": 1,
      "description": "Task id (from doorloop_list_tasks)."
    },
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000,
      "description": "Update message."
    },
    "status": {
      "type": "string",
      "enum": [
        "NOT_STARTED",
        "RECEIVED",
        "IN_PROGRESS",
        "COMPLETED",
        "ARCHIVED"
      ]
    },
    "priority": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "due_date": {
      "description": "New due date (yyyy-mm-dd).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "assigned_to_users": {
      "description": "User ids to assign.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "notify_tenant": {
      "description": "Notify the tenant. Default: no.",
      "type": "boolean"
    },
    "notify_assignees": {
      "description": "Notify the assigned users. Default: no.",
      "type": "boolean"
    }
  },
  "required": [
    "task_id",
    "message"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本21 个工具