Skip to main content
Glama

UniFi MCP

CI License: MIT

Un servidor de Model Context Protocol para UniFi Network y UniFi Protect, para que un asistente de IA pueda responder preguntas sobre tu red y — si se lo permites — actuar sobre ella.

Habla directamente con tu consola UniFi OS (UDR, UDM/UDM-Pro/SE, UCG, Cloud Key) a través de tu red local. Sin servicio en la nube, sin cuenta de Ubiquiti, nada sale de tu LAN excepto lo que decidas compartir con tu asistente.

Funciona con cualquier cliente MCP. Se distribuye como un plugin .mcpb de un clic para Claude Desktop, como un servidor ejecutable con npx y como un proyecto Node normal.


Qué puedes preguntar

¿Qué dispositivos están ahora mismo en mi WiFi y en qué punto de acceso están? ¿Hay algo en la red con mala conexión? Enséñame los eventos del timbre de anoche. Toma una instantánea de la cámara de la puerta principal. ¿Qué puertos están redirigidos desde internet? Reinicia el punto de acceso del salón. (requiere acciones habilitadas)

Related MCP server: UniFi MCP Server

Características destacadas

  • Network: dispositivos, clientes (en vivo e históricos), redes WiFi, VLAN y subredes, reglas de cortafuegos, redirecciones de puertos, estado del sitio y estado de WAN, registro de eventos, alarmas, estadísticas históricas, vales de invitados.

  • Protect: cámaras y timbres, instantáneas en vivo devueltas como imágenes, eventos de movimiento/timbre/detección inteligente, sensores, luces, timbres, URL de flujos RTSPS.

  • Tres niveles de permisos — solo lectura por defecto; las acciones y los cambios de configuración son conmutadores opcionales.

  • Dos métodos de autenticación — clave de API oficial y/o cuenta de administrador local, cada uno desbloqueando una parte diferente de la API de UniFi. Usa ambos para una cobertura completa.

  • Salida compacta — cada herramienta de listado resume por defecto (detail: "full" devuelve los objetos UniFi sin procesar) para que las respuestas sigan siendo legibles y económicas.

  • Vía de escapeunifi_raw_request llega a cualquier endpoint que no tenga una herramienta dedicada.


Requisitos

  • Una consola UniFi OS accesible desde la máquina que ejecuta el servidor MCP.

  • Node.js 20.18.1 o más reciente (solo para la instalación con npx / desde el código fuente — el plugin .mcpb usa el runtime que incluye Claude Desktop).

  • Credenciales, ver Autenticación.


Instalación

Opción A — Plugin de Claude Desktop (.mcpb)

  1. Descarga unifi-mcp-<version>.mcpb desde la última versión.

  2. Abre Claude Desktop → Configuración → Extensiones y arrastra el archivo (o haz doble clic en él).

  3. Rellena la dirección de la consola y las credenciales en el panel de configuración, y decide si quieres permitir acciones.

Todo está incluido, así que no se necesita una instalación separada de Node.

Los ejemplos con npx de abajo usan el paquete npm publicado. Hasta la primera publicación en npm, puedes apuntar npx directamente al repositorio: npx -y github:mbgroen/unifi-mcp.

Opción B — Claude Code

claude mcp add unifi \
  --env UNIFI_HOST=192.168.1.1 \
  --env UNIFI_USERNAME=mcp-readonly \
  --env UNIFI_PASSWORD='your-password' \
  --env UNIFI_API_KEY='your-api-key' \
  -- npx -y @mbgroen/unifi-mcp

Opción C — cualquier otro cliente MCP

Añade esto a la configuración del servidor MCP del cliente (Cursor, VS Code, Windsurf, Zed, hosts personalizados):

{
  "mcpServers": {
    "unifi": {
      "command": "npx",
      "args": ["-y", "@mbgroen/unifi-mcp"],
      "env": {
        "UNIFI_HOST": "192.168.1.1",
        "UNIFI_API_KEY": "your-api-key",
        "UNIFI_USERNAME": "mcp-readonly",
        "UNIFI_PASSWORD": "your-password",
        "UNIFI_PERMISSION_MODE": "read-only"
      }
    }
  }
}

Opción D — desde el código fuente

git clone https://github.com/mbgroen/unifi-mcp.git
cd unifi-mcp
npm install
npm run build
cp .env.example .env   # fill it in
node dist/index.js     # speaks MCP over stdio

Autenticación

UniFi OS expone dos familias de API, y no son intercambiables. Este servidor admite ambas y elige la que esté configurada — configurar ambas ofrece la cobertura más amplia.

Clave de API

Cuenta local

