Manage a Ubiquiti UniFi network: devices, clients, WiFi, firewall and VPN. Read-only by default.
Connect Runs on your machine
claude mcp add unifi-mcp -e MCP_TRANSPORT=<MCP_TRANSPORT> -e UNIFI_URL=<UNIFI_URL> -e UNIFI_API_KEY=<UNIFI_API_KEY> -e UNIFI_USERNAME=<UNIFI_USERNAME> -e UNIFI_PASSWORD=<UNIFI_PASSWORD> -e UNIFI_TLS_FINGERPRINT=<UNIFI_TLS_FINGERPRINT> -e UNIFI_VERIFY_SSL=<UNIFI_VERIFY_SSL> -e UNIFI_SITE=<UNIFI_SITE> -e UNIFI_ALLOW_WRITES=<UNIFI_ALLOW_WRITES> -e UNIFI_ALLOW_DELETES=<UNIFI_ALLOW_DELETES> -e UNIFI_TOOLSETS=<UNIFI_TOOLSETS> -e UNIFI_AUDIT_LOG=<UNIFI_AUDIT_LOG> -- docker run -i --rm ghcr.io/mattoddie/unifi-mcp:0.6.1
{
"mcpServers": {
"unifi-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mattoddie/unifi-mcp:0.6.1"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"UNIFI_URL": "<UNIFI_URL>",
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_USERNAME": "<UNIFI_USERNAME>",
"UNIFI_PASSWORD": "<UNIFI_PASSWORD>",
"UNIFI_TLS_FINGERPRINT": "<UNIFI_TLS_FINGERPRINT>",
"UNIFI_VERIFY_SSL": "<UNIFI_VERIFY_SSL>",
"UNIFI_SITE": "<UNIFI_SITE>",
"UNIFI_ALLOW_WRITES": "<UNIFI_ALLOW_WRITES>",
"UNIFI_ALLOW_DELETES": "<UNIFI_ALLOW_DELETES>",
"UNIFI_TOOLSETS": "<UNIFI_TOOLSETS>",
"UNIFI_AUDIT_LOG": "<UNIFI_AUDIT_LOG>"
}
}
}
}
{
"mcpServers": {
"unifi-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mattoddie/unifi-mcp:0.6.1"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"UNIFI_URL": "<UNIFI_URL>",
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_USERNAME": "<UNIFI_USERNAME>",
"UNIFI_PASSWORD": "<UNIFI_PASSWORD>",
"UNIFI_TLS_FINGERPRINT": "<UNIFI_TLS_FINGERPRINT>",
"UNIFI_VERIFY_SSL": "<UNIFI_VERIFY_SSL>",
"UNIFI_SITE": "<UNIFI_SITE>",
"UNIFI_ALLOW_WRITES": "<UNIFI_ALLOW_WRITES>",
"UNIFI_ALLOW_DELETES": "<UNIFI_ALLOW_DELETES>",
"UNIFI_TOOLSETS": "<UNIFI_TOOLSETS>",
"UNIFI_AUDIT_LOG": "<UNIFI_AUDIT_LOG>"
}
}
}
}
{
"servers": {
"unifi-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mattoddie/unifi-mcp:0.6.1"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"UNIFI_URL": "<UNIFI_URL>",
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_USERNAME": "<UNIFI_USERNAME>",
"UNIFI_PASSWORD": "<UNIFI_PASSWORD>",
"UNIFI_TLS_FINGERPRINT": "<UNIFI_TLS_FINGERPRINT>",
"UNIFI_VERIFY_SSL": "<UNIFI_VERIFY_SSL>",
"UNIFI_SITE": "<UNIFI_SITE>",
"UNIFI_ALLOW_WRITES": "<UNIFI_ALLOW_WRITES>",
"UNIFI_ALLOW_DELETES": "<UNIFI_ALLOW_DELETES>",
"UNIFI_TOOLSETS": "<UNIFI_TOOLSETS>",
"UNIFI_AUDIT_LOG": "<UNIFI_AUDIT_LOG>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MCP_TRANSPORTOptional | The image serves HTTP by default; this runs it over stdio. |
UNIFI_URLRequired | Address of your UniFi console. For a legacy self-hosted Network application, include the port. |
UNIFI_API_KEYOptional, secret | API key from UniFi Network → Settings → Control Plane → Integrations. Or use a username and password. |
UNIFI_USERNAMEOptional | A local (not Ubiquiti cloud) account, used instead of an API key. Required for legacy controllers. |
UNIFI_PASSWORDOptional, secret | The local account's password, used with the username. |
UNIFI_TLS_FINGERPRINTOptional | Recommended for an https controller with a self-signed certificate: its SHA-256 fingerprint, to pin it. |
UNIFI_VERIFY_SSLOptional | Leave empty when you set a fingerprint. true: publicly trusted certificate. false: skip the check (insecure). |
UNIFI_SITEOptional | The site's short name, used when a request doesn't name a site. |
UNIFI_ALLOW_WRITESOptional | Allow changes: restart devices, block clients, edit WiFi, firewall and networks. Off means read-only. |
UNIFI_ALLOW_DELETESOptional | Also allow deleting configuration and forgetting clients. Needs UNIFI_ALLOW_WRITES. |
UNIFI_TOOLSETSOptional | Optional comma-separated list to expose fewer tools, e.g. overview,devices,clients. Empty means all. |
UNIFI_AUDIT_LOGOptional | Set to stderr to log every change the assistant makes or previews as JSON lines. Off when empty. |
Details
| Package | ghcr.io/mattoddie/unifi-mcp:0.6.1 (OCI, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-darwin-arm64.mcpb (MCPB, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-darwin-amd64.mcpb (MCPB, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-windows-amd64.mcpb (MCPB, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-windows-arm64.mcpb (MCPB, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-linux-amd64.mcpb (MCPB, stdio) |
| Package | https://github.com/mattoddie/unifi-mcp/releases/download/v0.6.1/unifi-mcp-0.6.1-linux-arm64.mcpb (MCPB, stdio) |
| First published | 22 Oct 2026 |
| Last updated | 22 Oct 2026 |
| Registry name | io.github.mattoddie/unifi-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
