Ambient Home Assistant MCP
OfficialAmbient Home Assistant MCP
Ambient Home Assistant MCP — это безопасный семантический мост, который предоставляет ChatGPT и другим MCP-клиентам специализированный доступ к Home Assistant. Он является серверной основой для будущего пользовательского приложения Ambient Home Assistant.
Статус фазы 2: локальный/частный и только для чтения. Этот выпуск добавляет семантическое обнаружение сущностей, текущее состояние, зоны, этажи и сводки по доменам. Он не может управлять устройствами или изменять Home Assistant.
Что это такое — и чем оно не является
Мост — это уровень абстракции и безопасности. Со временем он сможет выбирать между REST, WebSocket и нативными интерфейсами MCP/Assist Home Assistant, предоставляя модели небольшие семантические инструменты.
Он не является:
заменой Home Assistant;
неограниченным администраторским API Home Assistant;
универсальной обёрткой API, доступной LLM; или
обратным прокси для конечной точки
/api/mcpHome Assistant.
Related MCP server: ha-ai-learner
Архитектура
flowchart TD
C[ChatGPT or MCP client] -->|MCP| A[Ambient Home Assistant MCP]
A --> T[Semantic tools]
A --> P[Policy and security]
A --> N[Normalized data and diagnostics]
T --> H[Home Assistant client facade]
P --> H
N --> H
H --> R[REST state API]
H --> W[WebSocket registries]
H -. selective future use .-> M[HA MCP or Assist API]Инструменты MCP никогда не выполняют прямых HTTP-запросов. Они зависят от HomeAssistantClient, который отвечает за выбор интерфейса и немедленно нормализует ответы вышестоящих систем. См. запись о решении по архитектуре.
Возможности
Surface | Purpose |
| Сообщает о доступности и состоянии аутентификации, не раскрывая учётные данные. |
| Возвращает только версию, часовой пояс и метаданные системы единиц измерения. |
| Получает одну текущую сущность по точному идентификатору с разрешённым местоположением и безопасными атрибутами. |
| Ищет текущие сущности по имени/ID и комбинируемым фильтрам по домену, зоне, этажу, состоянию и доступности. |
| Перечисляет компактные зоны или получает одну зону с количеством доменов и необязательным ограниченным списком сущностей. |
| Перечисляет этажи или получает один этаж с агрегатами по зонам и доменам. |
| Суммирует наблюдаемые состояния и доступность для любого домена сущностей. |
| Сообщает о работоспособности приложения и отдельно о готовности Home Assistant. |
Никакие вызовы служб, изменения состояния или административные конечные точки не реализованы.
Модель безопасности
Токены Home Assistant поступают только из конфигурации времени выполнения и используют секретные типы Pydantic.
Журналы структурированы и скрывают токены носителя и общие поля учётных данных.
Необработанные данные
/api/configсокращаются до модели из белого списка, прежде чем попасть в результат инструмента.Подробные атрибуты сущностей используют явный белый список и исключают URL-адреса, источники камер, токены, учётные данные, координаты и метаданные, содержащие местоположение.
Текущие состояния никогда не кэшируются. Метаданные реестра используют один ограниченный кэш TTL на 60 секунд, чтобы избежать повторной аутентификации WebSocket и чтения реестра.
Белые списки Host и Origin транспорта MCP защищают от DNS-ребендинга.
Политический движок разрешает чтение и закрывается при сбое для каждого класса управления.
Контейнер работает от непривилегированного пользователя с файловой системой только для чтения в Compose.
Никогда не коммитьте .env, токены Home Assistant, учётные данные, частные URL-адреса или сертификаты. См. Безопасность перед любой работой по развёртыванию.
Быстрый старт
Требования: Python 3.12+ и uv.
cp .env.example .env
# Edit .env and provide HOME_ASSISTANT_URL and HOME_ASSISTANT_TOKEN.
uv sync --all-extras
uv run ambient-ha-mcpКонечная точка Streamable HTTP MCP: http://127.0.0.1:8000/mcp; состояние доступно по адресу http://127.0.0.1:8000/health.
Проверьте инструменты локально:
npx @modelcontextprotocol/inspector@latestЗатем подключите Inspector к http://127.0.0.1:8000/mcp.
Команды разработки
uv sync --all-extras # install
uv run ambient-ha-mcp # run locally
uv run pytest # unit tests; real HA tests skip by default
uv run ruff check . # lint
uv run ruff format --check . # formatting check
uv run mypy # type check
docker build -t ambient-ha-mcp .
docker compose up --buildПерегенерируйте блокировку зависимостей после намеренного изменения зависимостей:
uv lockDocker Compose
Скопируйте .env.example в .env, укажите два обязательных параметра Home Assistant и выполните docker compose up --build. Compose публикует только на loopback хоста.
Проверка работоспособности Docker проверяет работоспособность приложения. Временный сбой Home Assistant меняет /health на status: degraded, но оставляет HTTP-статус 200, чтобы оркестратор не перезапускал здоровый мост в цикле.
Документация
Лицензия
MIT. См. LICENSE.
This server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.66116MIT
- AlicenseNot gradedqualityBmaintenanceA self-learning discovery tool + MCP server that turns your Home Assistant into knowledge an AI assistant can actually use.MIT
- AlicenseNot gradedqualityAmaintenanceEnables secure, auditable access to Home Assistant through MCP, with a read-only observer profile and an operator profile for controlled mutations.MIT
- AlicenseNot gradedqualityBmaintenanceExposes a curated allowlist of Home Assistant entities to external clients over MCP with read-only list and get_state tools, using an isolated guest credential that cannot access other Home Assistant APIs.Apache 2.0
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Cross-vendor AI memory over MCP. One semantic store, readable and writeable from every MCP client.
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/ambient-home-systems/ambient-ha-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server