← Back to directory
H

Home Assistant MCP

Community
Talk to your house. Your AI assistant connected to Home Assistant via MCP. 50+ tools, three transports, one bunx command.
Category
Other #88 of 230
Stars
★ 57 Popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Node.js 18+ · Bun · Docker
Credentials
API key / credential required
License
Apache-2.0
Last commit
Tools
82
58FMRS · C

The project offers rich features and an active community, but requires users to have some Home Assistant knowledge. Overall positive reviews, but be mindful of permissions and security configuration.

Strongest · Documentation 14/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
14/20
Maintenance
12/20
Documentation
14/20
Setup experience
10/20
Why each score
Reliability 8/20
Evidence shows multiple build entries (dist/index.cjs, stdio-server.mjs, http-server.mjs) and a CI workflow with tests as mentioned in README, but no concrete test details. Since not executed, max score 12. Deductions: test coverage not directly evidenced, error handling and edge cases unverified.
Security and permissions 14/20
No obvious red flags; tokens are passed via env vars, and docs recommend long-lived tokens. However, least-privilege or confirmation mechanisms for dangerous operations are not evident. JWT auth for HTTP/WS only, not covering all transports. Deductions: credential handling details and permission scoping unclear.
Maintenance 12/20
Repository appears active with recent releases (Docker tags up to 1.7.3), but no specific commit frequency or issue response time. Apache-2.0 license present. Deductions: maintenance governance and dependency update information not provided.
Documentation 14/20
README provides detailed installation, configuration, and tool lists, linking to full docs. Lacks troubleshooting and limitation sections. Deductions: no verifiable evidence of doc quality, missing common issues guide.
Setup experience 10/20
Multiple install methods (bunx, npx, Docker, source) with client config examples. However, depends on Bun runtime which may add complexity; no execution verification of setup steps. Deductions: several setup paths but unverified in mainstream clients.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Users wanting deep AI integration with smart home
  • Privacy-conscious users needing local voice control
  • Developers looking for multiple deployment options (STDIO, HTTP, Docker)
  • Enthusiasts exploring AI-driven automation

Not for

  • Users without a Home Assistant instance
  • Enterprises requiring official vendor support (community-maintained)
  • Users extremely averse to any remote hosting (though local voice processing available)
  • Users needing only basic functionality (other simpler MCP servers may be more appropriate)

Required permissions

  • Read Home Assistant entity states (lights, climate, media, etc.)
  • Control device states (on/off, brightness, temperature, etc.)
  • Access history data, logs, and configuration
  • Execute automations, scenes, and notifications
  • Manage dashboards and to-do lists

Risks and side effects

  • Token leak: long-lived access token could be abused for unauthorized control.
  • Configuration errors may result in unintended actions (e.g., turning off critical safety devices).
  • HTTP/WS transport requires JWT auth, but misconfiguration could expose the service.
  • Voice features may introduce additional security risks (e.g., microphone access).

Setup

Before you start

Runtime:Node.js 18+ · Bun · Docker

HASS_HOST required URL of your Home Assistant instance (e.g. http://homeassistant.local:8123); required.
HASS_TOKEN requiredsecret Long-lived access token created from your Home Assistant account profile page; required and secret.
JWT_SECRET optionalsecret JWT auth secret for the HTTP/WS transport (min 32 chars); secret and optional.
Other optional settings (2)
PORT optional HTTP server port (default 4000); optional, only for HTTP transports.
LOG_LEVEL optional Log level (debug | info | warn | error); optional.
  1. Ensure you have a Home Assistant instance and a long-lived access token (create one in your profile).
  2. Add the mcpServers configuration to your Claude Desktop config (claude_desktop_config.json) with command bunx and args.
  3. Set HASS_HOST and HASS_TOKEN environment variables.
  4. Restart Claude Desktop.
  5. Alternatively, use Smithery one-click install: npx @smithery/cli install @jango-blockchained/advanced-homeassistant-mcp --client claude.
claude_desktop_config.json
{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": [
        "github:jango-blockchained/advanced-homeassistant-mcp"
      ],
      "env": {
        "HASS_HOST": "http://your-ha-instance:8123",
        "HASS_TOKEN": "your_long_lived_access_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": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": [
        "github:jango-blockchained/advanced-homeassistant-mcp"
      ],
      "env": {
        "HASS_HOST": "http://your-ha-instance:8123",
        "HASS_TOKEN": "your_long_lived_access_token"
      }
    }
  }
}

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

Terminal
claude mcp add homeassistant-mcp -e HASS_HOST=http://your-ha-instance:8123 -e HASS_TOKEN=your_long_lived_access_token -- bunx github:jango-blockchained/advanced-homeassistant-mcp

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

Check that it works

Add the bunx config to claude_desktop_config. and restart Claude; the tool list should show the 50+ tools such as lights, climate and locks. Ask "What's the temperature in the living room?" — a real entity state in the answer confirms the connection works.

Troubleshooting

  1. 1. Verify HASS_HOST and HASS_TOKEN environment variables are correct.
  2. 2. Ensure Home Assistant is reachable from the machine running the MCP server (network, port).
  3. 3. Check that the token is valid and not expired.
  4. 4. Inspect logs: set LOG_LEVEL=debug for verbose output.
  5. 5. For HTTP/WS transport, check JWT_SECRET is set and at least 32 characters.

