# UniFi Access MCP

MCP-сервер открывает ИИ-агенту двери UniFi Access, пропуска, политики доступа и события. Чтение — по умолчанию, изменения — только после подтверждения.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 946
- Автор: sirkirby
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/sirkirby/unifi-mcp/tree/HEAD/apps/access
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/unifi-access-mcp

## Что делает

Сервер отдаёт агенту инструменты для работы с контроллером UniFi Access: список дверей и устройств, учётные данные, политики доступа, гостевые пропуска и журнал событий. Запросы на чтение выполняются сразу, а любые изменения проходят через предварительный просмотр с подтверждением — случайно открыть дверь или выдать пропуск не выйдет.

Авторизация двухканальная. Ключ API работает на отдельном порту Access (по умолчанию 12445) и годится для чтения и перечисления устройств. Блокировка и разблокировка дверей, управление учётными данными, политиками, посетителями и событиями требуют локальной сессии через `/api/auth/login` на порту 443. Достаточно настроить хотя бы один путь, но без локальной сессии большинство изменяющих инструментов не заработает.

В Claude плагин ставит сам сервер, скилл для поиска инструментов и команду настройки. Учётные данные передаются как файл или команда-провайдер, а не вводятся в чат; пароль или ключ, сохранённый как опция, уходит в системный кэш ключей. Настройки применяются во всех проектах, поэтому после установки нужна новая сессия Claude. Без заданного хоста контроллера сервер всё равно стартует в режиме настройки: подсказывает клиенту, что заполнить, и держит только инструмент `access_setup_status`.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `UNIFI_HOST`, `UNIFI_USERNAME`, `UNIFI_PASSWORD`, `UNIFI_API_KEY`, `UNIFI_PORT`, `UNIFI_VERIFY_SSL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env UNIFI_HOST=<UNIFI_HOST> --env UNIFI_USERNAME=<UNIFI_USERNAME> --env UNIFI_PASSWORD=<UNIFI_PASSWORD> --env UNIFI_API_KEY=<UNIFI_API_KEY> --env UNIFI_PORT=<UNIFI_PORT> --transport stdio access -- uvx unifi-access-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from unifi-access-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add access --env UNIFI_HOST=<UNIFI_HOST> --env UNIFI_USERNAME=<UNIFI_USERNAME> --env UNIFI_PASSWORD=<UNIFI_PASSWORD> --env UNIFI_API_KEY=<UNIFI_API_KEY> --env UNIFI_PORT=<UNIFI_PORT> -- uvx unifi-access-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from unifi-access-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "access": {
            "command": "uvx",
            "args": [
                "unifi-access-mcp"
            ],
            "env": {
                "UNIFI_HOST": "<UNIFI_HOST>",
                "UNIFI_USERNAME": "<UNIFI_USERNAME>",
                "UNIFI_PASSWORD": "<UNIFI_PASSWORD>",
                "UNIFI_API_KEY": "<UNIFI_API_KEY>",
                "UNIFI_PORT": "<UNIFI_PORT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from unifi-access-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "access": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "unifi-access-mcp"
            ],
            "env": {
                "UNIFI_HOST": "<UNIFI_HOST>",
                "UNIFI_USERNAME": "<UNIFI_USERNAME>",
                "UNIFI_PASSWORD": "<UNIFI_PASSWORD>",
                "UNIFI_API_KEY": "<UNIFI_API_KEY>",
                "UNIFI_PORT": "<UNIFI_PORT>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from unifi-access-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e UNIFI_HOST=<UNIFI_HOST> -e UNIFI_USERNAME=<UNIFI_USERNAME> -e UNIFI_PASSWORD=<UNIFI_PASSWORD> -e UNIFI_API_KEY=<UNIFI_API_KEY> -e UNIFI_PORT=<UNIFI_PORT> access uvx unifi-access-mcp
```
Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from unifi-access-mcp <команда>

## Когда брать
- посмотреть, кто и когда проходил через двери за день
- найти учётные данные, истекающие в ближайший месяц
- разобрать неудачные попытки приложить пропуск у серверной
- выпустить гостевой пропуск на вход с ограничением по времени
- проверить, какие двери открываются вне рабочих часов

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
