unifi-access-setup — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited unifi-access-setup (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Walk the user through configuring their UniFi Access controller connection. Ask one question at a time and wait for the answer before continuing.
Use the client target that matches the current agent runtime:
claudecodexopenclawIf the runtime is unclear, ask which client to configure. For questions, use the platform's blocking question tool when available (AskUserQuestion in Claude Code, request_user_input in Codex). If no blocking question tool is available, ask in chat with numbered options and wait for the user's reply.
On macOS and Linux, resolve setup scripts relative to this skill file:
../../scripts/check-prereqs.sh../../scripts/set-env.shWhen the host exposes a plugin-root variable such as CLAUDE_PLUGIN_ROOT, using $CLAUDE_PLUGIN_ROOT/scripts/... is also valid. Do not assume the current shell directory is the plugin root.
On Windows with Claude Code, use ../../scripts/set-env.ps1 for the final Claude settings write. On Windows with Codex, prefer the native PowerShell prereq script and call codex mcp add directly with the same env variables if Bash is unavailable. On Windows with OpenClaw, call openclaw mcp set directly with a JSON object containing command, args, and env if Bash is unavailable. Do not run the Bash prereq script on Windows unless the user explicitly asks to use a Bash environment.
Before asking for credentials, run the prereq checker for the current OS.
On macOS/Linux:
bash <path-to-plugin>/scripts/check-prereqs.sh --target <claude|codex|openclaw> "unifi-access"On Windows PowerShell:
powershell -ExecutionPolicy Bypass -File <path-to-plugin>/scripts/check-prereqs.ps1 -Target <claude|codex|openclaw> -PluginName "unifi-access"If the script exits non-zero, stop and report the error. Do not proceed to credentials.
Ask: "What is your UniFi controller's IP address or hostname?" Example: 192.168.1.1.
If another UniFi MCP server is already configured, ask whether Access is on the same controller. For Claude, existing values may be in .claude/settings.local.json. For Codex, existing values may be visible through codex mcp list and codex mcp get <server>. For OpenClaw, existing values may be visible through openclaw mcp list and openclaw mcp show <server>.
Access supports two auth paths:
Ask whether the user wants API key only, username/password only, or both. Recommend both when they want full Access management.
For username/password, ask for:
For API key, ask for the key and include UNIFI_ACCESS_API_KEY.
At least one auth path is required.
Ask whether to use defaults or customize:
443, Access API port 12445, SSL verification false, lazy tool loadingAsk whether to enable write permissions. By default, Access mutations are disabled for credentials, visitors, policies, and door controls.
Options:
Collect any selected policy variables. Use the existing UNIFI_POLICY_ACCESS_<CATEGORY>_<ACTION>=true format.
On macOS/Linux, run the target-aware setup script with only values the user provided or selected:
bash <path-to-plugin>/scripts/set-env.sh --target <claude|codex|openclaw> \
UNIFI_ACCESS_HOST=<host> \
UNIFI_ACCESS_API_KEY=<api-key> \
UNIFI_ACCESS_USERNAME=<username> \
UNIFI_ACCESS_PASSWORD=<password>Add optional values and policy variables to the same command, for example:
bash <path-to-plugin>/scripts/set-env.sh --target <claude|codex|openclaw> \
UNIFI_ACCESS_HOST=<host> \
UNIFI_ACCESS_API_KEY=<api-key> \
UNIFI_ACCESS_USERNAME=<username> \
UNIFI_ACCESS_PASSWORD=<password> \
UNIFI_ACCESS_API_PORT=12445 \
UNIFI_POLICY_ACCESS_VISITORS_CREATE=trueThe script handles the client-specific write:
.claude/settings.local.jsonunifi-access MCP server via codex mcp add --env ... -- uvx ...unifi-access MCP server via openclaw mcp set ...For Claude Code, tell the user:
"Configuration saved to .claude/settings.local.json. Restart Claude Code or run /reload-plugins, then confirm the plugin is enabled with /plugin."
For Codex, tell the user:
"Codex MCP server unifi-access configured. Restart Codex so the updated MCP server is loaded."
For OpenClaw, tell the user:
"OpenClaw MCP server unifi-access configured. Restart the OpenClaw Gateway so the updated MCP server is loaded."
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.