Dónde

Configuración → Plano de control → Integraciones → Crear clave de API

Configuración → Administradores → Añadir administrador (solo acceso local, sin 2FA)

Variable

UNIFI_API_KEY

UNIFI_USERNAME + UNIFI_PASSWORD

Cubre

Subconjunto oficialmente compatible: sitios, dispositivos, clientes, vales, cámaras/instantáneas de Protect

Todo lo que usa la propia aplicación web de UniFi: estadísticas, eventos, alarmas, cortafuegos, redirecciones de puertos, configuración de WLAN/VLAN, registro de eventos de Protect

Estabilidad

Estable, documentada

No oficial; puede cambiar con una actualización de UniFi

Para una configuración de solo lectura, crea un administrador local dedicado con el rol Viewer. Las acciones y los cambios de configuración necesitan una cuenta con derechos de administrador.

No se admite la autenticación de dos factores para la cuenta local — el inicio de sesión de sesión no tiene forma de solicitar un código. Crea una cuenta local separada sin 2FA para este servidor. (Tu propia cuenta conserva su 2FA).


Niveles de permisos

El servidor se niega a exponer herramientas que no tiene permitido ejecutar — una herramienta no permitida no solo se bloquea en el momento de la llamada, sino que nunca se lista.

Modo

UNIFI_PERMISSION_MODE

Conmutadores del plugin

Qué añade

Solo lectura (por defecto)

read-only

ambos desactivados

Solo lectura. Nada en tu red puede cambiar.

Acciones

safe

Permitir acciones

Bloquear/desbloquear un cliente, reconectar un cliente, reiniciar un dispositivo, hacer parpadear su LED, reiniciar el suministro de un puerto PoE, activar/desactivar un SSID, ejecutar una prueba de velocidad, gestionar vales de invitados, renombrar clientes, configurar el mensaje del timbre. Todo reversible.

Control total

full

Permitir cambios de configuración

Reglas de cortafuegos, redirecciones de puertos, configuración de WiFi y red, actualizaciones de firmware, modos de grabación de Protect y acceso de escritura a través de unifi_raw_request.

Empieza en solo lectura. Súbelo solo cuando quieras que el asistente cambie algo de verdad, y recuerda que un asistente actúa sobre lo que lee — incluidos los nombres de dispositivos y las notas que provienen de la propia red.


Herramientas

Solo lectura

Herramienta

Qué hace

Consola

unifi_status

Comprueba la conexión con la consola UniFi: qué credenciales funcionan, qué aplicaciones son accesibles y qué se le permite hacer actualmente a este servidor. Úsala primero cuando algo falle.

unifi_raw_request

Vía de escape para endpoints sin una herramienta dedicada. GET está disponible en todos los modos de permisos; otros métodos requieren control total. Las rutas son relativas a la superficie de API elegida.

UniFi Network

unifi_list_sites

Lista los sitios de UniFi Network en esta consola, con el nombre del sitio para pasar a otras herramientas.

unifi_list_devices

Lista los dispositivos UniFi adoptados (puerta de enlace/router, puntos de acceso, conmutadores) con modelo, estado, firmware, tiempo de actividad, número de clientes y carga.

unifi_get_device

Detalles completos de un dispositivo UniFi por dirección MAC, incluidos radios, puertos, temperaturas y enlace ascendente.

unifi_list_clients

Lista los clientes de la red con IP, señal, rendimiento y qué punto de acceso o puerto de conmutador utilizan.

unifi_list_known_clients

Lista todos los clientes que el controlador ha visto alguna vez, incluidos los desconectados, sus IP fijas, notas y estado de bloqueo.

unifi_list_wlans

Lista los SSID configurados con ajustes de seguridad, banda y estado de activación.

unifi_list_networks

Lista la configuración de LAN, VLAN y WAN, incluidos subredes y rangos DHCP.

unifi_list_port_forwards

Lista las reglas de redirección de puertos en la puerta de enlace.

unifi_list_firewall_rules

Lista las reglas de firewall (y opcionalmente los grupos de firewall) configuradas en la puerta de enlace.

unifi_site_health

Estado general por subsistema (WAN, LAN, WLAN, VPN): estado, tiempo de actividad, latencia, rendimiento y último resultado de prueba de velocidad.

unifi_list_events

Eventos recientes de Network: conexión/desconexión de clientes, roaming, reinicios de dispositivos y cambios de configuración.

unifi_list_alarms

Alarmas abiertas (o archivadas) generadas por la aplicación Network.

unifi_get_stats

Estadísticas de series temporales para el sitio, un punto de acceso, la puerta de enlace o un único cliente (rendimiento, clientes, latencia).

