hass-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HA_URL | Yes | Home Assistant base URL (e.g. http://homeassistant.local:8123) | |
| HA_TOKEN | Yes | Long-lived access token for Home Assistant | |
| HA_SSH_HOST | No | SSH hostname for file management (optional) | |
| HA_SSH_PORT | No | SSH port (default: 22) | 22 |
| HA_SSH_USER | No | SSH username (must be root) for file management | |
| HA_SSH_KEY_PATH | No | Path to SSH private key for file management | |
| HA_SSH_PASSWORD | No | SSH password for file management (alternative to key) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ha_list_dashboardsA | List all Lovelace dashboards in Home Assistant |
| ha_create_dashboardC | Create a new Lovelace dashboard |
| ha_update_dashboardB | Update an existing Lovelace dashboard's properties (title, icon, etc.) |
| ha_delete_dashboardB | Delete a Lovelace dashboard |
| ha_get_dashboard_configA | Get the full Lovelace configuration of a dashboard (all views, cards, etc.) |
| ha_save_dashboard_configB | Save/overwrite the full Lovelace configuration of a dashboard. Provide the complete config with views and cards. |
| ha_list_filesB | List files and directories on the Home Assistant server. Path is relative to /config/ (e.g. 'www' lists /config/www/). |
| ha_read_fileA | Read a file from the Home Assistant server. Path is relative to /config/. |
| ha_upload_fileA | Upload a file from the local machine to the Home Assistant server. Remote path is relative to /config/. Restricted to safe directories (www/, custom_components/, blueprints/, themes/). |
| ha_upload_file_contentA | Create/overwrite a file on the Home Assistant server with the provided text content. Remote path is relative to /config/. Parent directories are created automatically. |
| ha_delete_fileA | Delete a file from the Home Assistant server. Path is relative to /config/. Restricted to safe directories. |
| ha_mkdirA | Create a directory on the Home Assistant server (recursively). Path is relative to /config/. |
| ha_file_existsB | Check if a file or directory exists on the Home Assistant server. Path is relative to /config/. |
| ha_list_automationsA | List all automations in Home Assistant with their IDs, aliases, and states |
| ha_get_automationA | Get the full configuration of an automation by its ID |
| ha_create_automationC | Create a new automation in Home Assistant |
| ha_update_automationB | Update an existing automation's configuration |
| ha_delete_automationC | Delete an automation |
| ha_list_scriptsB | List all scripts in Home Assistant |
| ha_create_scriptB | Create a new script in Home Assistant |
| ha_update_scriptC | Update an existing script's configuration |
| ha_delete_scriptC | Delete a script |
| ha_list_scenesA | List all scenes in Home Assistant |
| ha_create_sceneB | Create a new scene in Home Assistant |
| ha_update_sceneC | Update an existing scene's configuration |
| ha_delete_sceneC | Delete a scene |
| ha_list_helpersA | List all input helpers (input_boolean, input_number, input_text, input_select, input_datetime, input_button, counter, timer) |
| ha_create_helperB | Create a new input helper (input_boolean, input_number, input_text, input_select, input_datetime, input_button, counter, timer) |
| ha_update_helperB | Update an existing input helper's configuration |
| ha_delete_helperC | Delete an input helper |
| ha_list_addonsA | List all installed Home Assistant add-ons with their status |
| ha_addon_infoA | Get detailed information about a specific add-on |
| ha_install_addonA | Install a Home Assistant add-on by slug |
| ha_start_addonC | Start a Home Assistant add-on |
| ha_stop_addonB | Stop a running Home Assistant add-on |
| ha_restart_addonC | Restart a Home Assistant add-on |
| ha_uninstall_addonB | Uninstall a Home Assistant add-on |
| ha_addon_optionsB | Get or set configuration options for an add-on |
| ha_system_infoA | Get Home Assistant system information (core version, OS, supervisor, host info) |
| ha_check_configA | Validate the Home Assistant configuration. Run this before reloading to catch errors. |
| ha_create_backupC | Create a Home Assistant backup |
| ha_list_backupsB | List all Home Assistant backups |
| ha_restart_coreA | Restart the Home Assistant core. This will briefly make HA unavailable. |
| ha_check_apiA | Check if the Home Assistant API is accessible and responding |
| ha_get_configA | Get the Home Assistant configuration (location, unit system, version, components, etc.) |
| ha_update_core_configB | Update Home Assistant core configuration (internal_url, external_url, location, etc.) |
| ha_get_componentsA | List all currently loaded Home Assistant integrations/components |
| ha_get_error_logA | Get the Home Assistant error log contents |
| ha_get_statesB | Get the current state of all entities, optionally filtered by domain (e.g. 'light', 'switch', 'sensor') |
| ha_get_entityB | Get the full state and attributes of a specific entity |
| ha_call_serviceC | Call a Home Assistant service (e.g. turn on a light, lock a door, send a notification) |
| ha_list_servicesA | List all available services, optionally filtered by domain |
| ha_render_templateB | Render a Jinja2 template using Home Assistant's template engine |
| ha_list_entity_registryB | List all entities from the entity registry with their IDs, names, platforms, and areas |
| ha_list_devicesA | List all devices from the device registry |
| ha_list_areasB | List all areas (rooms) in Home Assistant |
| ha_create_areaB | Create a new area (room) in Home Assistant |
| ha_get_historyA | Get the state history for an entity over a time period |
| ha_get_logbookC | Get logbook entries (activity log) for a time period, optionally filtered by entity |
| ha_get_eventsA | List all available event types in Home Assistant |
| ha_fire_eventB | Fire a custom event in Home Assistant to trigger automations or integrations |
| ha_set_stateA | Set or create the state of an entity. Useful for creating virtual sensors or overriding states. |
| ha_delete_stateB | Delete an entity state from Home Assistant |
| ha_get_calendarsA | List all calendar entities in Home Assistant |
| ha_get_calendar_eventsC | Get events from a specific calendar entity |
| ha_handle_intentB | Handle a conversation/voice intent in Home Assistant (e.g. natural language commands) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jarahkon/hass-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server