{"name":"io.github.sirkirby/unifi-protect-mcp","slug":"sirkirby-unifi-protect-mcp","title":"UniFi Protect MCP","description":"Manage UniFi Protect cameras, events, recordings, and smart detections via MCP.","url":"https://mcp.market/server/sirkirby-unifi-protect-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":58,"stars":853,"forks":112,"downloads_week":1015,"last_push_at":"2026-09-27T05:19:06.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/sirkirby/unifi-mcp","website":null,"version":"0.1.6","remotes":[],"packages":[{"registryType":"pypi","identifier":"unifi-protect-mcp","version":"0.1.6","transport":{"type":"stdio"},"environmentVariables":[{"description":"Controller IP/hostname","isRequired":true,"name":"UNIFI_HOST"},{"description":"Admin username","isRequired":true,"isSecret":true,"name":"UNIFI_USERNAME"},{"description":"Admin password","isRequired":true,"isSecret":true,"name":"UNIFI_PASSWORD"},{"description":"API key (optional, experimental)","isSecret":true,"name":"UNIFI_API_KEY"},{"description":"Controller HTTPS port","default":"443","name":"UNIFI_PORT"},{"description":"SSL certificate verification","default":"false","name":"UNIFI_VERIFY_SSL"}]}],"tools":[{"name":"protect_acknowledge_event","description":"Acknowledge an event with preview/confirm.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_create_liveview","description":"Create a liveview (validation only -- API limitation).","write_action":true,"price_micros":0,"input_schema":null},{"name":"protect_delete_liveview","description":"Delete a liveview (not supported via API).","write_action":true,"price_micros":0,"input_schema":null},{"name":"protect_delete_recording","description":"Delete recording for a camera (not supported by API).","write_action":true,"price_micros":0,"input_schema":null},{"name":"protect_export_clip","description":"Export a video clip from a camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_camera","description":"Get detailed camera information by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_camera_analytics","description":"Get motion/smart detection analytics for a camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_camera_streams","description":"Get stream URLs for a camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_event","description":"Get a single event by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_event_thumbnail","description":"Get event thumbnail.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_firmware_status","description":"Get firmware status for NVR and devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_health","description":"Get Protect NVR health metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_recording_status","description":"Get recording status for one or all cameras.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_snapshot","description":"Get a snapshot from a camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_get_system_info","description":"Get Protect NVR system information.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_cameras","description":"List all cameras.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_chimes","description":"List all chimes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_events","description":"List events from the NVR.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_lights","description":"List all lights.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_liveviews","description":"List all liveviews.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_recordings","description":"List recording availability for a camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_sensors","description":"List all sensors.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_smart_detections","description":"List smart detection events.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_list_viewers","description":"List connected Protect viewers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_ptz_move","description":"Adjust PTZ camera position (zoom only; pan/tilt via presets).","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_ptz_preset","description":"Move PTZ camera to a preset position.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_reboot_camera","description":"Reboot a camera with preview/confirm.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_recent_events","description":"Get recent events from the websocket buffer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_subscribe_events","description":"Return subscription instructions for event streaming.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_toggle_recording","description":"Toggle camera recording on/off with preview/confirm.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_trigger_chime","description":"Trigger a chime to play its tone.","write_action":false,"price_micros":0,"input_schema":null},{"name":"protect_update_camera_settings","description":"Update camera settings with preview/confirm.","write_action":true,"price_micros":0,"input_schema":null},{"name":"protect_update_chime","description":"Update chime settings with preview/confirm.","write_action":true,"price_micros":0,"input_schema":null},{"name":"protect_update_light","description":"Update light settings with preview/confirm.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-27T23:34:41.808Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-27T23:34:41.785Z","components":{"code":{"score":25,"max":25,"notes":["38 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"unifi-protect-mcp","version":"0.1.6","found":true,"weeklyDownloads":1015,"dependencyCount":16,"publishedAt":"2026-03-24T19:08:26.697205Z"}],"repo":{"found":true,"owner":"sirkirby","repo":"unifi-mcp","archived":false,"pushedAt":"2026-09-27T05:19:06Z","stars":853,"forks":112,"openIssues":7,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/740137?v=4","ownerCreatedAt":"2011-04-19T22:29:32Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/740137?v=4&s=128","source":"github"},"presence":{"stars":853,"forks":112,"downloadsWeek":1015,"license":"MIT","lastPushAt":"2026-09-27T05:19:06.000Z","score":58}}}},"grade_history":[],"reviews":[]}