ha-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HASS_URL | No | Base URL of your Home Assistant instance | http://localhost:8123 |
| HASS_TOKEN | Yes | A long-lived access token |
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_get_statesA | List Home Assistant entity states. Optionally filter by domain (e.g. 'light', 'sensor') and/or area (room name or area_id). |
| ha_get_entityB | Get the full state and attributes of one entity by entity_id (e.g. 'light.kitchen_lights'). |
| ha_call_serviceB | Call any Home Assistant service. Examples: light.turn_on, climate.set_temperature, automation.trigger, scene.turn_on, media_player.play_media. Pass extra params (brightness, temperature, etc.) in |
| ha_get_historyA | Get state-change history for an entity over the last N hours (default 24). |
| ha_render_templateB | Render a Home Assistant Jinja2 template and return the result. Example: "{{ states('sensor.outside_temperature') }}". |
| ha_get_configA | Get Home Assistant configuration: version, location, unit system, time zone, loaded components. |
| ha_get_error_logA | Get the Home Assistant error log (plain text) for troubleshooting. |
| ha_list_areasA | List all areas/rooms defined in Home Assistant. |
| ha_get_entities_by_areaA | List the entity_ids in a given area/room (by name or area_id), resolving device→area inheritance. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: service calls, configuration retrieval, entity queries by area or ID, error logs, history, state listing, area listing, and template rendering. No overlap in functionality.
All tools follow a consistent 'ha_{verb}_{noun}' pattern with underscores, using verbs like 'call', 'get', 'list', and 'render'. The prefix 'ha_' identifies the server, and naming is predictable.
With 9 tools covering essential Home Assistant operations (service calls, state queries, configuration, history, error logs, areas, and template rendering), the count is well-scoped for an MCP server without being excessive.
The tool set covers core Home Assistant interactions: calling any service, retrieving states, config, history, error logs, and area information. The inclusion of template rendering adds flexibility. No obvious gaps for common tasks.