/
by ai.smithery
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
Server configuration and capabilities from the MCP manifest
Size: 13,701 bytes (3,426 tokens)
Tools Found: 39
Analysis ID: kula9v3k
This MCP server provides tools for managing Home Assistant automations, entities, and Lovelace dashboards.
Stars
Registry ID: cb323720-734b-4ab5-bfa8-ae77a814a1ba
Added to Registry: 9/21/2025
Last Updated: 9/22/2025
Last Seen: 9/22/2025
License: MIT License
Default Branch: master
Last Push: 9/17/2025
Last Release: 9/14/2025
Open Issues: 1
Historical performance and growth metrics over time
{ "name": "hass-mcp", "tags": [], "tools": [ { "name": "get-rest-automation-trace", "description": "Fetches the trace for a specific automation run using its REST id and run id.", "input_schema": { "type": "object", "required": [ "rest_id", "run_id" ], "properties": { "run_id": { "type": "string", "description": "Automation run id" }, "rest_id": { "type": "string", "description": "Automation REST API id" } } }, "output_schema": {} }, { "name": "list-rest-automation-traces", "description": "List all traces for a specific automation using its REST id.", "input_schema": { "type": "object", "required": [ "rest_id" ], "properties": { "rest_id": { "type": "string", "description": "Automation REST API id" } } }, "output_schema": {} }, { "name": "list-automations", "description": "List all automations", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "name": "delete-automation", "description": "Delete an automation by id", "input_schema": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Automation unique ID" } } }, "output_schema": {} }, { "name": "get-automation-by-entity-id", "description": "Find an automation entity using its entity_id (e.g. automation.my_automation).", "input_schema": { "type": "object", "required": [ "entity_id" ], "properties": { "entity_id": { "type": "string", "description": "Automation entity_id, e.g. 'automation.my_automation'" } } }, "output_schema": {} }, { "name": "get-rest-automation-by-entity-id", "description": "Get an automation's REST definition using its entity_id (e.g. automation.my_automation).", "input_schema": { "type": "object", "required": [ "entity_id" ], "properties": { "entity_id": { "type": "string", "description": "Automation entity_id, e.g. 'automation.my_automation'" } } }, "output_schema": {} }, { "name": "update-automation-by-entity-id", "description": "Update an automation using its entity_id (e.g. automation.my_automation).", "input_schema": { "type": "object", "required": [ "entity_id", "automation" ], "properties": { "entity_id": { "type": "string", "description": "Automation entity_id, e.g. 'automation.my_automation'" }, "automation": { "type": "object", "description": "Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode" } } }, "output_schema": {} }, { "name": "get-automation-by-rest-id", "description": "Find an automation entity using its REST API id (rest_id, not entity_id).", "input_schema": { "type": "object", "required": [ "rest_id" ], "properties": { "rest_id": { "type": "string", "description": "Automation REST API id" } } }, "output_schema": {} }, { "name": "get-rest-automation-by-rest-id", "description": "Get an automation's REST definition using its rest_id (REST API id, not entity_id).", "input_schema": { "type": "object", "required": [ "rest_id" ], "properties": { "rest_id": { "type": "string", "description": "Automation REST API id" } } }, "output_schema": {} }, { "name": "update-rest-automation-by-rest-id", "description": "Update an automation using its rest_id (REST API id, not entity_id).", "input_schema": { "type": "object", "required": [ "automation" ], "properties": { "automation": { "type": "object", "description": "Home Assistant automation configuration object with ID, alias, description, triggers, conditions, actions, and execution mode" } } }, "output_schema": {} }, { "name": "delete-rest-automation-by-rest-id", "description": "Delete an automation using its rest_id (REST API id, not entity_id).", "input_schema": { "type": "object", "required": [ "rest_id" ], "properties": { "rest_id": { "type": "string", "description": "Automation REST API id" } } }, "output_schema": {} }, { "name": "create-rest-automation", "description": "Create a new automation via the Home Assistant REST API. Returns the new rest_id.", "input_schema": { "type": "object", "required": [ "automation" ], "properties": { "automation": { "type": "object", "description": "Home Assistant automation creation object without ID, used when creating new automations" } } }, "output_schema": {} }, { "name": "list-device-automation-triggers", "description": "List all triggers for a specific device's automations.", "input_schema": { "type": "object", "required": [ "device_id" ], "properties": { "device_id": { "type": "string", "description": "Device ID" } } }, "output_schema": {} }, { "name": "get-status", "description": "Get Home Assistant connection status", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "name": "validate-config", "description": "Validate triggers, conditions and actions for any automation change.", "input_schema": { "type": "object", "required": [ "config" ], "properties": { "config": { "type": "object", "description": "Validation configuration for Home Assistant automation triggers, conditions, and actions" } } }, "output_schema": {} }, { "name": "call-service", "description": "Call a Home Assistant service", "input_schema": { "type": "object", "required": [ "domain", "service" ], "properties": { "data": { "type": "object", "description": "" }, "domain": { "type": "string", "description": "Service domain (e.g., light, switch)" }, "service": { "type": "string", "description": "Service name" } } }, "output_schema": {} }, { "name": "get-manifest", "description": "Get the manifest of a Home Assistant integration", "input_schema": { "type": "object", "required": [ "integration" ], "properties": { "integration": { "type": "string", "description": "Integration name, e.g. 'light'" } } }, "output_schema": {} }, { "name": "get-entity-registry-by-entity-id", "description": "Get registry info for a specific entity_id", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID, e.g. 'sensor.temperature'" } } }, "output_schema": {} }, { "name": "get-device-id-by-entity-id", "description": "Get the device_id for a given entity_id", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID, e.g. 'sensor.temperature'" } } }, "output_schema": {} }, { "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", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID, e.g. 'sensor.temperature'" } } }, "output_schema": {} }, { "name": "update-device-registry", "description": "Update the device registry for a specific device_id", "input_schema": { "type": "object", "required": [ "device_id", "device_config" ], "properties": { "device_id": { "type": "string", "description": "Device ID, e.g. 'device_123'" }, "device_config": { "type": "object", "description": "Any field device configuration to update" } } }, "output_schema": {} }, { "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)", "input_schema": { "type": "object", "required": [ "handler" ], "properties": { "handler": { "type": "string", "description": "The handler for the config entry flow" } } }, "output_schema": {} }, { "name": "continue-config-entry-flow", "description": "Continue an existing config entry flow with a next step Id", "input_schema": { "type": "object", "required": [ "flow_id", "next_step_id" ], "properties": { "flow_id": { "type": "string", "description": "The ID of the config entry flow to continue" }, "next_step_id": { "type": "string", "description": "The ID of the next step to execute" } } }, "output_schema": {} }, { "name": "finish-config-entry-flow", "description": "Finish an existing config entry flow", "input_schema": { "type": "object", "required": [ "flow_id", "options" ], "properties": { "flow_id": { "type": "string", "description": "The ID of the config entry flow to finish" }, "options": { "type": "object", "description": "Parameters to finish the flow" } } }, "output_schema": {} }, { "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)", "input_schema": { "type": "object", "required": [ "config_entry_id" ], "properties": { "config_entry_id": { "type": "string", "description": "The ID of the config entry to create options flow for" } } }, "output_schema": {} }, { "name": "update-config-entry-options-flow", "description": "Update an existing config entry options flow", "input_schema": { "type": "object", "required": [ "flow_id", "options" ], "properties": { "flow_id": { "type": "string", "description": "The ID of the config entry flow to update" }, "options": { "type": "object", "description": "Parameters to update the flow" } } }, "output_schema": {} }, { "name": "list-config-entry-flows-helpers", "description": "List available config entry flow handlers for helpers", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "name": "list-scripts", "description": "List all scripts in Home Assistant, friendly_name = alias", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "name": "get-rest-script-by-entity-id", "description": "Get the details of a specific script by its entity_id", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID of the script, e.g. 'my_script'" } } }, "output_schema": {} }, { "name": "get-rest-script-by-alias", "description": "Get the details of a specific script by its alias, not script.entity_id", "input_schema": { "type": "object", "required": [ "alias" ], "properties": { "alias": { "type": "string", "description": "Alias of the script, e.g. 'My Script' not 'script.script_entity_id'" } } }, "output_schema": {} }, { "name": "update-rest-script-by-alias", "description": "Update the details of a specific script by its alias", "input_schema": { "type": "object", "required": [ "alias", "data" ], "properties": { "data": { "type": "object", "description": "The script configuration data to update" }, "alias": { "type": "string", "description": "alias of the script, e.g. 'My Script'" } } }, "output_schema": {} }, { "name": "delete-rest-script-by-alias", "description": "Delete a specific script by its alias", "input_schema": { "type": "object", "required": [ "alias" ], "properties": { "alias": { "type": "string", "description": "Alias of the script, e.g. 'My Script'" } } }, "output_schema": {} }, { "name": "list-entities-by-prefix", "description": "List all Home Assistant entities by prefix", "input_schema": { "type": "object", "required": [ "prefix" ], "properties": { "prefix": { "type": "string", "description": "Prefix to filter entities, e.g. 'sensor.'" } } }, "output_schema": {} }, { "name": "list-entities-by-regex", "description": "List all Home Assistant entities matching a regex pattern", "input_schema": { "type": "object", "required": [ "pattern" ], "properties": { "flags": { "type": "string", "description": "Regex flags, e.g. 'i' for ignore case" }, "pattern": { "type": "string", "description": "Regex pattern for entity IDs, e.g. '^sensor\\.'" } } }, "output_schema": {} }, { "name": "get-entity-state", "description": "Get state of a specific entity", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID, e.g. 'sensor.temperature'" } } }, "output_schema": {} }, { "name": "get-entity-domain", "description": "Get domain of a specific entity", "input_schema": { "type": "object", "required": [ "entityId" ], "properties": { "entityId": { "type": "string", "description": "Entity ID, e.g. 'sensor.temperature'" } } }, "output_schema": {} }, { "name": "search-related", "description": "Search for entities related to a specific item_type (like 'area') and entity_id (like 'studio')", "input_schema": { "type": "object", "required": [ "itemType", "itemId" ], "properties": { "itemId": { "type": "string", "description": "ID of the item, e.g. 'sensor.temperature' or 'area.living_room'" }, "itemType": { "type": "string", "description": "Type of the item, e.g. 'entity', 'area'" } } }, "output_schema": {} }, { "name": "list-area", "description": "List all Home Assistant areas", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "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 '-'", "input_schema": { "type": "object", "required": [ "url_path" ], "properties": { "force": { "type": "boolean", "description": "" }, "url_path": { "type": "string", "description": "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 '-'" } } }, "output_schema": {} }, { "name": "update-lovelace-config", "description": "Update Lovelace dashboard config by url_path.", "input_schema": { "type": "object", "required": [ "url_path", "config" ], "properties": { "config": { "type": "object", "description": "The updated Lovelace dashboard config" }, "url_path": { "type": "string", "description": "The URL path of the Lovelace dashboard config to update" } } }, "output_schema": {} }, { "name": "list-lovelace-dashboards", "description": "List all Lovelace dashboards.", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} }, { "name": "create-lovelace-dashboard", "description": "Create a new Lovelace dashboard.", "input_schema": { "type": "object", "required": [ "title", "url_path" ], "properties": { "title": { "type": "string", "description": "" }, "url_path": { "type": "string", "description": "The URL must contain a dash ('-') and must not contain spaces or special characters, except '_' and '-'" }, "require_admin": { "type": "boolean", "description": "" }, "show_in_sidebar": { "type": "boolean", "description": "" } } }, "output_schema": {} }, { "name": "delete-lovelace-dashboard", "description": "Delete a Lovelace dashboard by dashboard_id.", "input_schema": { "type": "object", "required": [ "dashboard_id" ], "properties": { "dashboard_id": { "type": "string", "description": "" } } }, "output_schema": {} }, { "name": "get-lovelace-resources", "description": "Fetch Lovelace resources.", "input_schema": { "type": "object", "required": [], "properties": {} }, "output_schema": {} } ], "version": "0.2.0", "categories": [], "description": "Home Assistant MCP Server" }
Forks
Watchers
Contributors
Last Push: 9/17/2025
Last Release: 9/14/2025
Open Issues: 1