Home Assistant Light MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HA_URL | Yes | The URL of your Home Assistant instance (e.g., http://your-home-assistant-ip:8123) | |
| HA_TOKEN | Yes | Your Home Assistant 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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scene_configureA | Configure the Home Assistant connection for the Scene MCP server. Required before using other scene_ tools if not already configured via environment variables. |
| scene_show_lightsA | SAFE read-only tool. Shows ALL Home Assistant lights with FULL details. Does NOT change anything. Use this to answer questions about light states, colors, brightness. Returns: state (on/off), brightness_pct, color_mode ('color_temp' for white light, 'rgb'/'hs'/'xy' for colored light), color_temp_kelvin (for white mode), rgb_color (for color mode). IMPORTANT: When color_mode is 'color_temp', the light is in WHITE mode - do NOT report RGB values as those are just approximations. |
| scene_adjust_lightA | PREFERRED for controlling lights. Turn on/off, set brightness (0-100%), RGB color, color temperature (Kelvin), or effects. IMPORTANT: This only changes the light's current state - it does NOT save to any scene. REQUIRES user_confirmed=true - user must explicitly request the change. |
| scene_createA | Create a NEW scene in Home Assistant. ONLY call when user EXPLICITLY asks to create/save a NEW scene. Before calling: 1) Show current lights with scene_show_lights, 2) Ask user for mode: 'exclusive' or 'additive'. Do NOT call this to update existing scenes - use scene_update for that. |
| scene_listB | List all scenes from Home Assistant |
| scene_activateA | Activate a scene in Home Assistant. REQUIRES user_confirmed=true - user must explicitly request scene activation. |
| scene_deleteC | Delete a scene from Home Assistant |
| scene_updateA | Update an existing scene with current light states. ONLY call this when user EXPLICITLY asks to save/update a scene. Do NOT call automatically after adjusting lights. For exclusive mode: captures ALL lights (on lights with settings, off lights as 'off'). |
| scene_blackoutA | Turn off ALL lights. Optionally create/update a 'Blackout' scene. REQUIRES user_confirmed=true - user must explicitly request blackout. |
| scene_diagnoseA | Diagnose lights and scenes. Tests connectivity, response times, identifies problems with scenes (null values, missing lights, etc.), and provides recommendations. If test_connectivity=true, REQUIRES user_confirmed=true because it toggles lights. |
| scene_fixA | Fix problems found by scene_diagnose. Can fix null values, add missing lights to exclusive scenes, restore from backup, or interactively test and fix a specific scene. test_scene action REQUIRES user_confirmed=true because it changes lights. |
| scene_syncA | Sync local backup with Home Assistant. Fetches all scenes from HA and updates local backup to match. Useful for ensuring backup is current before making changes. |
| scene_historyB | View history of scene changes (snapshots). Shows what the scene looked like before recent updates or deletions. Useful for debugging or understanding what changed. |
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 13 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, scene_activate activates scenes, scene_adjust_light controls lights, scene_create makes new scenes, and scene_update modifies existing ones. The descriptions explicitly differentiate overlapping concepts, such as scene_adjust_light for temporary changes versus scene_create/scene_update for permanent scene storage.
All tools follow a consistent 'scene_' prefix with descriptive snake_case names, such as scene_list, scene_create, and scene_diagnose. This pattern is maintained across all 13 tools, making them predictable and easy to identify by function, with no deviations in naming style.
With 13 tools, the set is well-scoped for managing Home Assistant scenes and lights, covering operations like listing, creating, updating, deleting, diagnosing, and syncing. Each tool serves a specific role in the workflow, from configuration (scene_configure) to detailed diagnostics (scene_diagnose), without feeling excessive or insufficient.
The tool surface provides complete CRUD and lifecycle coverage for scenes and lights, including creation, listing, updating, deletion, activation, and diagnostics. It also handles edge cases like backups (scene_sync), history (scene_history), and safe read-only operations (scene_show_lights), leaving no obvious gaps for agent interactions in this domain.