UniFi MCP Server
UniFi MCP Server
mcp-name: io.github.mikeholownych/unifi-mcp
MCP-сервер (Model Context Protocol), который предоставляет ИИ-ассистентам, таким как Claude, доступ к возможностям управления и анализа инфраструктуры UniFi Network и Protect.
Благодарности: Этот проект начинался как форк gbassaragh/Unifi-mcp и с тех пор превратился в полностью независимый проект. Спасибо @gbassaragh за отличную отправную точку.
Улучшения относительно исходного проекта
Исправлена маршрутизация аутентификации локальной сессии — в
UNIFI_MODE=localзапросы теперь корректно используют традиционный API контроллера (/proxy/network) с сессионной аутентификацией через cookie + CSRF. Исходный проект всегда направлял запросы через Integration API независимо от режима.Разрешение базового URL с учётом режима —
api_base_urlтеперь учитывает настроенный режим аутентификации, а не безусловно возвращает конечную точку Integration API.Расширенный набор тестов — 57 проходящих тестов, покрывающих конфигурацию, поведение сетевого клиента, регистрацию инструментов сервера и интеграции Protect.
Related MCP server: UniFi MCP Server
Возможности
UniFi Network
Управление устройствами: просмотр, перезагрузка, поиск и обновление устройств UniFi (точки доступа, коммутаторы, маршрутизаторы)
Управление клиентами: мониторинг подключённых клиентов, блокировка/разблокировка, просмотр статистики трафика
Управление сайтами: просмотр состояния сайта, сетевых конфигураций, VLAN и настроек Wi-Fi
Статистика и мониторинг: события, тревоги, тесты скорости и статистика DPI
Аналитика на базе ИИ: анализ сети, рекомендации по оптимизации и устранение неполадок
UniFi Protect
Управление камерами: список камер, просмотр статуса, получение живых снимков
Мониторинг системы: статус NVR, сводка по состоянию камер
Аксессуары: управление освещением, датчиками, звонками и устройствами просмотра
Liveviews: доступ к настроенным макетам просмотра камер
Поддержка нескольких устройств
Настройка нескольких устройств UniFi (шлюзы, NVR и т. д.)
Выбор конкретных устройств по имени — все инструменты сети и Protect принимают необязательный параметр
deviceИндивидуальные API-ключи: каждое настроенное устройство аутентифицируется собственным ключом
Смешение сервисов Network и Protect на разных устройствах
Режимы аутентификации
Режим | Аутентификация | Назначение |
| Ключ Integration API | Рекомендуемый вариант по умолчанию; широкий доступ на чтение |
| Сессия по имени пользователя/паролю | Полный доступ к функциям: правила брандмауэра, конфигурации WLAN, настройки сайта, события, тревоги, DPI |
| Ключ api.ui.com | Удалённые/облачные контроллеры |
При использовании API-ключей (Integration API) часть функций контроллера доступна только через устаревшую сессионную аутентификацию (UNIFI_MODE=local): сетевые события, тревоги, статистика DPI, тесты скорости, конфигурации WLAN, правила брандмауэра, профили портов и таблицы маршрутизации. Инструменты для этих функций возвращают понятную ошибку с объяснением, как их включить, а не завершаются молча. Инструменты аналитики корректно деградируют и сообщают об ограничениях данных.
Примечание о локальных учётных записях: администраторы SSO/учётных записей Ubiquiti, защищённые MFA, не могут завершить вход по сессии. Создайте локального администратора на своей консоли (Restrict to Local Access Only) для
UNIFI_MODE=local.
Навыки агента
Встроенные навыки (в skills/) обучают агентов проверенным рабочим процессам для этого сервера, включая характерные для контроллера подводные камни (удалённые конечные точки Network 10, правила пар зон, переход WPA3).
Полная документация: руководство по использованию, ожидаемые результаты, устранение неполадок и запрос новых функций — см. SKILLS.md.
Краткий справочник
Навык | Тип | Назначение |
| read-only | Полная проверка сайта: устройства, клиенты, состояние Wi-Fi, брандмауэр, структурированный отчёт |
| read-only | Диагностика проблемного устройства: RF-сигнал, роуминг, блокировки, IP-уровень |
| write-gated | План каналов, ширины каналов, переходный режим WPA3, band steering — требуется подтверждение |
| write-gated | Выдать устройству зарезервированный IP и доступ к межсетевому экрану в рамках зоны |
| read-only triage | «Интернет не работает!» — диагностика сбоя простым языком, скрипт эскалации к провайдеру |
| read-only | «Кто в моём Wi-Fi?» — понятный список устройств, проверка на посторонних с учётом рандомизированных MAC-адресов |
| write-gated | Подключение любого нового устройства к сети: сложности сопряжения (2.4GHz/WPA3), именование, резервирование IP |
| read-only | «Сайт не открывается, но ping работает» — разделение проблем разрешения имён и связности, паттерны принудительного внутреннего DNS |
| read-only+ | AirPrint/Cast не работает между VLAN — отражение mDNS, предостережения по IGMP/IPTV |
| write-gated | Публикация self-hosted сервиса, включая hairpin NAT, определение CGNAT, сопряжение с зональными политиками |
| write-gated | Настройка WireGuard/Teleport + лестница поиска неисправностей (handshake/MTU/зональные политики) |
| write-gated | Поэтапные обновления прошивки: снапшот, canary, проверка, лестница для зависших устройств |
| read-only | Медленный Wi-Fi в дальней комнате: диагностика беспроводного аплинка/хопов, рекомендации по проводному backhaul |
| read-only+ | Оповещения об угрозах: ложные срабатывания и реальные, подавление, стоимость пропускной способности IPS |
| write-gated | Что содержат резервные копии, эмпирические правила миграции, снапшоты перед миграцией |
| doc-writer | Постоянная размеченная топология (зоны/VLAN/зависимости), повышающая точность всех остальных навыков |
Как работают навыки
Просто опишите свою проблему естественным языком — агент подберёт подходящий навык и будет следовать его рабочему процессу:
«У меня не работает интернет» →
unifi-internet-downдиагностирует WAN, модем и шлюз«Кто в моём Wi-Fi?» →
unifi-whos-homeпоказывает список устройств и помечает неизвестные«Проверь мою сеть» →
unifi-network-auditформирует полный отчёт о состоянии«Настрой мой новый телевизор» →
unifi-setup-new-deviceпомогает с подключением к Wi-Fi
Write-gated навыки (отмечены выше) вносят изменения в вашу сеть — перед применением изменений они всегда запрашивают подтверждение.
Навыки для нетехнических пользователей избегают жаргона, объясняют каждый технический термин и требуют подтверждения перед потенциально опасными действиями.
Установка (для проекта): скопируйте в .claude/skills/:
git clone https://github.com/mikeholownych/unifi-mcp.git
mkdir -p .claude/skills && cp -r unifi-mcp/skills/* .claude/skills/Полное руководство по использованию, ожидаемые результаты, устранение неполадок и запрос новых функций — см. SKILLS.md.
Навыки ссылаются на инструменты MCP по их обычным именам (get_firewall_policies, …); ваш MCP-клиент добавляет к ним префикс автоматически.
Поддерживаемое оборудование
UniFi Dream Machine (UDM, UDM-Pro, UDM-SE)
UniFi Cloud Gateway (UCG-Ultra, UCG-Fiber)
UniFi Network Video Recorder (UNVR, UNVR-Pro)
UniFi Network Application (self-hosted)
Классический Cloud Key (Gen1, Gen2, Gen2+)
Установка
Использование uv (рекомендуется)
# Clone the repository
git clone https://github.com/mikeholownych/unifi-mcp.git
cd unifi-mcp
# Install dependencies
uv syncИспользование pip
pip install -e .Конфигурация
Создайте файл .env в корне проекта (или задайте переменные окружения). Все параметры перечислены в .env.example.
Конфигурация нескольких устройств (рекомендуется)
Настройте несколько устройств UniFi с разными сервисами:
UNIFI_DEVICES='[
{
"name": "main-gateway",
"url": "https://192.168.1.1",
"api_key": "your-gateway-api-key",
"services": ["network"],
"site": "default"
},
{
"name": "nvr",
"url": "https://192.168.1.2",
"api_key": "your-nvr-api-key",
"services": ["network", "protect"],
"site": "default"
}
]'
UNIFI_VERIFY_SSL=falseПоля конфигурации устройства:
Поле | Описание | По умолчанию |
| Понятное имя для обращения к устройству | (обязательно) |
| Базовый URL устройства UniFi | (обязательно) |
| API-ключ из UniFi OS Control Plane | (обязательно) |
| Массив: |
|
| Имя сайта для сетевых операций |
|
| Проверять SSL-сертификаты |
|
| Имя пользователя для событий Protect (необязательно) |
|
| Пароль для событий Protect (необязательно) |
|
Примечание: поля username и password требуются только для инструментов событий Protect (события движения, умные детекции). Базовые операции с камерами работают только с API-ключом.
Чтобы создать API-ключ:
Войдите в ваш контроллер UniFi
Перейдите в Настройки → Control Plane → API
Создайте новый API-ключ с необходимыми правами
Устаревшая конфигурация одного устройства
Для обратной совместимости по-прежнему поддерживается конфигурация одного устройства:
UNIFI_MODE=local_api_key
UNIFI_CONTROLLER_URL=https://192.168.1.1
UNIFI_CLOUD_API_KEY=your-api-key
UNIFI_SITE=default
UNIFI_VERIFY_SSL=falseЛокальная сессионная аутентификация (традиционная)
Для доступа ко всем функциям с аутентификацией по имени пользователя и паролю:
UNIFI_MODE=local
UNIFI_CONTROLLER_URL=https://192.168.1.1
UNIFI_USERNAME=local-admin
UNIFI_PASSWORD=your-password
UNIFI_SITE=default
UNIFI_IS_UDM=true
UNIFI_VERIFY_SSL=falseCloud API (api.ui.com)
Для доступа к Ubiquiti Cloud API:
UNIFI_MODE=cloud
UNIFI_CLOUD_API_KEY=your-api-keyПолучите API-ключ на unifi.ui.com → в разделе API.
Использование с Claude Desktop
Добавьте в конфигурацию Claude Desktop (~/.config/claude/claude_desktop_config.json в Linux или ~/Library/Application Support/Claude/claude_desktop_config.json в macOS):
{
"mcpServers": {
"unifi": {
"command": "uv",
"args": ["run", "--directory", "/path/to/unifi-mcp", "python", "-m", "unifi_mcp.server"],
"env": {
"UNIFI_DEVICES": "[{\"name\":\"gateway\",\"url\":\"https://192.168.1.1\",\"api_key\":\"your-key\",\"services\":[\"network\"]},{\"name\":\"nvr\",\"url\":\"https://192.168.1.2\",\"api_key\":\"your-key\",\"services\":[\"network\",\"protect\"]}]",
"UNIFI_VERIFY_SSL": "false"
}
}
}
}Использование с Claude Code / opencode
# Add the MCP server
claude mcp add unifi -- uv run --directory /path/to/unifi-mcp python -m unifi_mcp.serverИли в opencode.json:
{
"mcp": {
"unifi": {
"type": "local",
"command": ["/path/to/unifi-mcp/.venv/bin/python", "-m", "unifi_mcp.server"],
"enabled": true
}
}
}Доступные инструменты
Управление несколькими устройствами
list_unifi_devices- список всех настроенных устройств UniFi и их сервисов
Управление устройствами
list_devices- список всех сетевых устройств UniFiget_device_details- получение подробной информации об устройствеrestart_device- перезагрузка устройстваlocate_device- мигание светодиодом для поиска устройстваget_device_stats- получение статистики производительностиupgrade_device- обновление прошивкиprovision_device- принудительное повторное применение конфигурации
Управление клиентами
list_clients- список подключённых клиентовlist_all_clients- список всех известных клиентов (включая офлайн)get_client_details- получение сведений о клиентеblock_client/unblock_client- блокировка/разблокировка клиентовkick_client- отключение клиентаforget_client- удаление из известных клиентовget_client_traffic- получение статистики трафикаreserve_client_ip- резервирование IP через DHCP-резервацию
Управление сайтами
list_sites- список всех сайтовget_site_health- получение состояния сайтаget_site_settings- получение настроек сайтаget_sysinfo- получение системной информацииget_networks- получение конфигураций сетей/VLANget_wlans- получение конфигураций беспроводных сетейget_port_profiles- получение профилей портов коммутатораget_firewall_rules- получение устаревших правил брандмауэраget_firewall_policies- получение зональных политик брандмауэра (UniFi Network 9+)get_routing_table- получение таблицы маршрутизацииget_port_forwards- получение правил проброса портовcreate_port_forward/delete_port_forward- управление пробросом портов
Управление конфигурацией (запись)
create_wlan/update_wlan/delete_wlan- Управление беспроводными сетямиcreate_firewall_policy/set_firewall_policy_enabled/delete_firewall_policy- Управление зональными политиками межсетевого экранаexport_camera_clip- Экспорт записи с камеры в формате MP4 (Protect)get_all_sites_health- Обзор состояния всех сайтов
Инструменты, которые удаляют данные или вызывают нарушения в работе, требуют подтверждения или помечаются как деструктивные через аннотации MCP.
Статистика и мониторинг
get_network_health- Общее состояние сетиget_recent_events- Последние событияget_alarms- Активные тревогиarchive_all_alarms- Архивация всех тревогrun_speed_test- Запуск теста скоростиget_speed_test_status- Получение результатов теста скоростиget_dpi_stats- Статистика DPIget_traffic_summary- Сводка по трафику
Инструменты ИИ-аналитики
analyze_network_issues- Комплексный анализ проблемget_optimization_recommendations- Рекомендации по конфигурацииget_client_experience_report- Метрики качества обслуживания клиентовget_device_health_summary- Обзор состояния устройствget_traffic_analysis- Анализ структуры трафикаget_all_sites_health- Обзор состояния всех сайтов
Оркестрация нескольких сайтов
get_global_inventory- Единая инвентаризация устройств по всем контроллерамget_global_health- Сводный отчёт о состоянии по всем контроллерамget_global_client_summary- Количество клиентов, самые активные по трафику, заблокированные клиенты по всем контроллерамtroubleshoot_client- Углублённая диагностика клиента
UniFi Protect
list_cameras- Список всех камер со статусом подключенияget_camera_details- Подробная информация о камереget_camera_snapshot- Живой снимок (base64 JPEG)get_protect_system_info- Информация о системе NVRget_camera_health_summary- Обзор состояния камер с проблемамиget_liveviews- Настроенные раскладки liveviewget_protect_accessories- Список светильников, датчиков, звонков и просмотрщиков
События UniFi Protect (требуются имя пользователя и пароль)
get_motion_events- Последние события движенияget_smart_detections- События умного обнаружения (человек, транспорт, животное, посылка)get_protect_event_summary- Сводка всех событий по типамget_recent_protect_activity- Быстрый обзор последней активности
Примеры диалогов
После подключения MCP-сервера вы можете спросить Claude:
Управление сетью
«Перечисли все мои устройства UniFi»
«Каково текущее состояние сети?»
«Проанализируй мою сеть на наличие проблем»
«Какие рекомендации по оптимизации у тебя есть?»
«Покажи метрики качества обслуживания клиентов»
«Проведи диагностику клиента с MAC-адресом aa:bb:cc:dd:ee:ff»
«Какие клиенты используют больше всего пропускной способности?»
«Есть ли устройства, которым нужны обновления прошивки?»
«Покажи последние события сети»
«Запусти тест скорости»
UniFi Protect
«Перечисли все мои камеры»
«Покажи сводку о состоянии камер»
«Получи снимок с камеры Front Door»
«Каков статус моего NVR?»
«Есть ли отключённые камеры?»
«Покажи аксессуары Protect»
События Protect (требуются учётные данные)
«Покажи последние события движения»
«Какие умные обнаружения произошли за последние 24 часа?»
«Были ли сегодня обнаружения людей?»
«Дай сводку событий за прошедшую неделю»
«Покажи последнюю активность камеры Front Door»
Несколько устройств
«Перечисли мои настроенные устройства UniFi»
«Покажи камеры на моём NVR»
«Получи состояние сети от основного шлюза»
Разработка
Запуск тестов
uv run pytestФорматирование кода
uv run ruff check .
uv run ruff format .Docker
docker build -t unifi-mcp .
docker run -i --rm --env-file .env unifi-mcpЗапрос нового функционала
Новые навыки: Откройте issue с префиксом
[Skill]— опишите проблему, рабочий процесс и ожидаемый результатИзменение навыков: Откройте issue с префиксом
[Skill: skill-name]— чего не хватает или что не работаетНовые инструменты: Откройте issue с префиксом
[Tool]— укажите конечную точку API UniFi и ожидаемый формат
Подробные рекомендации по участию в разработке см. в SKILLS.md.
Историю релизов см. в CHANGELOG.md, а информацию о том, как внести вклад, — в CONTRIBUTING.md.
Примечания по безопасности
Учётные данные передаются через переменные окружения — никогда не коммитьте
.envПроверка SSL отключена по умолчанию для самоподписанных сертификатов
Сервер предоставляет только операции чтения и безопасные команды управления
Деструктивные операции (удаление сайта, сброс к заводским настройкам) недоступны
API-ключи следует хранить в безопасности и периодически ротировать
Лицензия
MIT License
Участие в разработке
Вклад приветствуется! Пожалуйста, откройте issue или отправьте pull request.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.41MIT
- FlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive management of UniFi Network infrastructure through 24 tools for monitoring and controlling devices, clients, wireless networks, security, and guest access. Supports network administration tasks like device restarts, client blocking, WLAN configuration, and backup creation.36MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and monitor UniFi network infrastructure through natural language, providing 46 management tools across device, client, WiFi, network, firewall, port forwarding, monitoring, and site management.1MIT
Related MCP Connectors
Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mikeholownych/unifi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server