Developer docs: all pages

Developers · MCP server

maintenance_requests_list

Maintenance requests in one community, newest first.

List maintenance requests. Maintenance requests in one community, newest first.

Who can use it: Everyone in the community. Residents see only the requests they submitted; owners and managers see all of them.

Scope Effect Hints
maintenance:read read reads only, idempotent

Description shown to assistants

Use this when the user asks to review maintenance tickets or filter by status/priority.

Arguments

Argument Type Required About
property_id string No The community’s public id (prop_web…). Pass it on every call.
status string No Only requests with this status.
priority string No Only requests with this priority.
limit integer No How many to return. From 1 to 100.

What it returns

Every result has content (one short sentence for the person) and structuredContent (the data below). A tool that could not run answers with isError: true and a sentence saying why; see Errors and limits.

  • property: the community.
  • total: how many requests match the filters, before the limit.
  • requests: each with id, title, status, priority, submittedAt, updatedAt, requester, assignedTo, summary, tags, category, residentNotes, slaDueAt, submittedByResident, vendorId and vendorName.

structuredContent follows this JSON Schema, also in tools/list as outputSchema:

{
  "type": "object",
  "properties": {
    "property": {
      "type": "object",
      "properties": {
        "id": { "type": "string" },
        "name": { "type": "string" },
        "addressLine1": { "type": ["string", "null"] },
        "addressLine2": { "type": ["string", "null"] },
        "city": { "type": ["string", "null"] },
        "state": { "type": ["string", "null"] },
        "postalCode": { "type": ["string", "null"] },
        "timezone": { "type": ["string", "null"] },
        "billingFrequency": { "type": ["string", "null"] },
        "demoClone": { "type": "boolean" },
        "demoPersona": { "type": ["string", "null"] },
        "demoExpiresAt": { "type": ["string", "null"] }
      },
      "required": ["id", "name"]
    },
    "total": {
      "type": "integer",
      "description": "How many requests match, before the limit."
    },
    "requests": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": { "type": "string" },
          "title": { "type": "string" },
          "status": { "type": "string" },
          "priority": { "type": "string" },
          "submittedAt": { "type": ["string", "null"] },
          "updatedAt": { "type": ["string", "null"] },
          "requester": { "type": ["string", "null"] },
          "assignedTo": { "type": ["string", "null"] },
          "summary": { "type": ["string", "null"] },
          "tags": { "type": "array", "items": { "type": "string" } },
          "category": { "type": ["string", "null"] },
          "residentNotes": { "type": ["string", "null"] },
          "slaDueAt": { "type": ["string", "null"] },
          "submittedByResident": { "type": "boolean" },
          "vendorId": { "type": ["string", "null"] },
          "vendorName": { "type": ["string", "null"] }
        },
        "required": ["id", "title", "status", "priority"]
      }
    }
  },
  "required": ["property", "total", "requests"]
}

Notes

  • status is one of open, in_progress, scheduled or resolved; priority one of urgent, high, medium or low. Other values match nothing.
  • limit defaults to 25, at most 100.

Example

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "maintenance_requests_list",
    "arguments": {
      "property_id": "prop_web4k2m9q7x1v8c3n5b6z0a2s4d",
      "status": "open",
      "limit": 10
    }
  }
}

This page as Markdown: /developers/mcp/tools/maintenance_requests_list.md

Loading PorchQ…