Agent skill

setup

Configure the UniFi Protect MCP server — set NVR host, credentials, and permissions

Stars 245
Forks 47

Install this agent skill to your Project

npx add-skill https://github.com/sirkirby/unifi-mcp/tree/main/plugins/unifi-protect/skills/setup

SKILL.md

Set Up UniFi Protect MCP Server

Walk the user through configuring their UniFi Protect NVR connection. Ask each question one at a time using AskUserQuestion. Wait for the answer before proceeding.

Step 1: Controller Host

Ask: "What is your UniFi controller's IP address or hostname?" (e.g., 192.168.1.1)

If the user already has a Network server configured (check for UNIFI_NETWORK_HOST or UNIFI_HOST in .claude/settings.local.json), ask: "Is Protect on the same controller as your Network server?" If yes, use the same host.

Step 2: Credentials

If the user already has Network credentials configured with the shared UNIFI_ prefix, mention they can reuse those. Only set UNIFI_PROTECT_ prefixed variables if the credentials differ from the shared ones.

Ask for:

  1. Username (local admin account — not a Ubiquiti SSO account)
  2. Password

Username and password are required. These must be local admin credentials on the UniFi controller.

Optional: API Key

After collecting credentials, mention:

"UniFi also supports API keys, but API key auth is experimental — it's limited to read-only operations and a subset of tools. Ubiquiti is still expanding API key support. Would you also like to configure an API key?"

If yes, ask for the API key string and include it as UNIFI_PROTECT_API_KEY in the configuration. If no, skip it.

Step 4: Permission Configuration

Ask: "Do you want to enable any write permissions? By default, ALL mutations are disabled for Protect (camera settings, recording control, PTZ, reboots)."

Options:

  • "Read-only for now" — safest, can view everything but change nothing
  • "Enable camera management" — camera settings, recording toggle, PTZ, reboot
  • "Enable all device management" — cameras + lights + chimes
  • "Custom" — ask which categories to enable

Step 5: Write Configuration

Use the appropriate script for the user's platform to write all collected values to .claude/settings.local.json. Check the platform from your environment info. On Windows use set-env.ps1, on macOS/Linux use set-env.sh:

macOS / Linux:

bash
bash ${CLAUDE_PLUGIN_ROOT}/scripts/set-env.sh \
  UNIFI_PROTECT_HOST=<host> \
  UNIFI_PROTECT_USERNAME=<username> \
  UNIFI_PROTECT_PASSWORD=<password>

Windows:

powershell
powershell -ExecutionPolicy Bypass -File "${CLAUDE_PLUGIN_ROOT}/scripts/set-env.ps1" UNIFI_PROTECT_HOST=<host> UNIFI_PROTECT_USERNAME=<username> UNIFI_PROTECT_PASSWORD=<password>

If the host and credentials are the same as existing shared UNIFI_* vars, use the shared prefix instead (same script, different keys).

If permissions were enabled, also pass those:

bash
bash ${CLAUDE_PLUGIN_ROOT}/scripts/set-env.sh \
  UNIFI_POLICY_PROTECT_CAMERAS_UPDATE=true

Permission variables by option:

  • Camera management: UNIFI_POLICY_PROTECT_CAMERAS_UPDATE=true
  • All device management: UNIFI_POLICY_PROTECT_CAMERAS_UPDATE=true, UNIFI_POLICY_PROTECT_LIGHTS_UPDATE=true, UNIFI_POLICY_PROTECT_CHIMES_UPDATE=true

Step 6: Verify and Restart

Tell the user:

"Configuration saved to .claude/settings.local.json. Restart Claude Code to connect the MCP server. After restart, run /mcp to verify the connection, or just ask me about your cameras."

Show a summary table of what was configured.

Expand your agent's capabilities with these related and highly-rated skills.

sirkirby/unifi-mcp

myco:implement-update-tool-fetch-merge-put

Use this skill whenever you are implementing or fixing an update_* tool in unifi-mcp. It covers the mandatory fetch-merge-put pattern, deep_merge semantics, V2 API response gotchas, the confirm double-fetch design, LLM UX requirements for dict params, and when flat params are appropriate instead. Applies even if the user only says "add an update tool for X" without specifying the implementation approach — the pattern is required for all update tools in this project.

245 47
Explore
sirkirby/unifi-mcp

myco:community-pr-review

Use this skill when reviewing or merging any community PR in unifi-mcp — even if the user just says "take a look at this PR" or "can we merge this." Covers the complete quality gate checklist (f-string logger ban, validator registry registration, doc site update ordering), the fork-edit model for trusted contributors, org-fork push limitations, the dual-subagent review pattern, and PR body standards. Apply this skill before approving any externally-authored PR, before running the merge command, and when auditing recently merged PRs for compliance.

245 47
Explore
sirkirby/unifi-mcp

unifi-access

How to manage UniFi Access door control — locks, credentials, visitors, access policies, and events. Use this skill when the user mentions UniFi Access, door locks, door access, building access, NFC cards, PIN codes, visitor passes, access policies, access schedules, door readers, or any UniFi Access task.

245 47
Explore
sirkirby/unifi-mcp

setup

Configure the UniFi Access MCP server — set controller host, credentials, and permissions

245 47
Explore
sirkirby/unifi-mcp

unifi-protect

How to manage UniFi Protect cameras and NVR — view cameras, smart detections, recordings, snapshots, lights, sensors, and the Alarm Manager. Use this skill when the user mentions UniFi cameras, security cameras, NVR, recordings, motion detection, person detection, snapshots, RTSP streams, floodlights, sensors, chimes, arming/disarming the alarm, or any UniFi Protect task.

245 47
Explore
sirkirby/unifi-mcp

security-digest

Generate a security digest summarizing events across UniFi Protect cameras, Access door events, and Network firewall activity. Use when asked about what happened overnight, security summary, event digest, recent activity, or reviewing camera and access events.

245 47
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results