← Back to directory
H

Home Assistant MCP Server

Community
An unofficial MCP server for managing Home Assistant with AI
Category
Other #51 of 230
Stars
★ 5.1k Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Python · Docker · Hosted (no local runtime)
Credentials
Optional API key
License
MIT
Last commit
Tools
87
63FMRS · C

An unofficial, community-maintained Home Assistant MCP server covering device control, configuration, diagnostics, and system management. It is powerful but can require high-impact permissions; start with the custom component and enable beta file/YAML tools cautiously.

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

Reliability
8/20
Security and permissions
11/20
Maintenance
15/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 8/20
The README lists 87 tools, several installation modes, and known stdio connection problems, but the supplied material contains no implementation source, committed CI workflow, or committed tests verifying MCP initialization, tool-list consistency, or key failure paths. The manifest also retains {{VERSION}} placeholders. The happy path is plausible, but runtime reliability and release artifacts cannot be statically confirmed, so substantial points are deducted.
Security and permissions 11/20
The evidence shows read-only mode, per-tool enablement, security policies, user approval, automatic edit backups, and file/YAML tools disabled by default; ha_auth and OIDC are also described. Points are deducted because the server can control broad Home Assistant functionality, including restart, backup/restore, add-ons/HACS, file deletion, and arbitrary service calls, while the stated entity scope is everything in Home Assistant. Remote access can use a secret-bearing webhook URL, but the material does not adequately establish key rotation, scope isolation, auditing, or mandatory confirmation for dangerous actions. No red-line condition is evidenced, but least-privilege evidence is incomplete.
Maintenance 15/20
The repository is not archived; the README shows release and commit-activity badges, 17 open issues, named project and core maintainers, and an MIT license. The contributor list and many recorded fixes support ongoing maintenance. Points are deducted because the supplied material cannot verify actual release cadence, dependency update practice, issue-response performance, or a formal security-response channel; governance evidence is incomplete.
Documentation 16/20
The documentation covers HACS integration, the Home Assistant App/add-on, Docker, PyPI, stdio, remote access, OIDC, tool search, beta features, troubleshooting, privacy, and a large tool catalog. It explicitly discloses stdio issues, mutually exclusive installation methods, and stale client tool lists. Points are deducted because the supplied material lacks per-tool parameter details, a complete permission matrix, resource or cost boundaries, and reviewable implementation evidence; some capabilities depend on external documentation or components.
Setup experience 13/20
The README gives step-by-step HACS and App/add-on instructions, addresses multiple Home Assistant installation types and remote webhook/direct-port access, and names supported client paths including Docker, PyPI, stdio, and OIDC. Points are deducted for the number of mutually exclusive installation modes, optional components, proxy or tunnel choices, reliance on the Setup Wizard for client-specific configuration, and known stdio issues. No source or test evidence is provided to demonstrate repeatable completion of the setup.

Test out of dateListed 2026-07-29

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesRuns commands or codeUses the network

Best for

  • Home Assistant users who want AI-assisted configuration and maintenance
  • Users who need automation debugging, history queries, and system-management capabilities
  • Users running Home Assistant OS, Supervised, Container, or Core

Not for

  • Users who only need voice-style control of devices already exposed to Assist
  • People who do not use Home Assistant
  • Users requiring the server to be an official Home Assistant product

Required permissions

  • Requires access to Home Assistant APIs and entity, service, and configuration capabilities
  • Control, configuration changes, deletion, restart, and backup operations may require substantial privileges
  • File and YAML tools require the custom component and beta feature flags
  • Read-only mode, per-tool controls, and tool security policies can be enabled

Risks and side effects

  • Write, delete, restart, restore, and YAML-editing operations can change or disrupt the smart-home configuration
  • File and YAML tools are disabled by default; when enabled, restrict allowed paths and retain backups
  • stdio has known connection issues; the custom component or HTTP methods are recommended for real setups
  • Multiple installation entries for the same client can cause connection hangs

Setup

