Leverage agents and agentic AI workflows to manage your UniFi deployment.
> /plugin marketplace add sirkirby/unifi-mcp
Repo: sirkirby/unifi-mcp
What's inside
Leverage agents and agentic AI workflows to manage your UniFi deployment.
| Server | Status | Tools | Package |
|---|---|---|---|
| Network | Stable | 210 | unifi-network-mcp |
| Protect | Stable | 63 | unifi-protect-mcp |
| Access | Stable | 37 | unifi-access-mcp |
Install these from the Claude Code, Codex or OpenClaw marketplace; Quick Start shows how.
| Plugin | What you get |
|---|---|
unifi-network | The Network MCP server, its agent skills and guided setup |
unifi-protect | The Protect MCP server, its agent skills and guided setup |
unifi-access | The Access MCP server, its agent skills and guided setup |
unifi-intelligence | Cross-product investigations that use Network and Protect together, with every claim cited. Incident Investigation runs locally; Security Patrol and Visitor Audit need the cloud worker. It requires the Network and Protect plugins |
The Agent Skills table lists every skill each plugin ships.
| What you are building | Use | Why |
|---|---|---|
| An AI assistant or another existing MCP client | Network, Protect, or Access MCP server | Standard MCP discovery, tool calls, permissions, and confirmation flows |
| A custom application, automation service, code-execution runtime, or MCP adapter | unifi-api-server | Your code controls call sequencing, data joins, resource limits, and approval flow |
| Remote access for an MCP client | Cloud Relay | Authenticated remote MCP routing without exposing the local servers directly |
An MCP adapter can expose a small set of tools while using unifi-api-server
as its backend. This keeps application-specific joins, branching, loops, and
code isolation out of the general-purpose MCP servers.
| Component | Status | Package |
|---|---|---|
| Relay Sidecar | Beta | unifi-mcp-relay |
| Worker Gateway | Beta | unifi-mcp-worker (CLI) |
Cloud Relay pairs the Cloudflare-hosted Worker gateway with the Relay sidecar on your LAN. The Worker provides the authenticated edge MCP endpoint, Durable Object broker, multi-location routing, token boundary, and deployment/management CLI. The Relay sidecar is a local MCP HTTP client and forwarder: it discovers configured local MCP servers over HTTP and maintains an outbound WebSocket to the Worker. Remote requests follow MCP client → Worker gateway → outbound WebSocket → Relay sidecar → local MCP servers over HTTP; the API server is not in this path. Read-only tools support annotation-based multi-location fan-out, while writes require explicit location targeting. Deploy the Worker with npm install -g unifi-mcp-worker && unifi-mcp-worker install, then see the Relay sidecar README to connect local servers.
| Component | Status | Package |
|---|---|---|
| API Server | Beta | unifi-api-server · GHCR image |
unifi-api-server is an independent HTTP service for custom applications,
automation, and adapters. It provides typed REST resources, read-only GraphQL
queries, SSE streams, scoped API keys and administration, plus a REST action
endpoint for supported controller operations. It shares unifi-core managers
with the MCP servers but does not proxy or require them.
See apps/api/README.md for quick-start and deployment patterns.
UniFi MCP is a collection of Model Context Protocol servers that let AI assistants and automation tools interact with Ubiquiti UniFi controllers. Each server targets a specific UniFi application (Network, Protect, Access) and exposes its functionality as MCP tools — queryable, composable, and safe by default.
MCP HTTP is unauthenticated and intended for trusted local clients. HTTP is disabled by default; when enabled, packages bind to loopback. Docker Compose enables it on the container network and publishes ports 3000–3002 on host 127.0.0.1. Use an authenticated TLS proxy or Cloud Relay for remote access, and prevent direct access to the backend. See the transport security model and HTTP setup and migration.
| Setting | Default | Purpose |
|---|---|---|
UNIFI_MCP_HTTP_ENABLED | false | Opt into HTTP transport |
UNIFI_MCP_HOST | 127.0.0.1 | Bind address; Compose explicitly uses 0.0.0.0 inside containers |
UNIFI_MCP_HTTP_FORCE | false | Allow HTTP outside container PID 1 |
UNIFI_MCP_ALLOWED_HOSTS | localhost,127.0.0.1 | Complete accepted Host-header list; Compose separately adds required internal hosts |
UNIFI_MCP_ENABLE_DNS_REBINDING_PROTECTION | true | Validate Host headers to prevent DNS-rebinding requests |
UniFi MCP keeps the standard MCP path primary: capable clients discover currently registered tools with tools/list and invoke them with tools/call. The default lazy mode keeps initial context small by exposing meta-tools first, while eager mode registers all selected domain tools directly for clients that prefer a full standard tool list.
The lazy-loading meta-tools — *_tool_index, *_execute, *_batch, *_batch_status, and lazy-only *_load_tools — support filtered discovery, indirect execution, batch orchestration, and optional direct registration. They are independent of the protocol-version response compatibility policy below. See MCP Discovery and Lazy-Loading Meta-Tools for mode-by-mode behavior.
For tool results that already provide structured output, adaptive response mode is the default. It classifies each request by the canonical date-based protocolVersion advertised during MCP initialization, not by the client's product name or application version. Requests advertising MCP 2025-06-18 or later receive concise text in content and the full result once in structuredContent; requests advertising an earlier revision (such as 2024-11-05 or 2025-03-26), or whose revision metadata is missing or malformed, retain the full compatibility JSON in content. Set UNIFI_MCP_CONTENT_MODE=compat to force that duplicated compatibility form, or UNIFI_MCP_CONTENT_MODE=compact to force concise text plus the full structured result even outside a negotiated request. Use compat for any client that consumes the full result only from content, regardless of its advertised revision.
The lazy-loading meta-tools remain content-only; they are not the pre-2025-06-18 protocol category described above. For structured inner results, *_execute and *_batch_status expose one normalized JSON payload in content rather than a nested transport pair; content-only execute results remain unchanged. Response modes do not convert these meta-tools to structuredContent.
UNIFI_NETWORK_MCP_CONTENT_MODE, UNIFI_PROTECT_MCP_CONTENT_MODE, and UNIFI_ACCESS_MCP_CONTENT_MODE override the global setting for their respective servers. Independently of transport compaction, Network's unifi_get_dashboard defaults to summary=true, while unifi_list_rogue_aps defaults to a summarized page of at most 100 records; pass summary=false when the full selected data is required.
Paste the block below into your coding agent. It points the agent at the canonical, versioned setup guide and limits what it may change:
Install UniFi MCP for me using the official instructions at:
https://github.com/sirkirby/unifi-mcp/blob/main/docs/agent-install.md
Before changing anything, identify my agent client and operating system, ask
whether I need Network, Protect, Access, or more than one, and show me the exact
commands and configuration files you plan to change. Wait for my confirmation.
Do not ask me to paste a password or API key into chat. Prefer an indirect
credential provider or the client's secure secret prompt. Keep mutation
permissions in confirm mode and explicitly deny create, update, and delete
unless I opt in. After setup, reload the client, verify the MCP connection and
tool list, and run one harmless read-only check.
The guide covers native plugins, product-scoped npx skills add installs,
OpenCode's built-in MCP support, and the current manual paths for Antigravity,
Cursor, and Devin Desktop. A skills install adds agent guidance; it does not by
itself register the MCP server.
See the changelog for what each plugin release changed, and the plugin upgrade guide before updating an existing install.
Install via the plugin marketplace — includes the MCP server, an agent skill, and guided setup:
/plugin marketplace add sirkirby/unifi-mcp
/plugin install unifi-network@unifi-plugins
/unifi-network:unifi-network-setup
Repeat for Protect or Access if needed:
/plugin install unifi-protect@unifi-plugins
/plugin install unifi-access@unifi-plugins
For the cross-product skills, /plugin install unifi-intelligence@unifi-plugins
also installs the Network and Protect plugins it needs. Claude Code opens no
options dialog for plugins it installs as dependencies, so run each product's
setup command (/unifi-network:unifi-network-setup,
/unifi-protect:unifi-protect-setup) for any not yet configured.
/plugin install of a product plugin opens its options dialog straight away; fill it in there, or close it and run the setup command. Each plugin's setup command walks you through connecting to your controller and configuring permissions, and saves the result as the plugin's Claude Code options. Auto-update is off by default for this marketplace; see the plugin upgrade guide for update steps.
Prerequisites, version boundaries and verification status for each client are in the plugin support matrix.
Register the UniFi MCP marketplace, then install the plugins from Codex's /plugins UI:
codex plugin marketplace add sirkirby/unifi-mcp
FAQ
unifi-mcp is a Claude Code plugin with 16 hand-picked skills for operations work, indexed on Flowy. Install it with the command on its page. It includes unifi-access-setup, unifi-access-support, unifi-access. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it