Labsco
MCP SERVER

Ha MCP

by zorak1103

Full Home Assistant control — automations, helpers, scripts, dashboards — from 41 consolidated tools.

IoT, Smart Home & Embedded Hardware
Summary
The access control is finer than an on/off switch.

`read_only: true` in the config makes the whole thing observational, but the more useful knob is the tool filter: a blacklist takes glob patterns down to the action level, so `manage_*:delete` blocks deletion across every management tool while leaving creation and editing intact. That is the setting worth reaching for — full lifecycle control over automations is powerful precisely because it can also remove them. The consolidated tool count is a deliberate trade: fewer, broader tools to reduce an LLM's selection errors, at the cost of each one taking a mode argument.

What it is

A Home Assistant server written in Go that goes well past reading entity states: it creates, edits and deletes automations, scripts, scenes and helpers, queries the registries, validates configuration and reads the logbook. It uses WebSocket for most operations and the REST API for automation, script and scene changes.

What you get
  • Entities — `query_entities` covers history, statistics and health, with `get_state` and `analyze_entity` alongside
  • Registries — `get_registry` plus `manage_area`, `manage_label`, `manage_floor`, `manage_zone`, `manage_person`, `manage_tag`, `manage_entity` and `manage_device`
  • `manage_automation` is one tool for the whole lifecycle — create, read, update, delete, toggle, coverage, and both JSON Patch and semantic patch
  • `manage_helper` covers 26 helper types, with `helper_action` to drive them; `manage_script` and `manage_scene` do CRUD plus execute and activate
  • Analysis — `get_entity_dependencies`, `analyze_target` and `find_references` answer what depends on what before you change it
  • Services — `call_service` and `list_services`; history — `get_logbook` with entry correlation
  • Dashboards and media — `manage_dashboard`, `browse_media`, `manage_camera`, `sign_media_path`
  • System — `get_system_info`, `validate_config`, `manage_update`, `manage_blueprint`, `manage_system_log`, `manage_hacs`
  • Seven guidance topics are readable as resources under `skill://ha-mcp/<slug>` — format selection, automation patterns, template resilience, helper selection, dashboard safety, entity renaming and debugging workflow
  • After a create, update or delete, the server polls state to confirm the change actually landed
Requirements

A Home Assistant instance and a long-lived access token from your profile page. Distribution is a single binary from the releases page, with RPM and DEB packages, a Docker image (`docker pull zorak1103/ha-mcp:latest`, port 8080, `HA_URL` set to your instance), or a source build needing Go 1.26 or later. Start it with `--ha-url` and `--ha-token`, or run `ha-mcp init` to write `config.yaml` and `.env` first. Reconnection is automatic with exponential backoff.

Setup effort

One command plus a key — docker pull zorak1103/ha-mcp:latest, then supply credentials