From unifi-access
Configures UniFi Access MCP server by prompting for controller host, API key or username/password credentials, and permissions; saves to .claude/settings.local.json via Bash or PowerShell.
npx claudepluginhub sirkirby/unifi-mcp --plugin unifi-accessThis skill is limited to using the following tools:
Walk the user through configuring their UniFi Access controller connection. **Ask each question one at a time using AskUserQuestion. Wait for the answer before proceeding.**
Walks through UniFi Network MCP server setup: prompts for controller host, username/password/API key, optional port/site/SSL/permissions, writes config to settings.local.json via bash/powershell.
Configures UniFi Protect NVR connection: prompts for host, username/password/API key, permissions, and writes to .claude/settings.local.json using platform scripts.
Interactive wizard configures credentials for homelab services like Plex, Radarr, Sonarr, Unraid, Tailscale in ~/.claude-homelab/.env. Use for initial setup or adding services.
Share bugs, ideas, or general feedback.
Walk the user through configuring their UniFi Access controller connection. Ask each question one at a time using AskUserQuestion. Wait for the answer before proceeding.
Ask: "What is your UniFi controller's IP address or hostname?" (e.g., 192.168.1.1)
If the user already has Network or Protect configured (check .claude/settings.local.json for existing UNIFI_* env vars), ask: "Is Access on the same controller?" If yes, use the same host.
Access uses dual authentication — explain this to the user:
"UniFi Access has two auth paths:
You can configure one or both."
Ask: "Which auth paths do you want to set up?"
Options:
Based on their choice, ask for API key and/or username+password (one question at a time).
Ask: "Do you want to enable any write permissions? By default, ALL mutations are disabled for Access (door lock/unlock, credentials, visitors)."
Options:
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 ${CLAUDE_PLUGIN_ROOT}/scripts/set-env.sh \
UNIFI_ACCESS_HOST=<host> \
UNIFI_ACCESS_API_KEY=<api-key> \
UNIFI_ACCESS_USERNAME=<username> \
UNIFI_ACCESS_PASSWORD=<password>
Windows:
powershell -ExecutionPolicy Bypass -File "${CLAUDE_PLUGIN_ROOT}/scripts/set-env.ps1" UNIFI_ACCESS_HOST=<host> UNIFI_ACCESS_API_KEY=<api-key> UNIFI_ACCESS_USERNAME=<username> UNIFI_ACCESS_PASSWORD=<password>
If the host and credentials are the same as existing shared UNIFI_* vars, use the shared prefix instead to avoid duplication.
If permissions were enabled, also pass those:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/set-env.sh \
UNIFI_POLICY_ACCESS_DOORS_UPDATE=true \
UNIFI_POLICY_ACCESS_CREDENTIALS_CREATE=true \
UNIFI_POLICY_ACCESS_VISITORS_CREATE=true
Permission variables by option:
UNIFI_POLICY_ACCESS_DOORS_UPDATE=trueUNIFI_POLICY_ACCESS_CREDENTIALS_CREATE=true, UNIFI_POLICY_ACCESS_CREDENTIALS_DELETE=trueUNIFI_POLICY_ACCESS_VISITORS_CREATE=true, UNIFI_POLICY_ACCESS_VISITORS_DELETE=trueUNIFI_POLICY_ACCESS_DEVICES_UPDATE=true, UNIFI_POLICY_ACCESS_POLICIES_UPDATE=trueTell 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 doors."
Show a summary table of what was configured, noting which auth paths are active and what permissions are enabled.