Home Assistant MCP Server

Interact with Home Assistant to control smart home devices, query states, manage automations, and troubleshoot your smart home setup.

Local serverstdioPython

What is the Home Assistant MCP Server?

Home Assistant becomes available to MCP clients through the home assistant mcp server. Interact with Home Assistant to control smart home devices, query states, manage automations, and troubleshoot your smart home setup.

What Home Assistant does

A Model Context Protocol (MCP) server for Home Assistant integration with Claude and other LLMs.

Hass-MCP enables AI assistants like Claude to interact directly with your Home Assistant instance, allowing them to:

Key capabilities

  • Entity Management — Get states, control devices, and search for entities
  • Domain Summaries — Get high-level information about entity types
  • Automation Support — List and control automations
  • Guided Conversations — Use prompts for common tasks like creating automations
  • Smart Search — Find entities by name, type, or state
  • Token Efficiency — Lean JSON responses to minimize token usage

Requirements

  • Home Assistant instance with Long-Lived Access Token - One of the following: - Docker (recommended) - Python 3.13+ and uv

Practical notes

  • Written in Python.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
get_versionGet the Home Assistant version
get_entityGet the state of a specific entity with optional field filtering
entity_actionPerform actions on entities (turn on, off, toggle)
list_entitiesGet a list of entities with optional domain filtering and search
search_entities_toolSearch for entities matching a query
domain_summary_toolGet a summary of a domain's entities
list_automationsGet a list of all automations
call_service_toolCall any Home Assistant service
restart_haRestart Home Assistant
get_historyGet the state history of an entity (last N hours)
get_history_rangeGet state-change history for an entity over an
get_statisticsGet long-term aggregated statistics (mean / min / max
get_statistics_rangeSame, but for an explicit date/time range —
get_error_logGet the Home Assistant error log, with optional
get_entities_by_areaList entities in a specific area / room
list_dashboardsList dashboards (the default plus any user dashboards),
get_dashboard_configGet a dashboard's full config
set_dashboard_configReplace a dashboard's full config (low-level)
list_view_sectionsList the sections of a "sections"-type view
Storagemode only. Only UI-managed ("storage") dashboards can be edited.
Wholeconfig writes. Home Assistant has no partial-edit API; every change

How to install the Home Assistant MCP Server

{
  "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_HA_TOKEN"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

  • Home Assistant instance with Long-Lived Access Token - One of the following: - Docker (recommended) - Python 3.13+ and uv
VariableDescriptionRequired
HA_URLDeclared in the maintainer’s client configuration.Check documentation
HA_TOKENDeclared in the maintainer’s client configuration.Check documentation

Example prompts to try

  • “Use Home Assistant to get version.”
  • “Use Home Assistant to get entity.”
  • “Use Home Assistant to entity action.”

Frequently asked questions

Interact with Home Assistant to control smart home devices, query states, manage automations, and troubleshoot your smart home setup. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.