Skip to main content
Glama
JohnGilligan2

unifi-mcp

unifi-mcp

Servidor MCP remoto de solo lectura que expone la flota UniFi de Example Corp / examplecorp como conector personalizado de Claude, a través de la API oficial de UniFi Site Manager (api.ui.com).

Hermano de odoo-ticket-mcp y de los servidores MCP de TRMM — misma arquitectura:

Claude (claude.ai / Claude Code)
   │  OAuth 2.0 bearer token (Microsoft Entra ID)
   ▼
nginx  — TLS, Anthropic egress-IP allowlist (160.79.104.0/21), 403 otherwise
   │  http://127.0.0.1:8097
   ▼
unifi-mcp container (Portainer stack, FastMCP 3.x, Streamable HTTP at /mcp)
   │  X-API-KEY (Site Manager API key, read-only usage)
   ▼
api.ui.com  — Site Manager API + connector proxy into each console's Network API
  • Autenticación cliente → servidor: Microsoft Entra ID, modo servidor de recursos. El servidor valida tokens de portador vinculados a la audiencia; nunca los emite. El acceso se controla mediante la pertenencia a grupos de Entra en el registro de la aplicación.

  • Autenticación servidor → UniFi: una clave de API fija de Site Manager (creada en unifi.ui.com → API Keys con alcances de aplicación Site Manager + Network, Todos los sitios). La identidad del llamador NO se reenvía deliberadamente a UniFi en v1.

  • Ruta de red: DNS público → nginx (TLS + lista de permitidos de IP de Anthropic) → contenedor. Defensa en profundidad: la lista de permitidos se suma a OAuth.

Herramientas (todas de solo lectura)

Site Manager (toda la flota):

Tool

Qué devuelve

unifi_list_hosts

Cada consola (UDM Pro / UNVR / Cloud Key): id, nombre, modelo, IP, estado, versión

unifi_get_host

Detalle de una consola (registro completo sin procesar opcional)

unifi_list_sites

Todos los sitios de Network en todas las consolas, con recuentos de dispositivos/clientes

unifi_list_devices

Dispositivos adoptados en toda la flota (APs, switches, gateways), filtro opcional por consola

unifi_isp_metrics

Salud de WAN/ISP (latencia, pérdida, tiempo de inactividad, rendimiento) para todos los sitios, granularidad de 5m o 1h

unifi_query_isp_metrics

Lo mismo, pero para pares (host, sitio) y ventanas específicos

unifi_list_sdwan_configs / unifi_sdwan_config_status

Topologías SD-WAN + estado de implementación

Proxy de conector (profundización por consola, sin necesidad de VPN):

Tool

Qué devuelve

unifi_network_sites

Lista de sitios local de la consola (los ids locales difieren de los ids de Site Manager)

unifi_network_devices

Dispositivos de un sitio desde la propia API de Network de la consola

unifi_network_device

Detalle completo del dispositivo + estadísticas en vivo más recientes (CPU, memoria, uplink, radios)

unifi_network_clients

Clientes conectados en vivo: nombre, MAC, IP, tipo de conexión, uplink

Flujo típico: unifi_list_hosts → elegir consola → unifi_network_sitesunifi_network_clients / unifi_network_device.

Related MCP server: UniFi MCP Server

Desarrollo local

python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
copy .env.example .env    # fill in UNIFI_API_KEY; set MCP_AUTH_ENABLED=false
.venv\Scripts\python -m unifi_mcp
# → http://127.0.0.1:8000/mcp  (test with MCP Inspector)

MCP_AUTH_ENABLED=false abre el endpoint — solo para pruebas locales, nunca en producción.

Registro de la aplicación en Entra ID (una sola vez)

Sigue TrmmMCPServer/ENTRA_SSO_PLAYBOOK.md para la versión anotada. Resumen — haz estos pasos en orden:

  1. Registros de aplicaciones → Nuevo registro — nombre UniFi MCP, un solo inquilino, sin URI de redirección todavía. Copia el id de cliente + id de inquilino.

  2. Exponer una API → URI de ID de aplicación — configúralo exactamente como https://unifi-mcp.example.com/mcp (previene AADSTS9010010).

  3. Exponer una API → Agregar un ámbitoaccess_as_user, administradores y usuarios pueden consentir, habilitado.

  4. Certificados y secretos → Nuevo secreto de clienteclaude-connector, 24 meses. Copia el valor inmediatamente.

  5. Autenticación → Agregar plataforma → Web — URIs de redirección https://claude.ai/api/mcp/auth_callback y https://claude.com/api/mcp/auth_callback.

  6. Manifiesto — establece requestedAccessTokenVersion en 2 (previene errores 401 por discrepancia de emisor).

  7. Aplicaciones empresariales → UniFi MCP → Propiedades — Asignación requerida = .

  8. Aplicaciones empresariales → Usuarios y grupos — agrega el grupo Unifi-MCP-Users. La pertenencia al grupo = quién puede usar el conector.

Implementación

Consulta PORTAINER_DEPLOY.md (stack de Git de Portainer + redespliegue por webhook) y deploy/nginx-unifi-mcp.conf (TLS + lista de permitidos de IP de Anthropic).

Registrar el conector en claude.ai

Configuración → Conectores → Agregar conector personalizado:

Campo

Valor

URL

https://unifi-mcp.example.com/mcp

ID de cliente

el id de cliente de la aplicación de Entra

Secreto de cliente

el secreto de cliente de Entra

URL de autorización

https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize

URL de token

https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

Ámbitos

https://unifi-mcp.example.com/mcp/access_as_user

Pruebas de aceptación

# 1. Discovery doc advertises the full resource scope (not api://…)
curl -s https://unifi-mcp.example.com/.well-known/oauth-protected-resource/mcp | jq .scopes_supported

# 2. Unauthenticated /mcp is challenged
curl -i https://unifi-mcp.example.com/mcp        # 401 + WWW-Authenticate: Bearer

# 3. Non-Anthropic source IP is blocked at nginx
curl -i https://unifi-mcp.example.com/mcp        # from anywhere else: 403

# 4. Health (host-local, bypasses nginx)
curl http://<docker-host>:8097/healthz                 # {"status":"ok","service":"unifi_mcp"}

# 5. In claude.ai: connect as a Unifi-MCP-Users member → tools appear;
#    non-member → AADSTS50105 at sign-in.
F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with Ubiquiti UniFi network infrastructure for monitoring devices, managing clients, and performing configuration tasks like blocking/unblocking devices and viewing network health.
    10
    1
    GPL 3.0
  • A
    license
    D
    quality
    D
    maintenance
    Enables comprehensive management of UniFi network infrastructure through the UniFi Cloud API, including device control, client management, camera settings, and access door control through natural language.
    39
    52
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to manage and monitor UniFi Network Controllers through natural language. Provides 25 read-only tools for discovering devices and clients, viewing security configurations, analyzing network statistics, and exporting configuration data.
    41
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to manage UniFi network infrastructure through 50+ tools covering devices, clients, networks, WiFi, firewall rules, and guest access using the official UniFi Network API.
    52
    58
    5
    MIT

View all related MCP servers

Related MCP Connectors

  • Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.

  • Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

View all MCP Connectors

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/JohnGilligan2/unifi-mcp'

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