Before you start

Runtime:Python · Docker · Hosted (no local runtime)

HOMEASSISTANT_TOKEN optionalsecret A Home Assistant long-lived access token created from your HA user profile page; a secret credential.
Other optional settings (6)
HOMEASSISTANT_URL optional Your Home Assistant instance URL, e.g. http://<ha-host>:8123; needed for stdio/Docker installs.
ENABLE_TOOL_SEARCH optional Set to true to enable search-based tool discovery instead of listing the full catalog — useful for small/local models.
TOOL_SEARCH_MAX_RESULTS optional Max results returned by ha_search_tools, default 5, range 2–10.
PINNED_TOOLS optional Comma-separated tool names that stay always visible instead of being deferred behind search.
ENABLE_BETA_FEATURES optional Master flag that must be on before filesystem/YAML beta sub-flags take effect.
HAMCP_ENABLE_FILESYSTEM_TOOLS optional Feature flag enabling beta filesystem tools like ha_write_file and ha_read_file.

The preferred method is to install the HA-MCP Custom Component through HACS in Home Assistant, restart Home Assistant, add the HA-MCP Server integration, then copy the connection URL from its Configure screen into the AI client. Other options include the Home Assistant app/add-on, Docker, or PyPI/uvx. Configure only one installation method per client. File and YAML tools require the separate HA-MCP File & YAML Tools entry and the relevant beta feature flags.

Check that it works

After connecting, check that tools like ha_search or ha_get_overview appear in your client's tool list, then ask the AI "Can you see my Home Assistant?" — a returned system overview confirms the connection works.

Troubleshooting

  1. Ensure the client has only one ha-mcp installation entry
  2. Refresh or reconnect the client after changing tool search, tool availability, or read-only settings
  3. Check Home Assistant logs or the integration Configure screen for the connection URL
  4. If stdio is unreliable, use the custom component or streamable HTTP
  5. Confirm the required component is installed and ENABLE_BETA_FEATURES is enabled for file and YAML tools

Things to try

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

  • Create an automation that turns on the porch light at sunset
  • Add a weather card to my dashboard
  • The motion sensor automation isn't working, debug it
  • Search for all my lights and show their current states

Tools 87

