Skip to main content
Glama
nntkio

UniFi MCP Server

by nntkio
README.md4.16 kB
# UniFi MCP Server An MCP (Model Context Protocol) server for Ubiquiti UniFi network devices. This allows AI assistants to interact with UniFi network infrastructure for monitoring, device management, and configuration tasks. ## Installation ### Option 1: Docker (Recommended) ```bash # Clone the repository git clone https://github.com/nntkio/unifiMCP.git cd unifiMCP # Copy and configure environment variables cp .env.example .env # Edit .env with your UniFi controller details # Build and run with Docker Compose docker compose up -d ``` ### Option 2: Local Installation ```bash # Clone the repository git clone https://github.com/nntkio/unifiMCP.git cd unifiMCP # Create virtual environment uv venv # Activate virtual environment source .venv/bin/activate # Install dependencies uv pip install -e ".[dev]" ``` ## Configuration ### Environment Variables Configure the following environment variables before running the server: | Variable | Description | Default | Required | |----------|-------------|---------|----------| | `UNIFI_HOST` | UniFi Controller URL (e.g., `https://192.168.1.1`) | - | Yes | | `UNIFI_USERNAME` | UniFi Controller username | - | Yes | | `UNIFI_PASSWORD` | UniFi Controller password | - | Yes | | `UNIFI_SITE` | UniFi site name | `default` | No | | `UNIFI_VERIFY_SSL` | Verify SSL certificates (`true`/`false`) | `true` | No | | `UNIFI_IS_UNIFI_OS` | Using UniFi OS device like UDM/UDM Pro (`true`/`false`) | `false` | No | ### Example Configuration ```bash # Standard Controller (port 8443) export UNIFI_HOST="https://192.168.1.1:8443" export UNIFI_USERNAME="admin" export UNIFI_PASSWORD="your-password" export UNIFI_SITE="default" export UNIFI_VERIFY_SSL="false" export UNIFI_IS_UNIFI_OS="false" # UniFi OS Device (UDM/UDM Pro - port 443) export UNIFI_HOST="https://192.168.1.1" export UNIFI_USERNAME="admin" export UNIFI_PASSWORD="your-password" export UNIFI_SITE="default" export UNIFI_VERIFY_SSL="false" export UNIFI_IS_UNIFI_OS="true" ``` ## Usage ### Running the Server **With Docker:** ```bash # Using Docker Compose (recommended) docker compose up -d # Or run directly with Docker docker run -it --rm \ -e UNIFI_HOST="https://192.168.1.1" \ -e UNIFI_USERNAME="admin" \ -e UNIFI_PASSWORD="your-password" \ -e UNIFI_VERIFY_SSL="false" \ -e UNIFI_IS_UNIFI_OS="true" \ unifi-mcp:latest ``` **Without Docker:** ```bash unifi-mcp ``` ### Claude Desktop Configuration Add to your Claude Desktop config file (`~/.config/claude/claude_desktop_config.json` on Linux or `~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): **Local installation:** ```json { "mcpServers": { "unifi": { "command": "/path/to/unifiMCP/.venv/bin/unifi-mcp", "env": { "UNIFI_HOST": "https://192.168.1.1", "UNIFI_USERNAME": "admin", "UNIFI_PASSWORD": "your-password", "UNIFI_VERIFY_SSL": "false", "UNIFI_IS_UNIFI_OS": "true" } } } } ``` **With Docker:** ```json { "mcpServers": { "unifi": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "UNIFI_HOST=https://192.168.1.1", "-e", "UNIFI_USERNAME=admin", "-e", "UNIFI_PASSWORD=your-password", "-e", "UNIFI_VERIFY_SSL=false", "-e", "UNIFI_IS_UNIFI_OS=true", "unifi-mcp:latest" ] } } } ``` ## Available Tools | Tool | Description | |------|-------------| | `get_devices` | List all network devices (APs, switches, gateways) | | `restart_device` | Restart a device by MAC address | | `get_clients` | List connected clients | | `block_client` | Block a client from the network | | `unblock_client` | Unblock a previously blocked client | | `disconnect_client` | Force disconnect a client | | `get_sites` | List all configured sites | | `get_site_health` | Get health status for the current site | | `get_networks` | List network configurations | | `get_device_activity` | Get activity for a specific device (connected clients, traffic) | ## Development ```bash # Run tests pytest # Run tests with coverage pytest --cov=src # Lint and format ruff check . ruff format . ``` ## License MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nntkio/unifiMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server