by voska (community) Claude Desktop, Claude Code, Home Assistant
MCP-сервер для управления умным домом через Home Assistant. Позволяет Claude читать состояния устройств, управлять автоматизациями и контролировать сущности голосом/текстом. Возможности: - Чтение состояний всех entity (лампы, датчики, замки) - Вызов сервисов HA: включение/выключение, установка яркости - Просмотр и управление автоматизациями - Поиск entity по имени или типу - Получение атрибутов устройств - Поддержка любой инсталляции HA с Long-Lived Access Token
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"hass": {
"command": "uvx",
"args": ["hass-mcp"],
"env": {
"HA_URL": "http://homeassistant.local:8123",
"HA_TOKEN": "your_long_lived_access_token"
}
}
}
}
# Claude Code (CLI):
claude mcp add hass --env HA_URL=http://homeassistant.local:8123 --env HA_TOKEN=your_long_lived_access_token -- uvx hass-mcp
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"hass": {
"type": "local",
"command": ["uvx", "hass-mcp"],
"environment": {
"HA_URL": "http://homeassistant.local:8123",
"HA_TOKEN": "your_long_lived_access_token"
}
}
}
}
Сервер протокола контекста модели (MCP) для интеграции Home Assistant с Claude и другими LLM.
Hass-MCP позволяет таким ИИ-ассистентам, как Claude, напрямую взаимодействовать с вашим экземпляром Home Assistant, давая им возможность:
bash
docker pull voska/hass-mcp:latest
a. Откройте Claude Desktop и перейдите в Настройки
b. Перейдите в раздел Разработчик > Редактировать конфигурацию
c. Добавьте следующую конфигурацию в ваш файл claude_desktop_config.json:
json
{
"mcpServers": {
"hass-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "http://homeassistant.local:8123",
"HA_TOKEN": "YOUR_LONG_LIVED_TOKEN"
}
}
}
}
d. Замените YOUR_LONG_LIVED_TOKEN на ваш реальный долгосрочный токен доступа Home Assistant
e. Обновите HA_URL:
http://host.docker.internal:8123 (Docker Desktop на Mac/Windows)f. Сохраните файл и перезапустите Claude Desktop
Примечание: Если вы запускаете Home Assistant в Docker на той же машине, вам, возможно, потребуется добавить
--network hostв аргументы Docker для доступа контейнера к Home Assistant. В качестве альтернативы используйте IP-адрес вашей машины вместоhost.docker.internal.
Установите uv в вашей системе.
Добавьте MCP-сервер в Claude Desktop:
a. Откройте Claude Desktop и перейдите в Настройки
b. Перейдите в раздел Разработчик > Редактировать конфигурацию
c. Добавьте следующую конфигурацию в ваш файл claude_desktop_config.json:
json
{
"mcpServers": {
"hass-mcp": {
"command": "uvx",
"args": ["hass-mcp"],
"env": {
"HA_URL": "http://homeassistant.local:8123",
"HA_TOKEN": "YOUR_LONG_LIVED_TOKEN"
}
}
}
}
d. Замените YOUR_LONG_LIVED_TOKEN на ваш реальный долгосрочный токен доступа Home Assistant
e. Обновите HA_URL:
http://host.docker.internal:8123 (Docker Desktop на Mac/Windows)f. Сохраните файл и перезапустите Claude Desktop
Hass-MCPcommanddocker run -i --rm -e HA_URL=http://homeassistant.local:8123 -e HA_TOKEN=YOUR_LONG_LIVED_TOKEN voska/hass-mcpYOUR_LONG_LIVED_TOKEN на ваш реальный токен Home AssistantДля использования с Claude Code CLI вы можете напрямую добавить MCP-сервер, используя команду mcp add:
С использованием Docker (рекомендуется):
claude mcp add hass-mcp -e HA_URL=http://homeassistant.local:8123 -e HA_TOKEN=YOUR_LONG_LIVED_TOKEN -- docker run -i --rm -e HA_URL -e HA_TOKEN voska/hass-mcp
Замените YOUR_LONG_LIVED_TOKEN на ваш реальный токен Home Assistant и обновите HA_URL для соответствия адресу вашего экземпляра Home Assistant.
Для развёртываний, которые не могут использовать stdio — запуск за MCP-шлюзом, размещение на Smithery, совместное использование одного сервера несколькими клиентами или подключение из сетевых инструментов вроде LibreChat или OpenWebUI — Hass-MCP поддерживает потоковый HTTP-транспорт MCP. Сервер работает в без сохранения состояния режиме (без Mcp-Session-Id, JSON-ответы), что подходит для горизонтально масштабируемых хостов.
[!CAUTION] Режим HTTP предоставляет полный контроль над Home Assistant через сеть. Любой, кто может достичь порта, может вызывать любой инструмент — выключать свет, разблокировать двери, запускать автоматизации, перезагружать HA. Спецификация MCP пока не включает встроенный уровень аутентификации в этом сервере. До его появления вы обязаны разместить его за одним из следующего:
- Обратным прокси (nginx, Caddy, Traefik) с проверкой basic-auth или bearer-токена
- VPN или сетью нулевого доверия (Tailscale, WireGuard, Cloudflare Access)
- Привязкой только к localhost (по умолчанию — изменяйте
--host, только если знаете, что делаете)Не подвергайте
:8000открытому интернету без аутентификации.
С использованием uvx:
HA_URL=http://homeassistant.local:8123 \
HA_TOKEN=YOUR_LONG_LIVED_TOKEN \
uvx hass-mcp --http --port 8000
По умолчанию сервер привязывается к 127.0.0.1. Перезаписывайте только с --host 0.0.0.0, когда вы также настроили аутентификацию перед ним.
docker run --rm -p 8000:8000 \
-e HA_URL=http://homeassistant.local:8123 \
-e HA_TOKEN=YOUR_LONG_LIVED_TOKEN \
voska/hass-mcp:latest --http --host 0.0.0.0 --port 8000
--host 0.0.0.0 необходим внутри Docker, чтобы порт был доступен через мост. Привяжите публикацию (-p) к 127.0.0.1:8000:8000, если хотите, чтобы он был доступен только с хоста, или поставьте обратный прокси перед ним.
Конечная точка MCP находится по адресу /mcp. Укажите ваш клиент на http://<host>:<port>/mcp.
Сервер учитывает переменную окружения PORT (соглашение Smithery) в дополнение к MCP_PORT. Развёртывание на Smithery требует режим --http и автоматически читает PORT.
Если ваш экземпляр Home Assistant предоставляет сертификат, подписанный вашим собственным CA (step-ca, smallstep, homelab OpenSSL), hass-mcp может проверять его без отключения TLS:
update-ca-certificates в Linux). hass-mcp автоматически подхватит его через truststore.SSL_CERT_FILE.docker run --rm \
-v /path/to/your-ca.crt:/etc/ssl/certs/your-ca.crt:ro \
-e SSL_CERT_FILE=/etc/ssl/certs/your-ca.crt \
-e HA_URL=https://homeassistant.example.internal:8123 \
-e HA_TOKEN=YOUR_LONG_LIVED_TOKEN \
voska/hass-mcp:latest
SSL_CERT_FILE всегда имеет приоритет над хранилищем ОС, когда задан. verify=False намеренно не поддерживается — используйте HA_URL=http://..., если вы действительно хотите незашифрованный локальный сетевой трафик.
Вот несколько примеров промптов, которые вы можете использовать с Claude после настройки Hass-MCP:
Hass-MCP предоставляет несколько инструментов для взаимодействия с Home Assistant:
get_version: Получить версию Home Assistantget_entity: Получить состояние конкретной сущности с опциональной фильтрацией полейentity_action: Выполнять действия с сущностями (включить, выключить, переключить)list_entities: Получить список сущностей с опциональной фильтрацией по домену и поискомsearch_entities_tool: Искать сущности, соответствующие запросуdomain_summary_tool: Получить сводку по сущностям доменаlist_automations: Получить список всех автоматизацийcall_service_tool: Вызвать любой сервис Home Assistantrestart_ha: Перезапустить Home Assistantget_history: Получить историю состояний сущности (за последние N часов)get_history_range: Получить историю изменений состояния сущности за
явно указанный диапазон дат/времени (start_time / end_time, ISO-8601)get_statistics: Получить долгосрочную агрегированную статистику (среднее / мин / макс
за интервал) для сущности за последние N часов — работает для данных старше
окна краткосрочного хранения рекордераget_statistics_range: То же самое, но за явный диапазон дат/времени —
полезно для запросов тенденций за месяц / годget_error_log: Получить журнал ошибок Home Assistant с опциональными
фильтрами по level / integration / search_term / lines, применяемыми
на стороне сервера, чтобы шумные журналы не переполняли контекст Claudeget_entities_by_area: Вывести сущности в определённой области / комнатеHass-MCP включает несколько подсказок для структурированных диалогов:
create_automation: Руководство по созданию автоматизаций Home Assistant в зависимости от типа триггераdebug_automation: Помощь в устранении проблем с неработающими автоматизациямиtroubleshoot_entity: Диагностика проблем с сущностямиroutine_optimizer: Анализ моделей использования и предложение оптимизированных routines на основе фактического поведенияautomation_health_check: Проверка всех автоматизаций, поиск конфликтов, дублирований или возможностей для улучшенийentity_naming_consistency: Аудит имён сущностей и предложение улучшений для стандартизацииdashboard_layout_generator: Создание оптимизированных панелей на основе предпочтений пользователя и моделей использованияHass-MCP предоставляет следующие конечные точки ресурсов:
hass://entities/{entity_id}: Получить состояние конкретной сущностиhass://entities/{entity_id}/detailed: Получить подробную информацию о сущности со всеми атрибутамиhass://entities: Вывести все сущности Home Assistant, сгруппированные по доменамhass://entities/domain/{domain}: Получить список сущностей для определённого доменаhass://search/{query}/{limit}: Искать сущности, соответствующие запросу, с пользовательским лимитом результатовuv run pytest tests/