get_doors_status_summary
Retrieve a summary of all door access statuses across a UniFi network to monitor entry points and security states.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/access.js:119-159 (handler)The handler function that implements the core logic of get_doors_status_summary: fetches all doors, computes counts for locked/unlocked/online/offline, builds a summary with door details, and returns it as JSON text.handler: async ({ hostId }) => { const doorsResponse = await unifi.listDoors(hostId); const doors = doorsResponse.data || []; const summary = { total: doors.length, locked: 0, unlocked: 0, online: 0, offline: 0, doors: [] }; doors.forEach(door => { // Count lock status if (door.lockState === 'LOCKED' || door.isLocked) { summary.locked++; } else { summary.unlocked++; } // Count connection status if (door.state === 'CONNECTED' || door.isConnected) { summary.online++; } else { summary.offline++; } // Add door info summary.doors.push({ id: door.id, name: door.name, lockState: door.lockState, state: door.state }); }); return { content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }] }; }
- src/tools/access.js:116-118 (schema)Zod schema defining the input parameters for the tool: requires hostId string.schema: z.object({ hostId: z.string().describe('The host ID') }),
- src/server.js:32-32 (registration)Registers the accessTools module, which includes get_doors_status_summary, by calling registerToolsFromModule(accessTools). This iterates over the tools object and calls server.tool(name, schema, handler) for each.registerToolsFromModule(accessTools);