automation-access-broker
Provides tiered, human-gated access to Home Assistant entities, including free reads, reversible comfort controls, gated operations for locks, alarms, covers, and climate setpoints, and admin functions that are never delegated.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@automation-access-brokerturn on the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
automation-access-broker
Automation MCP access broker: tiered, human-gated access to Home Assistant entities, on the access-broker suite architecture (see AUTHORS.md for provenance). Formerly smarthome-access-broker; the product renamed to automation-access-broker (2026-09-21 decision: the domain's invariant is an access that ends in a physical change, automated for the user).
What it is
One MCP server brokering an AI agent's access to a Home Assistant instance: the agent sees the house freely, adjusts reversible comfort freely, and touches locks, alarm panels, covers, and climate setpoints only through per-operation human approvals (Matrix reactions), with admin functions gated and never delegated. Built on access-broker-core (grant lifecycle, hash-chained write-before-operate audit, tier mechanics, approval-gateway core); this broker contributes the smart home wall (entity/class scoping), the Home Assistant backend, and the physical-domain tier table.
Related MCP server: Phoenix MCP
The tier model for physics
T0 free reads: entity state, entity list, subscriptions. Occupancy-derived reads (person, device_tracker, zones, motion/occupancy/presence sensors) are audit-logged even though free.
T1 free, audit-logged (reversible comfort): lights, fans, switches, media player, input helpers.
T2 gated, per operation (no batches): lock/unlock/open, alarm arming/disarming, cover open/close/position/tilt, climate set-temperature/preset. Physical actuators have no version history; per-operation approval is the compensating-control argument applied honestly. A configurable climate band narrows set-temperature calls: in-band calls ride an approved band grant (a grant carrying the climate_band marker, requested automatically for in-band calls); outside the band is always gated and rides only an explicit per-operation grant.
Fan-out: scenes and scripts are classified by what they expand to, not their names. An unresolvable expansion fails closed to gated.
T3 gated, never delegated: automation/script reload, HA restart/stop, zone/person/config administration.
What is NOT here (v1)
Hubitat (Maker API tokens are all-or-nothing: a permanent custody caveat, designed-unbuilt), Matter native adapter, raw MQTT (untyped pub/sub has no scope object to grant). File storage is the data broker's domain; PIM is the groupware broker's; chat is the communications broker's.
Status
Production alpha (owner-verified live 2026-09-22 through the native MCP client: a comfort-tier switch op executed and audited in the free lane, and the full gated loop on a garage cover — pending request, human approval, execute, state read back through the broker, per- operation grant granularity confirmed). 350 tests across fourteen files. See CHANGELOG.md and DEPLOYMENT.md (including the user-space systemd supervision section).
Production-alpha notes
Bearer transport contract. Transport http requires
auth.bearer.token_env(refuse-to-start without it): every request presentsAuthorization: Bearer <token>, compared constant-time through the core'scheck_static_credentialbefore any MCP parsing.Lifecycle notices. The approval gateway announces
gateway started/gateway stoppingin the approval room; a delivery failure is logged and swallowed (a notice must never kill the gateway).Service-name shape.
call_entity_servicerequires the fulldomain.serviceform (switch.turn_off); a bare service name is refused with a named error. Cosmetic item on the queue: accept the bare form when the entity's domain disambiguates it.T2 grant semantics (open, owner decision pending, suite-wide). An approved T2 grant carries a time window; no consume-on-use path exists in v1. Options on record: execute-time self-revocation after a gated op fires, or a docstring correction to match the window. Per-operation grant granularity is confirmed live: an open grant did not cover close.
Shared-room routing. When one approval room serves several broker gateways (Option B), every typed command carries the broker's tag (
automation approve 3) and every outbound message is stamped[automation]; unprefixed commands are refused with a hint, never guessed at.
License
GPL-3.0-or-later. See AUTHORS.md for provenance.
This server cannot be deployed
Maintenance
Related MCP Connectors
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
Supervised API-write gateway for AI agents with policy, human approval and execution receipts.
Preventive human-approval write-gate for AI agents: writes commit only after a human approves.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Home Assistant via natural language, including device control, automation management, and system monitoring.MIT
- AlicenseNot gradedqualityAmaintenanceGives AI agents scoped, least-privilege access to Home Assistant, with per-token permissions, auditing, and 131 tools for managing smart home devices.1MIT
- AlicenseNot gradedqualityBmaintenanceCentral MCP gateway for smart home automation, enabling agents to safely control Home Assistant and Node-RED with identity-based access, human confirmation for writes, and a WebUI for governance.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI clients to safely control Home Assistant devices and query MQTT sensors through natural language, using allowlist-guarded actions and pre-defined automations.MIT