Skip to main content
Glama
JohnGilligan2

unifi-mcp

unifi-mcp

Только для чтения удалённый MCP-сервер, предоставляющий парк устройств UniFi Example Corp / examplecorp в качестве пользовательского коннектора Claude через официальный UniFi Site Manager API (api.ui.com).

Родственный проект odoo-ticket-mcp и MCP-серверов TRMM — та же архитектура:

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
  • Аутентификация клиент → сервер: Microsoft Entra ID, режим ресурсного сервера. Сервер проверяет bearer-токены, привязанные к аудитории; он никогда их не выдаёт. Доступ контролируется членством в группах Entra в регистрации приложения.

  • Аутентификация сервер → UniFi: один фиксированный ключ API Site Manager (созданный на unifi.ui.com → API Keys с областями приложения Site Manager и Network, все сайты). Идентичность вызывающего намеренно НЕ передаётся в UniFi в v1.

  • Сетевой путь: публичный DNS → nginx (TLS + список разрешённых IP-адресов Anthropic) → контейнер. Защита в глубину: allowlist дополняет OAuth.

Инструменты (все только для чтения)

Site Manager (по всему парку):

Инструмент

Что возвращает

unifi_list_hosts

Каждая консоль (UDM Pro / UNVR / Cloud Key): id, имя, модель, IP, состояние, версия

unifi_get_host

Детали одной консоли (необязательно, полная необработанная запись)

unifi_list_sites

Все сайты Network на всех консолях, с количеством устройств и клиентов

unifi_list_devices

Принятые устройства по всему парку (точки доступа, коммутаторы, шлюзы), необязательный фильтр по консоли

unifi_isp_metrics

Состояние WAN/ISP (задержка, потери, время простоя, пропускная способность) для всех сайтов, гранулярность 5 минут или 1 час

unifi_query_isp_metrics

То же, но для конкретных пар (хост, сайт) и временных окон

unifi_list_sdwan_configs / unifi_sdwan_config_status

Топологии SD-WAN + состояние развёртывания

Прокси коннектора (детализация по консоли, без VPN):

Инструмент

Что возвращает

unifi_network_sites

Список сайтов на консоли (локальные id отличаются от id Site Manager)

unifi_network_devices

Устройства сайта из собственного Network API консоли

unifi_network_device

Полные детали устройства + последние живые статистики (CPU, память, аплинк, радиомодули)

unifi_network_clients

Подключённые клиенты в реальном времени: имя, MAC, IP, тип подключения, аплинк

Типичный поток: unifi_list_hosts → выбор консоли → unifi_network_sitesunifi_network_clients / unifi_network_device.

Related MCP server: UniFi MCP Server

Локальная разработка

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 открывает конечную точку — только для локального тестирования, никогда в продакшене.

Регистрация приложения Entra ID (однократно)

См. TrmmMCPServer/ENTRA_SSO_PLAYBOOK.md для аннотированной версии. Краткое изложение — выполняйте эти шаги по порядку:

  1. Регистрация приложений → Новая регистрация — имя UniFi MCP, один арендатор, пока без URI перенаправления. Скопируйте идентификатор клиента и идентификатор арендатора.

  2. Открыть API → URI идентификатора приложения — установите точно https://unifi-mcp.example.com/mcp (предотвращает AADSTS9010010).

  3. Открыть API → Добавить область — установите access_as_user, администраторы и пользователи могут давать согласие, включено.

  4. Сертификаты и секреты → Новый секрет клиентаclaude-connector, 24 месяца. Скопируйте значение сразу.

  5. Аутентификация → Добавить платформу → Веб — URI перенаправления https://claude.ai/api/mcp/auth_callback и https://claude.com/api/mcp/auth_callback.

  6. Манифест — установите requestedAccessTokenVersion в 2 (предотвращает 401 из-за несоответствия эмитента).

  7. Корпоративные приложения → UniFi MCP → Свойства — Требуется назначение = Да.

  8. Корпоративные приложения → Пользователи и группы — добавьте группу Unifi-MCP-Users. Членство в группе = кто может использовать коннектор.

Развёртывание

См. PORTAINER_DEPLOY.md (стек Portainer Git + повторное развёртывание через webhook) и deploy/nginx-unifi-mcp.conf (TLS + список разрешённых IP-адресов Anthropic).

Регистрация коннектора в claude.ai

Настройки → Коннекторы → Добавить пользовательский коннектор:

Поле

Значение

URL

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

Идентификатор клиента

идентификатор клиента приложения Entra

Секрет клиента

секрет клиента Entra

URL авторизации

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

URL токена

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

Области

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

Приёмочные тесты

# 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