This Home Assistant add-on exposes an MCP (Model Context Protocol) server. In practice: you connect Claude, Gemini or any other MCP client to your instance, and you talk to your home.
"Which lights were left on?", "Why didn't the heating automation trigger last night?", "Plot my energy usage for the week."
Documentation: devitek.github.io/mcp-ha (English and French)
| Domain | Tools |
|---|---|
| Entities, areas, devices | fuzzy search, paginated lists, full details |
| Services | catalog per domain, search, guarded call (opt-in) |
| Automations | list, state, last trigger, full configuration, execution traces, guarded creation (opt-in) |
| Diagnostics | health report, execution traces, causality chains (why did this fire?) |
| Scripts | list, running state |
| History | state changes, long-term statistics, logbook |
| Energy | dashboard-backed totals and period comparisons |
| Presence | who is where, zone timeline (zones only, never coordinates) |
| Helpers | create and delete input_*, counters, timers (opt-in) |
| Notifications | send to phones and notify targets (opt-in, rate capped) |
| Announcements | speak on satellites and media players (opt-in, rate capped) |
| Scenes | snapshot the current mood as a scene (opt-in, volatile) |
| Weather | current conditions and forecasts (hourly, daily) |
| Calendar and to-do | events over a window, list items, guarded item management (opt-in) |
| Cameras | still snapshots as images (opt-in) |
| Add-ons | list and details (read) |
| System | Jinja template rendering, HA config, error log |
| Dashboards | list views, guarded card insertion (opt-in) |
45 tools (27 read, 18 guarded write), designed to save the LLM context window: compact, paginated and capped responses, with notes that steer the assistant towards more precise queries.
It exists and works, but it goes through the Assist API: only entities exposed to Assist, no history, no registries, no add-ons, no automation configs. This add-on gives direct, granular access. Both can coexist.
Requirements: Home Assistant OS or Supervised (the add-on needs the Supervisor).
-
Add this repository to your add-on repositories:
Or manually: Settings, Add-ons, Add-on store, three-dot menu, Repositories, then paste
https://github.com/Devitek/mcp-ha. -
Install "MCP Home Assistant" and start it.
-
Open the add-on Configuration tab: an API token was generated and saved there on first start (the log only ever shows a masked prefix).
Claude Code:
claude mcp add --transport http home-assistant \
http://HA_IP:9583/mcp \
--header "Authorization: Bearer YOUR_TOKEN"Claude Desktop and Gemini CLI: see the clients guide on the documentation site.
- Read only by default. The service-call tool does not even exist for the client unless you enable
allow_write. - Defense in depth when writes are enabled: denylist of dangerous services (HA shutdown, shell_command...), glob allow/deny lists for entities,
dry_runmode, JSON audit trail of every attempt in the log. - LAN only. No TLS, no OAuth: do not expose port 9583 to the internet.
The full threat model is in SECURITY.md.
- Documentation site: installation, configuration, clients, tool reference, architecture (English and French)
- LLM-friendly docs following the llms.txt convention: llms.txt (index) and llms-full.txt (everything in one file), also indexed on Context7
- Add-on documentation: the page shown in the HA interface
- Contributing guide: dev setup, conventions, releases
- Repository issues: the project knowledge base, every design decision and pitfall is tracked there with the
décisionandécueillabels (in French)