/
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