unifi_list_vouchers

Lista los vales de invitado del punto de acceso con su duración, cuota y uso.

UniFi Protect

unifi_protect_info

Versión, almacenamiento y estado de grabación del NVR UniFi Protect que se ejecuta en esta consola.

unifi_protect_list_cameras

Lista las cámaras y videoporteros con estado de conexión, modo de grabación, nivel de batería y última detección de movimiento/llamada.

unifi_protect_get_camera

Detalles completos de una cámara o videoportero, incluidos sus indicadores de funciones y ajustes.

unifi_protect_snapshot

Obtiene una imagen actual de una cámara o videoportero y la devuelve como imagen para poder verla directamente.

unifi_protect_list_events

Eventos recientes de Protect: movimiento, detecciones inteligentes (persona, vehículo, paquete), llamadas al videoportero y conexión/desconexión de dispositivos.

unifi_protect_list_devices

Lista los sensores, luces, timbres, visores y cerraduras de Protect.

unifi_protect_get_stream_url

Devuelve la URL RTSPS de una cámara para que pueda abrirse en VLC, ffmpeg o un reproductor multimedia.

Acciones (seguras)

Herramienta

Qué hace

UniFi Network

unifi_block_client

Bloquea un dispositivo de la red, o levanta un bloqueo existente. Totalmente reversible con la misma herramienta.

unifi_reconnect_client

Fuerza la reconexión de un cliente inalámbrico (expulsión). Útil para mover un dispositivo a otra banda o punto de acceso.

unifi_authorize_guest

Autoriza a un cliente en el portal de invitados durante un periodo de tiempo, o revoca ese acceso.

unifi_set_client_name

Asigna a un cliente un nombre descriptivo y/o una nota en el controlador.

unifi_restart_device

Reinicia un punto de acceso, un conmutador o la propia puerta de enlace. Un reinicio suave reinicia el software; uno duro corta y restablece la alimentación.

unifi_locate_device

Hace que un dispositivo UniFi parpadee su LED para poder localizarlo físicamente, o detiene el parpadeo.

unifi_power_cycle_port

Cicla la alimentación de un puerto PoE del conmutador, reiniciando lo que esté conectado a él.

unifi_set_wlan_enabled

Activa o desactiva un SSID, por ejemplo una red de invitados o IoT.

unifi_run_speedtest

Inicia una prueba de velocidad en la puerta de enlace, o lee el estado de la prueba en curso.

unifi_create_voucher

Crea uno o más vales de invitado para el punto de acceso.

unifi_revoke_voucher

Elimina un vale de invitado para que ya no pueda utilizarse.

UniFi Protect

unifi_protect_set_doorbell_message

Muestra un mensaje personalizado en la pantalla del videoportero UniFi, o lo restablece al predeterminado. Reversible.

unifi_protect_set_light

Fuerza el encendido o apagado de un foco UniFi Protect, o devuelve el control a la detección de movimiento.

Configuración (completa)

Herramienta

Qué hace

UniFi Network

unifi_set_port_forward_enabled

Activa o desactiva una regla de redirección de puertos existente.

unifi_set_firewall_rule_enabled

Activa o desactiva una regla de firewall existente.

unifi_update_wlan

Modifica los ajustes de un SSID (nombre, contraseña, banda, política de invitados, ...). Solo cambian las claves proporcionadas.

unifi_update_network

Modifica los ajustes de una definición de LAN/VLAN/WAN. Solo cambian las claves proporcionadas.

unifi_upgrade_device

Inicia una actualización de firmware en un dispositivo UniFi. El dispositivo se reinicia al terminar.

UniFi Protect

unifi_protect_set_recording_mode

Define cuándo graba una cámara: siempre, solo con detecciones o nunca. Esto afecta a tus grabaciones de seguridad.

unifi_protect_update_device

Modifica ajustes arbitrarios en un dispositivo Protect (cámara, sensor, luz, timbre, visor). Solo cambian las claves proporcionadas.

Toda herramienta de listado acepta detail: "summary" | "full"; las herramientas con ámbito de sitio aceptan site para sobrescribir el sitio configurado.


Referencia de configuración

Variable

Por defecto

Descripción

UNIFI_HOST

(obligatorio)

Nombre de host o IP de la consola. Se asume https://.

UNIFI_API_KEY

Clave de API para la API de integración oficial.

UNIFI_USERNAME / UNIFI_PASSWORD

Cuenta local de UniFi OS para la API interna.

UNIFI_MFA_TOKEN

Código 2FA de un solo uso, si realmente debes usar una cuenta que lo tenga.

