ha-nexus-agent
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HA_URL | Yes | Home Assistant URL | http://homeassistant.local:8123 |
| HA_TOKEN | Yes | Long-lived access token (required for standalone mode) | |
| NEXUS_PORT | No | HTTP server port | 7123 |
| NEXUS_API_KEY | No | Pin to a specific API key (auto-generated if not set) | |
| HA_CONFIG_PATH | No | Path to HA config directory (for git tools) | /config |
| SUPERVISOR_TOKEN | No | Auto-injected when running as Home Assistant add-on |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| entities_list_entitiesA | List all entities, optionally filtered by domain (light, switch, sensor…). |
| entities_get_entityB | Get full state and attributes of a single entity. |
| entities_turn_onB | Turn on an entity. Optional: brightness (0-255), color_temp (mireds), rgb_color ([r,g,b]). |
| entities_turn_offC | Turn off an entity. |
| entities_toggleA | Toggle an entity between on and off. |
| entities_set_valueC | Set value of input_number, number, or climate temperature. |
| entities_select_optionC | Select option for input_select or select entity. |
| entities_update_entity_nameC | Rename an entity in the entity registry. |
| entities_assign_entity_to_areaC | Assign an entity to an area. |
| entities_disable_entityC | Disable an entity in the registry. |
| entities_enable_entityB | Re-enable a disabled entity. |
| entities_list_entity_registryA | Get raw entity registry (includes disabled, hidden entities). |
| entities_bulk_controlA | Bulk turn_on/turn_off/toggle a list of entities. Groups entities by domain and issues one service call per domain
(e.g. all |
| entities_bulk_set_stateA | Bulk-write states using HA's set_state API. Each item must contain |
| entities_set_entity_exposureA | Expose or hide an entity to a voice assistant.
|
| entities_get_entity_exposureB | Get exposure flags for an entity across all voice assistants. |
| entities_list_exposed_entitiesA | List all entities exposed to a given voice assistant.
|
| services_call_serviceB | Call any Home Assistant service. E.g. domain='light', service='turn_on', data={'entity_id':'light.living_room','brightness':200}. |
| services_list_servicesB | List all available services, optionally filtered by domain. |
| services_fire_eventC | Fire a Home Assistant event. |
| services_render_templateB | Render a Jinja2 template string using HA template engine. Useful for testing templates before saving. |
| services_reload_configC | Reload configuration for a domain (automation, script, scene, input_boolean, etc.). |
| services_press_buttonC | Press a button entity. |
| services_set_cover_positionB | Set cover/blind/shutter position (0=closed, 100=open). |
| services_set_cover_tiltB | Set cover tilt position (0=closed, 100=open). |
| services_set_climate_modeB | Set climate HVAC mode (heat, cool, auto, off, fan_only, dry). |
| services_set_light_colorA | Set light color, color temperature and/or brightness. |
| services_media_play_pauseB | Toggle play/pause on a media player. |
| services_media_seekC | Seek media player to position (seconds). |
| services_set_volumeB | Set media player volume (0.0 to 1.0). |
| services_send_notificationC | Send a Home Assistant notification. target = notify service name (default: notify). |
| services_camera_snapshotA | Take a still snapshot from a camera entity.
|
| services_camera_recordB | Record a short clip from a camera entity to
|
| services_notify_persistent_createA | Create or replace a persistent notification in the HA UI. Provide |
| services_notify_persistent_dismissC | Dismiss a persistent notification by its |
| services_notify_persistent_dismiss_allA | Dismiss all persistent notifications. |
| automations_list_automationsA | List all automations with their current state. |
| automations_trigger_automationC | Manually trigger an automation. |
| automations_enable_automationC | Enable a disabled automation. |
| automations_disable_automationB | Disable an automation. |
| automations_reload_automationsA | Reload all automations from YAML. |
| automations_list_scriptsA | List all scripts. |
| automations_run_scriptC | Run a script, optionally with variables. |
| automations_reload_scriptsA | Reload all scripts from YAML. |
| automations_list_scenesB | List all scenes. |
| automations_activate_sceneC | Activate a scene. |
| automations_reload_scenesA | Reload scenes from YAML. |
| automations_get_automation_configA | Get an automation's YAML config as a dict. Accepts bare id or 'automation.'. Returns None if not found. |
| automations_set_automation_configA | Create or overwrite an automation YAML config (alias, trigger, action, condition, ...). Auto-reloads automations. |
| automations_delete_automationA | Delete an automation by id. Auto-reloads automations afterwards. |
| automations_get_script_configA | Get a script's YAML config as a dict. Accepts bare id or 'script.'. Returns None if not found. |
| automations_set_script_configA | Create or overwrite a script YAML config (sequence, fields, ...). Auto-reloads scripts. |
| automations_delete_scriptA | Delete a script by id. Auto-reloads scripts afterwards. |
| automations_list_automation_tracesA | List trace summaries (recent runs) for an automation. Accepts bare id or 'automation.'. |
| automations_get_automation_traceB | Get a full automation trace (steps, timing, condition results) for a specific run. |
| automations_list_script_tracesA | List trace summaries (recent runs) for a script. Accepts bare id or 'script.'. |
| automations_get_script_traceC | Get a full script trace (steps, timing, action results) for a specific run. |
| areas_list_areasA | List all areas (rooms) in Home Assistant. |
| areas_create_areaC | Create a new area. |
| areas_delete_areaB | Delete an area by its area_id. |
| areas_list_floorsB | List all floors. |
| areas_list_devicesC | List all devices in the device registry. |
| areas_get_area_entitiesB | Get all entities belonging to an area. |
| areas_get_area_statesC | Get current states of all entities in an area. |
| areas_control_areaB | Turn on/off/toggle all entities of a domain in an area. action: 'turn_on' | 'turn_off' | 'toggle' |
| history_get_state_historyB | Get state history for an entity over the last N hours. |
| history_get_logbookC | Get logbook entries, optionally filtered by entity_id. |
| history_get_error_logB | Fetch the Home Assistant error log. |
| history_get_system_infoA | Get Home Assistant system/version info. |
| history_get_ha_configA | Get current Home Assistant configuration (location, units, version, components). |
| helpers_list_helpersA | List all helper entities (input_boolean, input_number, input_select, counter, timer…). |
| helpers_set_input_booleanC | Set input_boolean to true or false. |
| helpers_set_input_numberC | Set an input_number value. |
| helpers_set_input_textC | Set an input_text value. |
| helpers_set_input_selectC | Set an input_select to a specific option. |
| helpers_set_input_datetimeB | Set input_datetime. Provide date (YYYY-MM-DD), time (HH:MM:SS) or datetime (YYYY-MM-DD HH:MM:SS). |
| helpers_increment_counterC | Increment a counter helper. |
| helpers_reset_counterB | Reset a counter helper to 0. |
| helpers_start_timerA | Start a timer. duration format: HH:MM:SS or number of seconds. |
| helpers_cancel_timerC | Cancel a running timer. |
| helpers_reload_helpersA | Reload all helper entities from configuration. |
| system_check_configA | Validate Home Assistant configuration before restart. |
| system_restart_haA | Restart Home Assistant. WARNING: causes ~30s downtime. |
| system_stop_haA | Stop Home Assistant. WARNING: requires manual restart. |
| system_reload_allA | Reload core configuration (automations, scripts, scenes, groups, etc.). |
| system_create_backupB | Create a full Home Assistant backup. |
| system_list_integrationsA | List all loaded integrations (config entries). |
| system_reload_integrationC | Reload a specific integration config entry. |
| system_ping_haA | Check if Home Assistant is reachable. |
| system_get_all_integrationsB | Get all active config entries (integrations, their state and domain). |
| dashboards_list_dashboardsA | List all Lovelace dashboards. |
| dashboards_get_dashboard_configA | Get Lovelace dashboard config. |
| dashboards_save_dashboard_configA | Save Lovelace dashboard config. Overwrites existing config. Use get_dashboard_config first, then modify and save. |
| dashboards_get_dashboard_resourcesA | Get Lovelace resources (custom cards, CSS). |
| dashboards_add_card_to_viewB | Add a card to a specific view in a dashboard. Example card_config: {'type': 'entities', 'entities': ['light.living_room']} |
| dashboards_add_view_to_dashboardC | Add a new view to a dashboard. Example view_config: {'title': 'Bedroom', 'icon': 'mdi:bed', 'cards': []} |
| files_read_config_fileA | Read a config file relative to HA config dir. E.g. 'automations.yaml' or 'packages/lights.yaml'. |
| files_write_config_fileB | Write content to a config file. Validates YAML syntax before saving (set validate_yaml=False to skip). Creates parent directories as needed. |
| files_list_config_filesB | List files in the HA config directory (or a subdirectory). |
| files_validate_yaml_contentA | Validate YAML content without saving. Returns parsed result or error. |
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
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/Fistacho/ha-nexus-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server