← Back to directory
H

Hass MCP Server

Community
Control and query Home Assistant from Claude and other LLMs — a Model Context Protocol (MCP) server.
Category
Other #131 of 230
Stars
★ 344 Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Docker · Python 3.13+
Credentials
API key / credential required
License
MIT
Last commit
Tools
15
52FMRS · D

Hass-MCP is feature-rich, covering entity management, automations, history, logs, and more, with token efficiency. However, security risks are prominent, especially in HTTP mode, which requires strict protection. It suits users who want AI control of their home, but careful permission and network configuration is needed.

Strongest · Setup experience 14/20 Weakest · Reliability 7/20

Reliability
7/20
Security and permissions
10/20
Maintenance
7/20
Documentation
14/20
Setup experience
14/20
Why each score
Reliability 7/20
This review only had access to the README and repository metadata; no source code, cached server manifest, CI workflows, or test files were available. The README claims many tools, prompts, and resources, but we cannot verify that the declared tools match real behavior. Edge-case and error-handling evidence is absent, so the score is conservatively below 10.
Security and permissions 10/20
Credentials are passed through HA_URL/HA_TOKEN environment variables and no real tokens appear in examples. However, high-risk operations such as restart_ha, call_service_tool, and entity_action are documented without any confirmation mechanism or least-privilege scoping. HTTP mode has no built-in authentication and the README only advises putting a reverse proxy or VPN in front. The explicit security warning and refusal to support verify=False are positives. No red-line issue was found, so the score is 10.
Maintenance 7/20
The repository has an MIT license and is not archived, but the supplied evidence contains no commit history, releases, dependency update records, or security-response channel. Stars and issue counts are discovery signals only and do not add points. Therefore the maintenance score is a moderate-low 7.
Documentation 14/20
The README is fairly comprehensive: it covers Docker and uvx installation, Claude Desktop/Cursor/Claude Code configuration, HTTP transport, custom CA handling, many usage examples, and lists of tools, prompts, and resources, plus security caveats. It lacks per-tool parameter references, troubleshooting guidance, and cost/limit disclosures, so the score is 14.
Setup experience 14/20
The README presents clear setup paths: container and uvx configurations with ready-to-paste Claude Desktop JSON, explicit Cursor and Claude Code steps, and HTTP-mode startup commands and endpoint documentation. Because this is a static review with no CI or executable verification, the setup score is capped at 15; it receives 14.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Home Assistant users who want natural language control of their smart home
  • Developers who enjoy using AI assistants like Claude
  • Users who need quick troubleshooting of automations and entities

Not for

  • Users who do not need AI control
  • Those who cannot manage long-lived tokens or network configuration
  • Those who need offline or fully local environments without exposing server ports (especially in HTTP mode)

Required permissions

  • Requires a Home Assistant Long-Lived Access Token (HA_TOKEN)
  • Needs network access to the Home Assistant instance via HA_URL
  • In HTTP mode, opens a port that must be protected via proxy or VPN to prevent unauthorized access

Risks and side effects

  • If HTTP mode is exposed to the public internet, anyone can control all smart devices (lights, locks, automations, restart HA)
  • Token leakage could lead to full control of Home Assistant
  • Wrong operations could cause device anomalies or unintended automations

Setup

Before you start

Runtime:Docker · Python 3.13+

HA_URL required Address of your Home Assistant instance (e.g. http://homeassistant.local:8123); adjust for your deployment.
HA_TOKEN requiredsecret Home Assistant Long-Lived Access Token, created in your HA user security settings.
Other optional settings (4)
SSL_CERT_FILE optional Path to a custom CA certificate for verifying HA instances with private CAs; takes precedence over the OS trust store.
HASS_MCP_BACKUP_DIR optional Directory for automatic pre-save dashboard backups, default ~/.hass-mcp/dashboard-backups/; mount a volume when running in Docker.
PORT optional HTTP mode listen port, honoring Smithery's convention; read automatically.
MCP_PORT optional Alternative env var for the HTTP mode listen port.
  1. Have a Home Assistant instance with a Long-Lived Access Token.
  2. Install via Docker (recommended) or Python/uv.
  3. Add the MCP server to Claude Desktop (or Cursor, Claude Code).
  4. Set environment variables HA_URL and HA_TOKEN.
  5. Restart the client.
claude_desktop_config.json
{
  "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_LONG_LIVED_TOKEN"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "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_LONG_LIVED_TOKEN"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add hass-mcp -e HA_URL=http://homeassistant.local:8123 -e HA_TOKEN=YOUR_LONG_LIVED_TOKEN -- docker run -i --rm -e HA_URL -e HA_TOKEN voska/hass-mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After saving the config and restarting Claude Desktop, the Hass-MCP tools should appear in the tools menu; ask the assistant to run get_version and it should return your Home Assistant version, confirming the connection.

Troubleshooting

  1. Check that HA_URL is reachable; inside Docker use host.docker.internal or the actual IP
  2. Ensure HA_TOKEN is valid and not expired
  3. If the Docker container cannot reach Home Assistant, try adding --network host or use the host IP
  4. Inspect client logs to see if the MCP server starts properly
  5. If using a custom CA certificate, set SSL_CERT_FILE to the CA file
  6. For HTTP mode, verify port binding and proxy configuration

Things to try

Once connected, you can ask your AI assistant things like:

  • Turn off all the lights in the kitchen
  • What's the temperature in the master bedroom?
  • List all my sensors that contain temperature data
  • Help me troubleshoot why my bedroom motion sensor automation isn't working

Tools 15

get_version read-only
Get the Home Assistant version.
get_entity read-only
Get the state of a specific entity with optional field filtering.
entity_action writes
Perform actions on entities (turn on, off, toggle).
list_entities read-only
Get a list of entities with optional domain filtering and search.
search_entities_tool read-only
Search for entities matching a query.
domain_summary_tool read-only
Get a summary of a domain's entities.
list_automations read-only
Get a list of all automations.
call_service_tool writes
Call any Home Assistant service.
Show 7 more tools
restart_ha destructive
Restart Home Assistant.
get_history read-only
Get the state history of an entity (last N hours).
get_history_range read-only
Get state-change history for an entity over an explicit date/time range.
get_statistics read-only
Get long-term aggregated statistics (mean/min/max per bucket) for an entity over the last N hours.
get_statistics_range read-only
Get long-term statistics for an explicit date/time range, useful for monthly/yearly trends.
get_error_log read-only
Get the Home Assistant error log with optional server-side filters.
get_entities_by_area read-only
List entities in a specific area or room.

Use cases

Ask about current living room light states
Turn off all kitchen lights
Check the temperature in the master bedroom
List all sensors containing temperature data
Create an automation that turns on lights at sunset
Troubleshoot a bedroom motion sensor automation
View error log entries from Home Assistant
Show daily power usage for the last month

Supported clients

Claude Desktop
Cursor
Claude Code

Listed from the project's documentation, not tested by this site.

Overview

Hass-MCP is a Model Context Protocol (MCP) server for integrating Home Assistant with Claude and other large language models. It lets AI assistants directly read device states, control lights and switches, get smart home summaries, troubleshoot automations, and search entities, with lean JSON responses to minimize token usage.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 654 · Tools 11 Compare with this →

Source revision 181fd9d915e7 Data synced 2026-10-12 Read the FMRS scoring method