From unifi-protect
You can manage the full UniFi Protect camera system via the `unifi-protect` MCP tools — cameras, motion events, smart detections, recordings, snapshots, viewers, and NVR status.
npx claudepluginhub pzharyuk/ai-claude-plugins --plugin unifi-protectThis skill uses the workspace's default tool permissions.
You can manage the full UniFi Protect camera system via the `unifi-protect` MCP tools — cameras, motion events, smart detections, recordings, snapshots, viewers, and NVR status.
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
You can manage the full UniFi Protect camera system via the unifi-protect MCP tools — cameras, motion events, smart detections, recordings, snapshots, viewers, and NVR status.
protect_bootstrap — Full system state: NVR info, all cameras, viewers. Start here for an overview.protect_nvr_info — NVR hardware, storage stats, software versionprotect_list_cameras — All cameras with status, recording mode, connection state, last motionprotect_get_camera — Full config and status for one cameraprotect_update_camera — Update camera settings (name, recording mode, motion sensitivity, smart detections, status LED)protect_reboot_camera — Reboot a camera (brief offline period)protect_list_events — Recent events filtered by type, camera, and time range
motion, ring, smartDetectZone, disconnected, connectedprotect_get_snapshot — Get snapshot URL from a camera (current or historical)protect_get_recording_url — Get URL to stream/download a recording clipprotect_list_viewers — UniFi Protect display monitorsprotect_list_liveviews — Configured liveview layoutsprotect_set_viewer_liveview — Change what a display monitor showsprotect_list_cameras → see all camera states
protect_list_events (start: <1h ago>) → recent activity
protect_list_cameras → find camera_id
→ protect_list_events (camera_id: "...", type: "motion", start: <timestamp>)
protect_list_cameras → find camera_id
→ protect_update_camera (
camera_id: "...",
smartDetectTypes: ["person", "vehicle"],
recordingMode: "smart"
)
protect_get_snapshot (camera_id: "...", width: 1920)
→ returns snapshot_url — open in browser to view
protect_get_recording_url (
camera_id: "...",
start: <start_ms>,
end: <end_ms>
)
→ returns recording_url — stream or download in browser
protect_list_viewers → find viewer_id
protect_list_liveviews → find liveview_id
→ protect_set_viewer_liveview (viewer_id: "...", liveview_id: "...")
| Mode | Description |
|---|---|
always | Record continuously |
motion | Record on motion only |
smart | Record on smart detections only |
never | Do not record |
person, vehicle, package, face, license_plate, animal
Date.now() for current time.protect_nvr_info response under storageStats.