This skill should be used when the user needs to inspect or manage UniFi network infrastructure, including connected clients and devices, network health, firewall rules, WiFi configuration, port forwarding, DPI statistics, rogue APs, speedtest results, network events, or management actions such as blocking clients, restarting APs, or locating devices.
From unifi-mcpnpx claudepluginhub jmagar/claude-homelab --plugin unifi-mcpThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Manages UniFi network infrastructure via the unifi action-router tool (and unifi_help for discovery).
MCP mode (preferred): Use when mcp__claude_ai_Unifi__unifi (or mcp__unifi-mcp__unifi) tools are available. The server handles UniFi controller authentication internally — session cookies are managed server-side.
HTTP fallback mode: UniFi requires session-based authentication (login → cookie → requests). This is complex to replicate in curl. Strongly prefer keeping the MCP server running. For emergencies only, see fallback section below.
Transport: Controlled by UNIFI_MCP_TRANSPORT env var — http (default, port 8001) or stdio.
MCP URL: ${user_config.unifi_mcp_url} (default http://localhost:8001/mcp)
All operations go through two tools:
unifi — action router: {"action": "<action_name>", ...params}unifi_help — list available actions and their parametersunifi action=get_clients
connected_only (optional) true/false — default true
site_name (optional) default "default"
unifi action=block_client
mac (required) Client MAC address — DESTRUCTIVE, confirm before use
site_name (optional) default "default"
unifi action=unblock_client
mac (required) Client MAC address
site_name (optional) default "default"
unifi action=reconnect_client
mac (required) Client MAC address
site_name (optional) default "default"
unifi action=forget_client
mac (required) Client MAC address — DESTRUCTIVE, removes from history
site_name (optional) default "default"
unifi action=set_client_name
mac (required) Client MAC address
name (required) New display name
site_name (optional) default "default"
unifi action=set_client_note
mac (required) Client MAC address
note (required) Note text
site_name (optional) default "default"
unifi action=get_devices
site_name (optional) default "default"
unifi action=get_device_by_mac
mac (required) Device MAC address
site_name (optional) default "default"
unifi action=restart_device
mac (required) Device MAC address — DESTRUCTIVE, causes brief outage
site_name (optional) default "default"
unifi action=locate_device
mac (required) Device MAC address — flashes LED for identification
site_name (optional) default "default"
unifi action=get_sites
(no parameters)
unifi action=get_wlan_configs
site_name (optional) default "default"
unifi action=get_network_configs
site_name (optional) default "default"
unifi action=get_port_configs
site_name (optional) default "default"
unifi action=get_port_forwarding_rules
site_name (optional) default "default"
unifi action=get_firewall_rules
site_name (optional) default "default"
unifi action=get_firewall_groups
site_name (optional) default "default"
unifi action=get_static_routes
site_name (optional) default "default"
unifi action=get_controller_status
(no parameters)
unifi action=get_events
limit (optional) default 100
site_name (optional) default "default"
unifi action=get_alarms
active_only (optional) default true
site_name (optional) default "default"
unifi action=get_dpi_stats
by_filter (optional) "by_app" or "by_cat" — default "by_app"
site_name (optional) default "default"
unifi action=get_rogue_aps
site_name (optional) default "default"
limit (optional) default 20
unifi action=get_speedtest_results
site_name (optional) default "default"
limit (optional) default 20
unifi action=start_spectrum_scan
mac (required) Access point MAC address — long-running operation
site_name (optional) default "default"
unifi action=get_spectrum_scan_state
mac (required) Access point MAC address
site_name (optional) default "default"
unifi action=authorize_guest
mac (required) Guest client MAC address
site_name (optional) default "default"
Always confirm with the user before executing:
block_client — blocks network access for a deviceforget_client — removes client from controller historyrestart_device — reboots an AP or switch, causes brief outageCheck who's connected:
unifi action=get_clients connected_only=true
Block a client by MAC:
# Confirm with user first
unifi action=block_client mac=aa:bb:cc:dd:ee:ff
Restart an access point:
# Confirm with user first — causes brief outage
unifi action=restart_device mac=aa:bb:cc:dd:ee:ff
Check network health / controller status:
unifi action=get_controller_status
unifi action=get_alarms active_only=true
View firewall rules:
unifi action=get_firewall_rules
unifi action=get_firewall_groups
Run a speedtest (view results):
unifi action=get_speedtest_results limit=5
Discover available actions:
unifi_help
UniFi uses session-based auth. For emergency fallback only:
# Step 1: Login and capture cookie
COOKIE_JAR=$(mktemp)
curl -s -X POST "$CLAUDE_PLUGIN_OPTION_UNIFI_CONTROLLER_URL/api/auth/login" \
-H "Content-Type: application/json" \
-k --cookie-jar "$COOKIE_JAR" \
-d "{\"username\":\"$CLAUDE_PLUGIN_OPTION_UNIFI_USERNAME\",\"password\":\"$CLAUDE_PLUGIN_OPTION_UNIFI_PASSWORD\"}"
# Step 2: Use session for requests
curl -s "$CLAUDE_PLUGIN_OPTION_UNIFI_CONTROLLER_URL/proxy/network/api/s/default/stat/sta" \
-k --cookie "$COOKIE_JAR"
site_name defaults to "default" for most single-site deploymentsstart_spectrum_scan is long-running — poll get_spectrum_scan_state for results:443 for UDM Pro / Cloud Key Gen2+http vs stdio) is set via UNIFI_MCP_TRANSPORT env var; default is http on port 3003