← 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.
GitHub source repository ↗
★ 56 Stars Category · Other Popular Source revision b1aa766ab6c7
58FMRS · C
Reliability
8/20
Security and permissions
14/20
Maintenance
12/20
Documentation
14/20
Setup experience
10/20

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.

Read the FMRS scoring method →

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.

Tools

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

Setup

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

Fit and risk

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).

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.

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 DesktopFull support
CursorFull support