UNIFI_SITE

default

Nombre del sitio de red.

UNIFI_PERMISSION_MODE

read-only

read-only, safe o full.

UNIFI_ALLOW_WRITE

false

Alternativa booleana que equivale a safe.

UNIFI_ALLOW_FULL_CONTROL

false

Alternativa booleana que equivale a full.

UNIFI_ENABLE_NETWORK

true

Expone las herramientas de Network.

UNIFI_ENABLE_PROTECT

true

Expone las herramientas de Protect.

UNIFI_VERIFY_TLS

false

Verifica el certificado de la consola. Las consolas usan un certificado autofirmado en su dirección local.

UNIFI_TIMEOUT_MS

20000

Tiempo de espera por solicitud.

Se requiere al menos un conjunto de credenciales; el servidor termina con un mensaje explicativo si no hay ninguno configurado.


Notas de seguridad

  • Las credenciales se almacenan en la configuración de tu cliente MCP. En Claude Desktop, el plugin guarda la clave de API y la contraseña en el llavero del sistema operativo porque están marcadas como sensitive.

  • La verificación TLS está desactivada por defecto porque las consolas UniFi presentan un certificado autofirmado para su dirección LAN. La conexión sigue cifrada, pero no está autenticada: manten el servidor en una red de confianza, o instala un certificado adecuado y establece UNIFI_VERIFY_TLS=true.

  • Todo lo que un asistente lee de tu red (nombres de clientes, notas, SSIDs, mensajes de eventos) es entrada no confiable. Es una razón más para dejar el servidor en modo de solo lectura a menos que tengas un motivo para no hacerlo.

  • Nada se envía a ningún sitio excepto a tu consola y al cliente MCP que hayas conectado.


Solución de problemas

Ejecuta unifi_status primero: informa de qué credenciales se autenticaron, qué aplicaciones respondieron y el modo de permiso activo.

Síntoma

Causa probable

login failed: invalid username or password

Estás usando una cuenta SSO de Ubiquiti en lugar de una cuenta local, o la cuenta tiene 2FA habilitado.

requires two-factor authentication (HTTP 499)

Crea una cuenta local sin 2FA.

Could not reach the UniFi console

UNIFI_HOST incorrecto, o no se puede alcanzar la consola. Prueba primero curl -k https://<host>/.

Obtienes errores de self-signed certificate

Deja UNIFI_VERIFY_TLS=false.

Las herramientas de Protect dicen unreachable

Protect no está instalado en esta consola, o la clave de API no tiene acceso a Protect. Configura UNIFI_ENABLE_PROTECT=false para ocultar las herramientas.

Una herramienta no aparece en la lista

Necesita un nivel de permisos superior, o la aplicación correspondiente está deshabilitada.

only available through the internal UniFi Network API

Ese dato no está en la API de integración: añade UNIFI_USERNAME/UNIFI_PASSWORD.


Desarrollo

npm install
npm run build          # compile TypeScript to dist/
npm run typecheck      # types only
npm run inspect        # MCP Inspector against the local build
npm run bundle         # build unifi-mcp-<version>.mcpb

Para añadir una herramienta: defínela como se indica en defineTool() en src/tools/, declara su tier y su feature, y expórtala desde src/tools/index.ts. scripts/sync-manifest-tools.mjs mantiene manifest.json sincronizado (se ejecuta como parte de npm run bundle).

Publicación

npm version minor          # bumps package.json and creates the v-tag
git push --follow-tags

El flujo de publicación compila el bundle y adjunta unifi-mcp-<version>.mcpb y SHA256SUMS.txt al release de GitHub.


Compatibilidad

Desarrollado con UniFi OS 4.x con UniFi Network 9.x y UniFi Protect 6.x en una UDR, con puntos de acceso de pared e independientes, una cámara LTE y un timbre. Otras consolas UniFi OS usan la misma superficie de API. Los endpoints que una consola o firmware determinados no implementan devuelven un error claro en lugar de fallar en silencio.

Licencia

MIT — consulta LICENSE.

Este proyecto no está afiliado a Ubiquiti Inc., ni cuenta con su respaldo o soporte. UniFi es una marca comercial de Ubiquiti Inc.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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
    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
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants with access to UniFi Network and Protect infrastructure for managing devices, monitoring clients, analyzing network health, viewing camera snapshots, and getting optimization recommendations across multiple UniFi controllers.
    2
  • A
    license
    C
    quality
    A
    maintenance
    Enables AI agents to manage UniFi network infrastructure via the Model Context Protocol, supporting device management, network configuration, security, and QoS through local or cloud APIs.
    43
    52
    235
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

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

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