unlock_door
Remotely unlock doors managed by UniFi access control systems using the UniFi Cloud API.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/access.js:48-63 (handler)The MCP tool handler for unlock_door, which checks user confirmation, calls the unifi.unlockDoor helper, and formats the response.handler: async ({ hostId, doorId, duration, confirm }) => { if (!confirm) { return { content: [{ type: 'text', text: `Door unlock cancelled. Set confirm=true to unlock the door for ${duration} seconds.` }] }; } const result = await unifi.unlockDoor(hostId, doorId, duration); return { content: [{ type: 'text', text: `Door unlocked for ${duration} seconds. It will automatically lock after the duration expires. ${JSON.stringify(result, null, 2)}` }] };
- src/tools/access.js:42-46 (schema)Zod input schema for the unlock_door tool defining parameters: hostId, doorId, optional duration (default 5s), and required confirm boolean.schema: z.object({ hostId: z.string().describe('The host ID'), doorId: z.string().describe('The door ID'), duration: z.number().min(1).max(300).optional().default(5).describe('Duration in seconds to keep door unlocked (1-300)'), confirm: z.boolean().describe('Confirm you want to unlock this door')
- src/server.js:32-32 (registration)Call to register the accessTools module (containing unlock_door) with the MCP server using registerToolsFromModule.registerToolsFromModule(accessTools);
- src/unifi-client.js:269-273 (helper)Helper function in UniFi client that makes the API POST request to unlock the door for the specified duration.export async function unlockDoor(hostId, doorId, duration = 5) { const response = await cloudApi.post(`/v1/hosts/${hostId}/doors/${doorId}/unlock`, { duration }); return response.data;