Unofficial MCP server for the UniFi Site Manager and Network cloud APIs, with a write-confirm guard.
Connect Runs on your machine
claude mcp add the-real-unifi-mcp -e UNIFI_API_KEY=<UNIFI_API_KEY> -e UNIFI_CONFIRM_WRITES=<UNIFI_CONFIRM_WRITES> -e UNIFI_API_BASE=<UNIFI_API_BASE> -e UNIFI_TIMEOUT_MS=<UNIFI_TIMEOUT_MS> -e UNIFI_LOG_LEVEL=<UNIFI_LOG_LEVEL> -e UNIFI_CONSOLE_ID=<UNIFI_CONSOLE_ID> -e UNIFI_NETWORK_SITE_ID=<UNIFI_NETWORK_SITE_ID> -e UNIFI_SITE_MANAGER_SITE_ID=<UNIFI_SITE_MANAGER_SITE_ID> -e UNIFI_READ_ONLY=<UNIFI_READ_ONLY> -e UNIFI_REDACT_SECRETS=<UNIFI_REDACT_SECRETS> -e UNIFI_MAX_RESULT_BYTES=<UNIFI_MAX_RESULT_BYTES> -- npx -y [email protected]
{
"mcpServers": {
"the-real-unifi-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_CONFIRM_WRITES": "<UNIFI_CONFIRM_WRITES>",
"UNIFI_API_BASE": "<UNIFI_API_BASE>",
"UNIFI_TIMEOUT_MS": "<UNIFI_TIMEOUT_MS>",
"UNIFI_LOG_LEVEL": "<UNIFI_LOG_LEVEL>",
"UNIFI_CONSOLE_ID": "<UNIFI_CONSOLE_ID>",
"UNIFI_NETWORK_SITE_ID": "<UNIFI_NETWORK_SITE_ID>",
"UNIFI_SITE_MANAGER_SITE_ID": "<UNIFI_SITE_MANAGER_SITE_ID>",
"UNIFI_READ_ONLY": "<UNIFI_READ_ONLY>",
"UNIFI_REDACT_SECRETS": "<UNIFI_REDACT_SECRETS>",
"UNIFI_MAX_RESULT_BYTES": "<UNIFI_MAX_RESULT_BYTES>"
}
}
}
}
{
"mcpServers": {
"the-real-unifi-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_CONFIRM_WRITES": "<UNIFI_CONFIRM_WRITES>",
"UNIFI_API_BASE": "<UNIFI_API_BASE>",
"UNIFI_TIMEOUT_MS": "<UNIFI_TIMEOUT_MS>",
"UNIFI_LOG_LEVEL": "<UNIFI_LOG_LEVEL>",
"UNIFI_CONSOLE_ID": "<UNIFI_CONSOLE_ID>",
"UNIFI_NETWORK_SITE_ID": "<UNIFI_NETWORK_SITE_ID>",
"UNIFI_SITE_MANAGER_SITE_ID": "<UNIFI_SITE_MANAGER_SITE_ID>",
"UNIFI_READ_ONLY": "<UNIFI_READ_ONLY>",
"UNIFI_REDACT_SECRETS": "<UNIFI_REDACT_SECRETS>",
"UNIFI_MAX_RESULT_BYTES": "<UNIFI_MAX_RESULT_BYTES>"
}
}
}
}
{
"servers": {
"the-real-unifi-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"UNIFI_API_KEY": "<UNIFI_API_KEY>",
"UNIFI_CONFIRM_WRITES": "<UNIFI_CONFIRM_WRITES>",
"UNIFI_API_BASE": "<UNIFI_API_BASE>",
"UNIFI_TIMEOUT_MS": "<UNIFI_TIMEOUT_MS>",
"UNIFI_LOG_LEVEL": "<UNIFI_LOG_LEVEL>",
"UNIFI_CONSOLE_ID": "<UNIFI_CONSOLE_ID>",
"UNIFI_NETWORK_SITE_ID": "<UNIFI_NETWORK_SITE_ID>",
"UNIFI_SITE_MANAGER_SITE_ID": "<UNIFI_SITE_MANAGER_SITE_ID>",
"UNIFI_READ_ONLY": "<UNIFI_READ_ONLY>",
"UNIFI_REDACT_SECRETS": "<UNIFI_REDACT_SECRETS>",
"UNIFI_MAX_RESULT_BYTES": "<UNIFI_MAX_RESULT_BYTES>"
}
}
}
}
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 |
|---|---|
UNIFI_API_KEYRequired, secret | UniFi Site Manager API key with Network scope (unifi.ui.com, Settings > API). It controls your whole network: treat it like an admin password. |
UNIFI_CONFIRM_WRITESOptional | Write confirmation: destructive tools return a preview and run only when called again with confirm "YES". Only false, 0, no or off turn it off. |
UNIFI_API_BASEOptional | API base URL; this host receives the API key. https origin only (http only for loopback test stubs). Keep the default. |
UNIFI_TIMEOUT_MSOptional | Per-request timeout in milliseconds, covering response headers and body. |
UNIFI_LOG_LEVELOptional | Log level on stderr: debug, info, warn or error. |
UNIFI_CONSOLE_IDOptional | Pins the UniFi console instead of discovering it (needed when the account has several consoles). |
UNIFI_NETWORK_SITE_IDOptional | Pins the Network site instead of discovering it. |
UNIFI_SITE_MANAGER_SITE_IDOptional | Pins the Site Manager site instead of discovering it. |
UNIFI_READ_ONLYOptional | Read-only mode: every write tool returns an error and sends no request; reads still work. Off by default. |
UNIFI_REDACT_SECRETSOptional | Masks passwords, WiFi passphrases, pre-shared keys and other secret fields in every tool result with (redacted); write tools refuse a body that contains that placeholder. Off by default. |
UNIFI_MAX_RESULT_BYTESOptional | Cuts tool results longer than this many bytes and marks them as truncated. Unset or empty: 100000. 0, off or none: no cap. |
Details
| Package | [email protected] (NPM, stdio) |
| Package | https://github.com/mguttmann/the-real-unifi-mcp/releases/download/v0.4.0/[email protected] (MCPB, stdio) |
| First published | 27 Oct 2026 |
| Last updated | 27 Oct 2026 |
| Registry name | io.github.mguttmann/the-real-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.
