Skip to main content
Glama
tools.md22.3 kB
# Home Assistant MCP Server Tools This document lists all available tools in the Home Assistant MCP Server. **Total Tools:** 44 ## ⚠️ **IMPORTANT: Token Usage Warning** > **🚨 CRITICAL COST CONSIDERATION** > > **Each tool and resource definition consumes tokens in your LLM conversation context!** > > - All tools listed below are loaded into your conversation and **cost tokens even if unused** > - The token counts shown are **approximate estimates** (actual costs may be higher due to formatting) > - **`update-lovelace-config` costs 4,151 tokens** - exclude if not needed for your use case > - Consider carefully which tools you actually need for your specific use case > - Unused tools still consume your token budget and may impact conversation length and costs > > **💡 Pro Tip:** Only include the MCP server tools you'll actually use to minimize token consumption and maximize conversation efficiency. ## Tools Overview **⚠️ Watch for High Token Cost Tools** - Look for tools with 1000+ tokens in the table below. | 💰 Token Cost | Tool Name | Title | Description | Required Parameters | Optional Parameters | |---------------|-----------|-------|-------------|---------------------|---------------------| | 512 | `get-rest-automation-trace` | Get automation trace by rest_id and run_id | Fetches the trace for a specific automation run using its REST id and run id. | `rest_id` (string): Automation REST API id<br>`run_id` (string): Automation run id | None | | 259 | `list-rest-automation-traces` | List automation traces by rest_id | List all traces for a specific automation using its REST id. | `rest_id` (string): Automation REST API id | None | | 280 | `list-automations` | List all automations | List all automations | None | None | | 68 | `delete-automation` | Delete an automation | Delete an automation by id | `id` (string): Automation unique ID | None | | 337 | `get-automation-by-entity-id` | Get automation by entity_id | Find an automation entity using its entity_id (e.g. automation.my_automation). | `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation' | None | | 275 | `get-rest-automation-by-entity-id` | Get REST automation by entity_id | Get an automation's REST definition using its entity_id (e.g. automation.my_automation). | `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation' | None | | 228 | `update-automation-by-entity-id` | Update automation by entity_id | Update an automation using its entity_id (e.g. automation.my_automation). | `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation'<br>`automation` (object): Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode | None | | 327 | `get-automation-by-rest-id` | Get automation by rest_id | Find an automation entity using its REST API id (rest_id, not entity_id). | `rest_id` (string): Automation REST API id | None | | 265 | `get-rest-automation-by-rest-id` | Get REST automation by rest_id | Get an automation's REST definition using its rest_id (REST API id, not entity_id). | `rest_id` (string): Automation REST API id | None | | 202 | `update-rest-automation-by-rest-id` | Update REST automation by rest_id | Update an automation using its rest_id (REST API id, not entity_id). | `automation` (object): Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode | None | | 89 | `delete-rest-automation-by-rest-id` | Delete REST automation by rest_id | Delete an automation using its rest_id (REST API id, not entity_id). | `rest_id` (string): Automation REST API id | None | | 180 | `create-rest-automation` | Create REST automation | Create a new automation via the Home Assistant REST API. Returns the new rest_id. | `automation` (object): Home Assistant automation creation object without ID, used when creating new automations | None | | 87 | `list-device-automation-triggers` | List device automation triggers | List all triggers for a specific device's automations. | `device_id` (string): Device ID | None | | 114 | `get-status` | Get Home Assistant connection status | Get Home Assistant connection status | None | None | | 143 | `validate-config` | Validate triggers, conditions and actions for any automation change | Validate triggers, conditions and actions configurations as if part of an automation. Any changes to automation should be checked with this tool | `config` (object): Validation configuration for Home Assistant automation triggers, conditions, and actions | None | | 102 | `call-service` | Call a Home Assistant service | Call a Home Assistant service | `domain` (string): Service domain (e.g., light, switch)<br>`service` (string): Service name | `data` (object): | | 88 | `get-manifest` | Get Home Assistant integration manifest | Get the manifest of a Home Assistant integration | `integration` (string): Integration name, e.g. 'light' | None | | 513 | `get-entity-registry-by-entity-id` | Get entity registry by entity_id | Get registry info for a specific entity_id | `entityId` (string): Entity ID, e.g. 'sensor.temperature' | None | | 166 | `get-device-id-by-entity-id` | Get device_id by entity_id | Get the device_id for a given entity_id | `entityId` (string): Entity ID, e.g. 'sensor.temperature' | None | | 167 | `get-config-entry-id-by-entity-id` | Get config_entry_id by entity_id | Get the config_entry_id for a given entity_id, useful for templated sensors and other config entry flows alike | `entityId` (string): Entity ID, e.g. 'sensor.temperature' | None | | 128 | `update-device-registry` | Update device registry | Update the device registry for a specific device_id | `device_id` (string): Device ID, e.g. 'device_123'<br>`device_config` (object): Any field device configuration to update | None | | 97 | `create-config-entry-flow` | Create config entry flow with a handler helpers | Create a new config entry in the Home Assistant entity registry for a new config entry (new templated helpers for ex) | `handler` (string): The handler for the config entry flow | None | | 108 | `continue-config-entry-flow` | Continue config entry flow | Continue an existing config entry flow with a next step Id | `flow_id` (string): The ID of the config entry flow to continue<br>`next_step_id` (string): The ID of the next step to execute | None | | 101 | `finish-config-entry-flow` | Finish config entry flow | Finish an existing config entry flow | `flow_id` (string): The ID of the config entry flow to finish<br>`options` (object): Parameters to finish the flow | None | | 108 | `create-config-entry-options-flow` | Create config entry options flow for a config entry id | Create a new config entry options flow for a specific config entry (already existing config entry, templated helpers for ex) | `config_entry_id` (string): The ID of the config entry to create options flow for | None | | 104 | `update-config-entry-options-flow` | Update config entry options flow | Update an existing config entry options flow | `flow_id` (string): The ID of the config entry flow to update<br>`options` (object): Parameters to update the flow | None | | 116 | `list-config-entry-flows-helpers` | List helpers types | List available config entry flow handlers for helpers | None | None | | 121 | `list-scripts` | List all scripts | List all scripts in Home Assistant, friendly_name = alias | None | None | | 149 | `get-rest-script-by-entity-id` | Get a script by entity_id | Get the details of a specific script by its entity_id | `entityId` (string): Entity ID of the script, e.g. 'my_script' | None | | 155 | `get-rest-script-by-alias` | Get a script by alias | Get the details of a specific script by its alias, not script.entity_id | `alias` (string): Alias of the script, e.g. 'My Script' not 'script.script_entity_id' | None | | 156 | `update-rest-script-by-alias` | Update a script by alias | Update the details of a specific script by its alias | `alias` (string): alias of the script, e.g. 'My Script'<br>`data` (object): The script configuration data to update | None | | 126 | `delete-rest-script-by-alias` | Delete a script by alias | Delete a specific script by its alias | `alias` (string): Alias of the script, e.g. 'My Script' | None | | 91 | `list-entities-by-prefix` | List all entities by prefix | List all Home Assistant entities by prefix | `prefix` (string): Prefix to filter entities, e.g. 'sensor.' | None | | 120 | `list-entities-by-regex` | List all entities by regex | List all Home Assistant entities matching a regex pattern | `pattern` (string): Regex pattern for entity IDs, e.g. '^sensor\.'<br>`flags` (string): Regex flags, e.g. 'i' for ignore case | None | | 264 | `get-entity-state` | Get state of a specific entity | Get state of a specific entity_id | `entityId` (string): Entity ID, e.g. 'sensor.temperature' | None | | 134 | `get-entity-domain` | Get domain of a specific entity | Get domain of a specific entity_id | `entityId` (string): Entity ID, e.g. 'sensor.temperature' | None | | 139 | `search-related` | Search related entities | Search for entities related to a specific item_type (like 'area') and entity_id (like 'studio') | `itemType` (string): Type of the item, e.g. 'entity', 'area'<br>`itemId` (string): ID of the item, e.g. 'sensor.temperature' or 'area.living_room' | None | | 40 | `list-area` | List all areas | List all Home Assistant areas | None | None | | 161 | `get-lovelace-config` | Get Lovelace Config | Fetch Lovelace dashboard config by url_path. The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' | `url_path` (string): The URL path of the Lovelace dashboard config to fetch, e.g., 'default-view' or 'dashboard-id'. The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' | `force` (boolean): | | 4151 | `update-lovelace-config` | Update Lovelace Config | Update Lovelace dashboard config by url_path. | `url_path` (string): The URL path of the Lovelace dashboard config to update<br>`config` (object): The updated Lovelace dashboard config | None | | 49 | `list-lovelace-dashboards` | List Lovelace Dashboards | List all Lovelace dashboards. | None | None | | 121 | `create-lovelace-dashboard` | Create Lovelace Dashboard | Create a new Lovelace dashboard. | `title` (string): <br>`url_path` (string): The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' | `require_admin` (boolean): <br>`show_in_sidebar` (boolean): | | 72 | `delete-lovelace-dashboard` | Delete Lovelace Dashboard | Delete a Lovelace dashboard by dashboard_id. | `dashboard_id` (string): | None | | 46 | `get-lovelace-resources` | Get Lovelace Resources | Fetch Lovelace resources. | None | None | ## Detailed Tool Descriptions ### Get automation trace by rest_id and run_id **Name:** `get-rest-automation-trace` **Description:** Fetches the trace for a specific automation run using its REST id and run id. **Required Parameters:** - `rest_id` (string): Automation REST API id - `run_id` (string): Automation run id --- ### List automation traces by rest_id **Name:** `list-rest-automation-traces` **Description:** List all traces for a specific automation using its REST id. **Required Parameters:** - `rest_id` (string): Automation REST API id --- ### List all automations **Name:** `list-automations` **Description:** List all automations --- ### Delete an automation **Name:** `delete-automation` **Description:** Delete an automation by id **Required Parameters:** - `id` (string): Automation unique ID --- ### Get automation by entity_id **Name:** `get-automation-by-entity-id` **Description:** Find an automation entity using its entity_id (e.g. automation.my_automation). **Required Parameters:** - `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation' --- ### Get REST automation by entity_id **Name:** `get-rest-automation-by-entity-id` **Description:** Get an automation's REST definition using its entity_id (e.g. automation.my_automation). **Required Parameters:** - `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation' --- ### Update automation by entity_id **Name:** `update-automation-by-entity-id` **Description:** Update an automation using its entity_id (e.g. automation.my_automation). **Required Parameters:** - `entity_id` (string): Automation entity_id, e.g. 'automation.my_automation' - `automation` (object): Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode --- ### Get automation by rest_id **Name:** `get-automation-by-rest-id` **Description:** Find an automation entity using its REST API id (rest_id, not entity_id). **Required Parameters:** - `rest_id` (string): Automation REST API id --- ### Get REST automation by rest_id **Name:** `get-rest-automation-by-rest-id` **Description:** Get an automation's REST definition using its rest_id (REST API id, not entity_id). **Required Parameters:** - `rest_id` (string): Automation REST API id --- ### Update REST automation by rest_id **Name:** `update-rest-automation-by-rest-id` **Description:** Update an automation using its rest_id (REST API id, not entity_id). **Required Parameters:** - `automation` (object): Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode --- ### Delete REST automation by rest_id **Name:** `delete-rest-automation-by-rest-id` **Description:** Delete an automation using its rest_id (REST API id, not entity_id). **Required Parameters:** - `rest_id` (string): Automation REST API id --- ### Create REST automation **Name:** `create-rest-automation` **Description:** Create a new automation via the Home Assistant REST API. Returns the new rest_id. **Required Parameters:** - `automation` (object): Home Assistant automation creation object without ID, used when creating new automations --- ### List device automation triggers **Name:** `list-device-automation-triggers` **Description:** List all triggers for a specific device's automations. **Required Parameters:** - `device_id` (string): Device ID --- ### Get Home Assistant connection status **Name:** `get-status` **Description:** Get Home Assistant connection status --- ### Validate triggers, conditions and actions for any automation change **Name:** `validate-config` **Description:** Validate triggers, conditions and actions configurations as if part of an automation. Any changes to automation should be checked with this tool **Required Parameters:** - `config` (object): Validation configuration for Home Assistant automation triggers, conditions, and actions --- ### Call a Home Assistant service **Name:** `call-service` **Description:** Call a Home Assistant service **Required Parameters:** - `domain` (string): Service domain (e.g., light, switch) - `service` (string): Service name **Optional Parameters:** - `data` (object): --- ### Get Home Assistant integration manifest **Name:** `get-manifest` **Description:** Get the manifest of a Home Assistant integration **Required Parameters:** - `integration` (string): Integration name, e.g. 'light' --- ### Get entity registry by entity_id **Name:** `get-entity-registry-by-entity-id` **Description:** Get registry info for a specific entity_id **Required Parameters:** - `entityId` (string): Entity ID, e.g. 'sensor.temperature' --- ### Get device_id by entity_id **Name:** `get-device-id-by-entity-id` **Description:** Get the device_id for a given entity_id **Required Parameters:** - `entityId` (string): Entity ID, e.g. 'sensor.temperature' --- ### Get config_entry_id by entity_id **Name:** `get-config-entry-id-by-entity-id` **Description:** Get the config_entry_id for a given entity_id, useful for templated sensors and other config entry flows alike **Required Parameters:** - `entityId` (string): Entity ID, e.g. 'sensor.temperature' --- ### Update device registry **Name:** `update-device-registry` **Description:** Update the device registry for a specific device_id **Required Parameters:** - `device_id` (string): Device ID, e.g. 'device_123' - `device_config` (object): Any field device configuration to update --- ### Create config entry flow with a handler helpers **Name:** `create-config-entry-flow` **Description:** Create a new config entry in the Home Assistant entity registry for a new config entry (new templated helpers for ex) **Required Parameters:** - `handler` (string): The handler for the config entry flow --- ### Continue config entry flow **Name:** `continue-config-entry-flow` **Description:** Continue an existing config entry flow with a next step Id **Required Parameters:** - `flow_id` (string): The ID of the config entry flow to continue - `next_step_id` (string): The ID of the next step to execute --- ### Finish config entry flow **Name:** `finish-config-entry-flow` **Description:** Finish an existing config entry flow **Required Parameters:** - `flow_id` (string): The ID of the config entry flow to finish - `options` (object): Parameters to finish the flow --- ### Create config entry options flow for a config entry id **Name:** `create-config-entry-options-flow` **Description:** Create a new config entry options flow for a specific config entry (already existing config entry, templated helpers for ex) **Required Parameters:** - `config_entry_id` (string): The ID of the config entry to create options flow for --- ### Update config entry options flow **Name:** `update-config-entry-options-flow` **Description:** Update an existing config entry options flow **Required Parameters:** - `flow_id` (string): The ID of the config entry flow to update - `options` (object): Parameters to update the flow --- ### List helpers types **Name:** `list-config-entry-flows-helpers` **Description:** List available config entry flow handlers for helpers --- ### List all scripts **Name:** `list-scripts` **Description:** List all scripts in Home Assistant, friendly_name = alias --- ### Get a script by entity_id **Name:** `get-rest-script-by-entity-id` **Description:** Get the details of a specific script by its entity_id **Required Parameters:** - `entityId` (string): Entity ID of the script, e.g. 'my_script' --- ### Get a script by alias **Name:** `get-rest-script-by-alias` **Description:** Get the details of a specific script by its alias, not script.entity_id **Required Parameters:** - `alias` (string): Alias of the script, e.g. 'My Script' not 'script.script_entity_id' --- ### Update a script by alias **Name:** `update-rest-script-by-alias` **Description:** Update the details of a specific script by its alias **Required Parameters:** - `alias` (string): alias of the script, e.g. 'My Script' - `data` (object): The script configuration data to update --- ### Delete a script by alias **Name:** `delete-rest-script-by-alias` **Description:** Delete a specific script by its alias **Required Parameters:** - `alias` (string): Alias of the script, e.g. 'My Script' --- ### List all entities by prefix **Name:** `list-entities-by-prefix` **Description:** List all Home Assistant entities by prefix **Required Parameters:** - `prefix` (string): Prefix to filter entities, e.g. 'sensor.' --- ### List all entities by regex **Name:** `list-entities-by-regex` **Description:** List all Home Assistant entities matching a regex pattern **Required Parameters:** - `pattern` (string): Regex pattern for entity IDs, e.g. '^sensor\.' - `flags` (string): Regex flags, e.g. 'i' for ignore case --- ### Get state of a specific entity **Name:** `get-entity-state` **Description:** Get state of a specific entity_id **Required Parameters:** - `entityId` (string): Entity ID, e.g. 'sensor.temperature' --- ### Get domain of a specific entity **Name:** `get-entity-domain` **Description:** Get domain of a specific entity_id **Required Parameters:** - `entityId` (string): Entity ID, e.g. 'sensor.temperature' --- ### Search related entities **Name:** `search-related` **Description:** Search for entities related to a specific item_type (like 'area') and entity_id (like 'studio') **Required Parameters:** - `itemType` (string): Type of the item, e.g. 'entity', 'area' - `itemId` (string): ID of the item, e.g. 'sensor.temperature' or 'area.living_room' --- ### List all areas **Name:** `list-area` **Description:** List all Home Assistant areas --- ### Get Lovelace Config **Name:** `get-lovelace-config` **Description:** Fetch Lovelace dashboard config by url_path. The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' **Required Parameters:** - `url_path` (string): The URL path of the Lovelace dashboard config to fetch, e.g., 'default-view' or 'dashboard-id'. The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' **Optional Parameters:** - `force` (boolean): --- ### Update Lovelace Config **Name:** `update-lovelace-config` **Description:** Update Lovelace dashboard config by url_path. **Required Parameters:** - `url_path` (string): The URL path of the Lovelace dashboard config to update - `config` (object): The updated Lovelace dashboard config --- ### List Lovelace Dashboards **Name:** `list-lovelace-dashboards` **Description:** List all Lovelace dashboards. --- ### Create Lovelace Dashboard **Name:** `create-lovelace-dashboard` **Description:** Create a new Lovelace dashboard. **Required Parameters:** - `title` (string): - `url_path` (string): The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-' **Optional Parameters:** - `require_admin` (boolean): - `show_in_sidebar` (boolean): --- ### Delete Lovelace Dashboard **Name:** `delete-lovelace-dashboard` **Description:** Delete a Lovelace dashboard by dashboard_id. **Required Parameters:** - `dashboard_id` (string): --- ### Get Lovelace Resources **Name:** `get-lovelace-resources` **Description:** Fetch Lovelace resources. ---

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/slhad/aha-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server