By jmagar
UniFi network management via MCP — monitor devices, clients, health, alarms, events, and WLANs through the rustifi MCP server.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
no_authRun the MCP server without auth. Only safe when binding to loopback (127.x). Use an upstream gateway otherwise.
${user_config.no_auth}Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
api_tokenBearer token for MCP HTTP authentication, sent as `Authorization: Bearer <token>`. Generate one with `openssl rand -hex 32` or `just gen-token`. Must match UNIFI_MCP_TOKEN on the server side.
${user_config.api_token}auth_modeServer auth mode. bearer keeps the static API token only. oauth enables Google OAuth/JWT for additional clients while the API token remains accepted for this Claude Code session. OAuth requires public_url, google_client_id, google_client_secret, and auth_admin_email.
${user_config.auth_mode}unifi_urlBase URL of your UniFi controller, e.g. https://192.168.1.1 or https://unifi.local. Required — the server will fail to start without this.
${user_config.unifi_url}public_urlPublic base URL for OAuth issuer/resource metadata, e.g. https://unifi-mcp.example.com. Required when auth_mode=oauth.
${user_config.public_url}server_urlBase URL the MCP client connects to. Keep the default http://localhost:7474 if running locally, or set to the remote server address (e.g. http://unifi-mcp.lan:7474). Must include the scheme and port; do NOT include a trailing /mcp path.
${user_config.server_url}unifi_siteUniFi site name. Defaults to 'default'. Change only if you have multiple sites configured in your controller.
${user_config.unifi_site}use_dockerTrue: run via the bundled docker compose stack (containerized, easier to upgrade, exposes port 7474, mounts /data volume). False: run the bundled binary directly — you are responsible for starting and managing it.
${user_config.use_docker}unifi_legacyDisable the /proxy/network path prefix. Set true for older non-UDM controllers running on port 8443.
${user_config.unifi_legacy}unifi_api_keyX-API-KEY value for UniFi controller authentication. Generate in: UniFi OS → Settings → Admins & Users → API Keys. Required.
${user_config.unifi_api_key}unifi_skip_tlsSkip TLS certificate verification for the UniFi controller. Almost always required since UniFi uses self-signed certificates by default.
${user_config.unifi_skip_tls}auth_admin_emailBootstrap allowed Google account for OAuth mode. The server refuses to start OAuth without an allowlisted account.
${user_config.auth_admin_email}google_client_idGoogle OAuth client ID used when auth_mode=oauth. Create a Web application OAuth client in Google Cloud Console.
${user_config.google_client_id}google_client_secretGoogle OAuth client secret used when auth_mode=oauth. Stored in the generated plugin env file with mode 600.
${user_config.google_client_secret}UniFi network MCP server — read-only REST API bridge for Ubiquiti UniFi controllers (UniFi OS / UDM and legacy).
Exposes connected clients, network devices, WiFi configurations, site health, alarms, events, and system info to MCP clients (Claude, Cursor, etc.) and as a CLI tool.
UniFi controllers expose a REST API. Modern UniFi OS (UDM/UDR) uses:
https://<controller-ip>X-API-KEY header (preferred, UniFi OS 3.x+)/proxy/network/api/s/{site}/...Legacy controllers (non-UDM, port 8443) use the same paths without the /proxy/network prefix. Set UNIFI_LEGACY=true for those.
TLS note: UniFi controllers use self-signed certificates by default. Always set UNIFI_SKIP_TLS_VERIFY=true unless you have installed a valid cert.
# 1. Copy env template
cp .env.example .env
# Edit UNIFI_URL and UNIFI_API_KEY
# 2. Run CLI
source .env
cargo run --bin unifi -- health
cargo run --bin unifi -- clients
# 3. Run MCP HTTP server (port 7474)
cargo run --bin unifi
# 4. Run MCP stdio transport (for Claude Desktop, etc.)
cargo run --bin unifi -- mcp
unifi clients [--json] Connected wireless and wired clients
unifi devices [--json] Network devices: APs, switches, gateways
unifi wlans [--json] WiFi network configurations
unifi health [--json] Site health summary
unifi alarms [--json] Active alarms and alerts
unifi events [--limit N] [--json] Recent events (optional limit)
unifi sysinfo [--json] Controller system information
unifi me [--json] Authenticated user info
The unifi MCP tool accepts an action argument:
| Action | Description |
|---|---|
clients | Connected wireless and wired clients |
devices | Network devices: APs, switches, gateways |
wlans | WiFi network configurations |
health | Site health summary |
alarms | Active alarms and alerts |
events | Recent events (optional limit integer) |
sysinfo | Controller system information |
me | Authenticated user info |
help | Tool documentation |
| Variable | Default | Description |
|---|---|---|
UNIFI_URL | — | Controller base URL, e.g. https://unifi.local (required) |
UNIFI_API_KEY | — | API key for X-API-KEY header (required) |
UNIFI_SITE | default | UniFi site name |
UNIFI_SKIP_TLS_VERIFY | true | Skip TLS cert check (needed for self-signed) |
UNIFI_LEGACY | false | Legacy controller mode (no /proxy/network prefix) |
UNIFI_MCP_HOST | 0.0.0.0 | MCP server bind host |
UNIFI_MCP_PORT | 7474 | MCP server bind port |
UNIFI_MCP_TOKEN | — | Static bearer token for MCP auth |
UNIFI_MCP_NO_AUTH | false | Disable MCP auth (loopback only) |
UNIFI_MCP_PUBLIC_URL | — | Public URL for OAuth metadata |
UNIFI_MCP_AUTH_MODE | bearer | Auth mode: bearer or oauth |
UNIFI_MCP_GOOGLE_CLIENT_ID | — | Google OAuth client ID |
UNIFI_MCP_GOOGLE_CLIENT_SECRET | — | Google OAuth client secret |
UNIFI_MCP_AUTH_ADMIN_EMAIL | — | Admin email for OAuth |
RUST_LOG | info | Log filter |
UNIFI_API_KEYsrc/
unifi.rs — HTTP REST client for UniFi API
app.rs — UnifiService: all business logic
config.rs — UnifiConfig + McpConfig
mcp.rs — AppState, AuthPolicy, module wiring
mcp/tools.rs — thin shim: parse args → call service → return Value
mcp/schemas.rs — tool JSON schema definitions
mcp/prompts.rs — MCP prompts (network_summary)
mcp/rmcp_server.rs — rmcp ServerHandler impl
mcp/routes.rs — axum router with auth middleware
cli.rs — thin shim: parse args → call service → format/print
lib.rs — module declarations + test helpers
main.rs — dispatch: serve / mcp / cli
npx claudepluginhub jmagar/dendrite --plugin unifiQuery, monitor, and manage Unraid servers via GraphQL API through MCP tools. Supports system info, Docker, VMs, array/parity, notifications, plugins, rclone, and live telemetry.
Core homelab agents, commands, and setup/health skills for self-hosted service management. Includes interactive credential setup wizard and unified service health dashboard.
UniFi network management via MCP tools. Monitor devices, clients, network health, firewall rules, and perform management operations.
Gotify push notifications and management via MCP tools with HTTP fallback. Sends alerts for long-running tasks, plan completions, and blocked states.
Agents, commands, skills, and scripts for scaffolding, reviewing, aligning, and deploying homelab MCP server plugins. Includes canonical Python, TypeScript, and Rust server templates.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Production-grade engineering skills for AI coding agents — covering the full software development lifecycle from spec to ship.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.