← Back to directory
H

HA-MCP

Community
An unofficial MCP server for managing Home Assistant with AI
GitHub source repository ↗
★ 4.1k Stars Category · Other Very popular
63FMRS · C
Reliability
8/20
Security and permissions
11/20
Maintenance
15/20
Documentation
16/20
Setup experience
13/20

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.

Read the FMRS scoring method →

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.

Tools

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

Setup

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.

Fit and risk

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

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

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 DesktopFull support
Claude.aiFull support
ChatGPTFull support
Claude CodeFull support
Gemini CLIFull support
Open WebUIFull support
VSCodeFull support
CursorFull support