ha_get_addon read-only
Get Home Assistant app or add-on information.
ha_manage_addon writes
Manage Home Assistant apps or add-ons.
ha_list_floors_areas read-only
List floors and areas.
ha_remove_area_or_floor destructive
Remove an area or floor.
ha_set_area_or_floor writes
Create or update an area or floor.
ha_manage_pipeline writes
Manage an Assist pipeline.
ha_config_get_automation read-only
Read an automation configuration.
ha_config_remove_automation destructive
Remove an automation.
Show 79 more tools
ha_config_set_automation writes
Create or update an automation.
ha_get_blueprint read-only
Get a blueprint.
ha_import_blueprint writes
Import a blueprint.
ha_config_get_calendar_events read-only
Get calendar events.
ha_config_remove_calendar_event destructive
Remove a calendar event.
ha_config_set_calendar_event writes
Create or update a calendar event.
ha_get_camera_image read-only
Get a camera image.
ha_get_dashboard_screenshot read-only
Get a dashboard screenshot; beta.
ha_config_delete_dashboard_resource destructive
Delete a dashboard resource.
ha_config_delete_dashboard destructive
Delete a dashboard.
ha_config_get_dashboard read-only
Read a dashboard configuration.
ha_config_list_dashboard_resources read-only
List dashboard resources.
ha_config_set_dashboard_resource writes
Create or update a dashboard resource.
ha_config_set_dashboard writes
Create or update a dashboard.
ha_dev_manage_server writes
Manage Home Assistant server development settings.
ha_dev_manage_settings writes
Manage development settings.
ha_get_device read-only
Get device information.
ha_remove_device destructive
Remove a device.
ha_set_device writes
Create or update device information.
ha_manage_energy_prefs writes
Manage energy preferences.
ha_get_entity_exposure read-only
Get entity exposure settings.
ha_get_entity read-only
Get entity registry information.
ha_remove_entity destructive
Remove an entity registry entry.
ha_set_entity writes
Create or update an entity registry entry.
ha_delete_file destructive
Delete a file in an allowed path; beta.
ha_list_files read-only
List files in allowed directories; beta.
ha_read_file read-only
Read files from allowed paths; beta.
ha_write_file writes
Write files to allowed directories; beta.
ha_config_list_groups read-only
List groups.
ha_config_remove_group destructive
Remove a group.
ha_config_set_group writes
Create or update a group.
ha_get_hacs_info read-only
Get HACS information.
ha_manage_hacs writes
Manage HACS.
ha_config_list_helpers read-only
List helper entities.
ha_config_set_helper writes
Create or update a helper entity.
ha_remove_helpers_integrations destructive
Remove helper integrations.
ha_get_automation_traces read-only
Get automation traces.
ha_get_history read-only
Get history.
ha_get_logs read-only
Get logs.
ha_get_integration read-only
Get integration information.
ha_get_system_health read-only
Get system health information.
ha_set_integration writes
Update integration settings.
ha_config_get_category read-only
Get a category.
ha_config_get_label read-only
Get a label.
ha_config_remove_category destructive
Remove a category.
ha_config_remove_label destructive
Remove a label.
ha_config_set_category writes
Create or update a category.
ha_config_set_label writes
Create or update a label.
ha_manage_radio writes
Manage Matter or related radio settings.
ha_config_get_scene read-only
Read a scene configuration.
ha_config_remove_scene destructive
Remove a scene.
ha_config_set_scene writes
Create or update a scene.
ha_config_get_script read-only
Read a script configuration.
ha_config_remove_script destructive
Remove a script.
ha_config_set_script writes
Create or update a script.
ha_get_overview read-only
Get a Home Assistant overview.
ha_get_state read-only
Get an entity state.
ha_search read-only
Search entities and configuration.
ha_bulk_control writes
Control devices in bulk.
ha_call_event writes
Call an event.
ha_call_service writes
Call a Home Assistant service.
ha_get_operation_status read-only
Get operation status.
ha_list_services read-only
List services.
ha_config_get_yaml read-only
Read YAML configuration; beta.
ha_config_set_yaml writes
Safely add, replace, or remove top-level YAML configuration; beta.
ha_manage_backup writes
Manage backups.
ha_manage_custom_tool writes
Manage custom tools; beta.
ha_manage_theme writes
Manage themes.
ha_manage_updates writes
Manage updates.
ha_reload_core writes
Reload the core.
ha_restart writes
Restart Home Assistant.
ha_get_todo read-only
Get a todo list.
ha_remove_todo_item destructive
Remove a todo item.
ha_set_todo_item writes
Create or update a todo item.
ha_eval_template read-only
Evaluate a template.
ha_report_issue writes
Report an issue.
ha_get_zone read-only
Get zone information.
ha_remove_zone destructive
Remove a zone.
ha_set_zone writes
Create or update a zone.

Use cases

Control smart-home devices and services using natural language
Create or modify automations, scripts, scenes, and dashboards
Query entity states, history, logs, and automation traces
Manage helper entities, areas, labels, groups, HACS, backups, and updates

Supported clients

Claude Desktop
Claude.ai
ChatGPT
Claude Code
Gemini CLI
Open WebUI
VS Code
Cursor

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

Overview

HA-MCP is a comprehensive Model Context Protocol server that lets AI assistants interact with Home Assistant using natural language. It supports smart-home device control, state queries, service calls, and management of automations, scripts, scenes, dashboards, helper entities, areas, backups, and diagnostics. It is community-maintained and licensed under MIT.

Similar servers

BioMCP 75 · B

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

★ 659 · Tools 11 Compare with this →

Source revision 874aa48726c0 Data synced 2026-10-19 Read the FMRS scoring method