Things to try

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

  • Turn off all lights in the bedroom
  • Set the thermostat to 72°F
  • Lock all doors and start the vacuum
  • Show me energy consumption this week

Tools 82

lights list read-only
List all light entities and their states.
lights get read-only
Get detailed info for a specific light.
lights turn on/off writes
Turn a light on or off.
lights brightness writes
Set the brightness of a light.
lights color temp writes
Set the color temperature of a light.
lights RGB writes
Set the RGB color of a light.
lights effects writes
Set light effects.
climate list read-only
List all climate entities.
Show 74 more tools
climate get read-only
Get state of a climate entity.
climate HVAC modes writes
Set HVAC mode (heat, cool, etc.).
climate target temp writes
Set target temperature.
climate fan mode writes
Set fan mode.
climate humidify writes
Control humidity.
media list read-only
List media players.
media get read-only
Get media player state.
media play/pause writes
Play or pause.
media volume writes
Set volume.
media source writes
Select input source.
media sound mode writes
Set sound mode.
media shuffle writes
Toggle shuffle.
covers list read-only
List all covers (curtains, shades).
covers get read-only
Get cover state.
covers open/close writes
Open or close a cover.
covers position writes
Set position percentage.
covers tilt writes
Adjust tilt angle.
covers garage door writes
Control garage door.
locks list read-only
List all locks.
locks get read-only
Get lock state.
locks lock/unlock writes
Lock or unlock a door.
fans list read-only
List all fans.
fans get read-only
Get fan state.
fans speed writes
Set fan speed.
fans oscillation writes
Control oscillation.
fans direction writes
Set fan direction.
fans preset writes
Select preset mode.
vacuums list read-only
List all vacuums.
vacuums get read-only
Get vacuum state.
vacuums start/stop/dock writes
Start, stop, or return to dock.
vacuums spot clean writes
Spot clean.
vacuums fan speed writes
Set suction power.
alarm list read-only
List all alarm panels.
alarm get read-only
Get alarm state.
alarm arm home/away/night writes
Arm home/away/night.
alarm disarm writes
Disarm alarm.
switches list read-only
List all switches.
switches get read-only
Get switch state.
switches turn on/off/toggle writes
Turn on, off, or toggle.
scenes list read-only
List all scenes.
scenes activate writes
Activate a named scene.
automations list read-only
List all automations.
automations toggle writes
Enable or disable an automation.
automations trigger writes
Trigger an automation.
automations create/edit/delete destructive
Create, edit, or delete automations.
notifications push writes
Send push notifications via HA channels.
history query read-only
Query historical states.
add-ons install writes
Install Home Assistant add-ons.
add-ons configure writes
Configure add-ons.
add-ons control writes
Control add-ons (start, stop, etc.).
packages HACS writes
Manage HACS integrations.
maintenance orphaned devices read-only
Find orphaned devices.
maintenance battery warnings read-only
Get low battery warnings.
maintenance energy analysis read-only
Analyze energy usage.
smart scenarios nobody-home writes
Detect nobody-home mode.
smart scenarios window/heat conflicts writes
Detect window/heat conflicts.
smart scenarios energy waste writes
Detect energy waste.
lighting animations writes
Set lighting animations.
lighting scenarios writes
Set lighting scenarios.
lighting showcase writes
Lighting showcase.
lighting BPM/beat detection writes
Change lights based on beat detection.
voice wake word detection read-only
Wake word detection.
voice speech-to-text read-only
Speech-to-text.
voice commands writes
Execute voice commands.
dashboard query read-only
Query Lovelace dashboards.
dashboard manage writes
Manage dashboards.
templates render Jinja2 read-only
Render Jinja2 templates via HA.
to-do lists add writes
Add to-do item.
to-do lists update writes
Update to-do item.
to-do lists remove destructive
Remove to-do item.
traces automation/script read-only
Get execution traces for automations/scripts.
search full-text entity read-only
Full-text entity search.
entity state get read-only
Get current state of any entity.
error log query read-only
Query HA error logs.

Use cases

Control HA devices via natural language: "Turn off all lights in the bedroom".
Set thermostat: "Set the thermostat to 72°F".
Secure home: "Lock all doors and start the vacuum".
Monitor energy: "Show me energy consumption this week".
Activate scenes: "Activate the movie scene".
Maintenance: "Check my Home Assistant health".

Supported clients

Claude Desktop
Cursor

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

Overview

Home Assistant MCP is a Model Context Protocol server that gives AI assistants (like Claude, GPT, Cursor, Copilot) control over your Home Assistant instance. It exposes 50+ tools covering lights, climate, media, locks, covers, fans, vacuums, alarms, scenes, automations, notifications, history, energy monitoring, maintenance, and more. Supports STDIO, HTTP+WS, and HTTP transports. Can be installed via bunx, npx, Docker, or from source. Includes optional speech features (wake word detection and speech-to-text) for local voice control.

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 b1aa766ab6c7 Data synced 2026-10-12 Read the FMRS scoring method