by sirkirby
MCP server implementation for the UniFi network application
# Add to your Claude Code skills
git clone https://github.com/sirkirby/unifi-mcpMCP servers that expose UniFi controller functionality as structured tools for LLMs, agents, and automation platforms.
| Server | Status | Tools | Package |
|--------|--------|-------|---------|
| Network | Stable | 91 | unifi-network-mcp |
| Protect | Coming Soon | — | — |
| Access | Planned | — | — |
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.
The fastest way to run the Network server:
# Using uvx (recommended)
uvx unifi-network-mcp
# Using Docker
docker run -i --rm \
-e UNIFI_HOST=192.168.1.1 \
-e UNIFI_USERNAME=admin \
-e UNIFI_PASSWORD=secret \
ghcr.io/sirkirby/unifi-network-mcp:latest
For Claude Desktop, add to your claude_desktop_config.json:
{
"mcpServers": {
"unifi": {
"command": "uvx",
"args": ["unifi-network-mcp"],
"env": {
"UNIFI_HOST": "192.168.1.1",
"UNIFI_USERNAME": "admin",
"UNIFI_PASSWORD": "your-password"
}
}
}
}
Set these environment variables (or use a .env file):
| Variable | Required | Description |
|----------|----------|-------------|
| UNIFI_HOST | Yes | Controller IP or hostname |
| UNIFI_USERNAME | Yes | Local admin username |
| UNIFI_PASSWORD | Yes | Admin password |
| UNIFI_API_KEY | No | Official UniFi API key (dual auth) |
For the full configuration reference including permissions, transports, and advanced options, see the Network server docs.
This is a monorepo with shared packages:
apps/
network/ # UniFi Network MCP server (stable, 91 tools)
packages/
unifi-core/ # Shared UniFi connectivity (auth, detection, retry)
unifi-mcp-shared/ # Shared MCP patterns (permissions, confirmation, lazy loading)
docs/ # Ecosystem-level documentation
Each server in apps/ is an independent Python package that depends on the shared packages. The shared packages ensure consistent behavior across all servers — same permission model, same confirmation flow, same lazy tool loading.
See docs/ARCHITECTURE.md for details.
Protect and Access servers are planned for future phases. See the ecosystem design spec for the full roadmap.
No comments yet. Be the first to share your thoughts!