Domoticz MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOMOTICZ_URL | Yes | Base URL of your Domoticz instance | |
| DOMOTICZ_MCP_HOST | No | Host to bind to for SSE/HTTP | 127.0.0.1 |
| DOMOTICZ_MCP_PORT | No | Port to bind to for SSE/HTTP | 8000 |
| DOMOTICZ_PASSWORD | No | Your Domoticz password for Basic Auth | |
| DOMOTICZ_USERNAME | No | Your Domoticz username for Basic Auth | |
| DOMOTICZ_CLIENT_ID | No | Your Application's Client ID for OAuth | |
| DOMOTICZ_OAUTH_TOKEN | No | Direct OAuth2 access token (skips flow) | |
| DOMOTICZ_CLIENT_SECRET | No | Your Application's Client Secret for OAuth | |
| DOMOTICZ_MCP_TRANSPORT | No | Transport to use: stdio, sse, or streamable-http | stdio |
| DOMOTICZ_MCP_TOKEN_FILE | No | Path to OAuth token storage file | ~/.config/domoticz-mcp/token.json |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_oauth_loginA | Start or reuse a bounded login in a local browser, then poll get_oauth_login_status. |
| get_oauth_login_statusA | Check a browser login. Retry the original operation only after status is complete. |
| search_scripts_toolC | Search string in scripts. Cross-ref: |
| search_devices_toolA | Search devices by name/status. Cross-ref: |
| get_daily_energy_historyA | Read today's counter history. Preferred: |
| get_weekly_energy_historyA | Read the last 7 days of counter history. Preferred: |
| get_monthly_energy_historyA | Read this month's counter history. Preferred: |
| toggle_switchC | Toggle device. Preferred: |
| set_switch_stateA | Set 'On'/'Off'. Preferred: |
| get_switch_actionsA | Get On Action and Off Action URLs or scripts for a switch. Preferred: |
| set_switch_actionsA | Configure switch On Action and Off Action URLs or scripts. Preferred: |
| set_dimmer_levelB | Set brightness (0-100). Preferred: |
| set_temperature_setpointC | Set target temp. Preferred: |
| control_blindsC | 'Open'/'Close'/'Stop'. Preferred: |
| switch_sceneB | Activate scene. 'On'/'Off'/'Toggle'. Preferred: |
| add_user_variableB | Add var. vtype: 0=Int, 1=Float, 2=Str, 3=Date, 4=Time. Cross-ref: |
| update_user_variableC | Update var value. Cross-ref: |
| delete_user_variableA | Delete var. Preferred: |
| create_eventB | Create script. Cross-ref: |
| update_eventC | Update script. Cross-ref: |
| call_domoticz_apiA | Raw API call. Use if dedicated tools fail. Requires |
| restart_systemA | Reboot server. Requires |
| rename_deviceB | Rename device. Preferred: |
| delete_deviceA | Hide device. Preferred: |
| create_virtual_sensorC | Create dummy. Cross-ref: |
| update_device_valueC | Manual update. Preferred: |
| add_log_messageB | Log message. level: 1=Normal, 2=Status, 4=Error. Cross-ref: |
| send_notificationD | Send notification. |
| set_security_statusA | Arm panel. 0=Disarm, 1=Home, 2=Away. Requires |
| set_color_brightnessC | Set RGB. Preferred: |
| set_color_temperatureA | Set normalized white temperature (0-100). Preferred: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| agent_guidance | Expert rules. ORIENTATION: Read `domoticz://overview`. |
| maintenance_report | Health summary. Cross-refs: `domoticz://health`, `domoticz://battery-alerts`, `domoticz://logs/error`. |
| summarize_home | State summary. Cross-ref: `domoticz://dashboard`. |
| energy_audit | Usage analysis. Cross-ref: `domoticz://devices`. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_overview_resource | Orientation: system version, hardware, and device counts. |
| get_system_health_resource | Troubleshooting: hardware health and unresponsive devices. |
| get_all_devices_resource | Large output: state of all Domoticz devices. |
| get_scenes_resource | List: configured scenes and groups. |
| get_rooms_resource | List: Room Plans (logical groupings). |
| get_user_variables_resource | System: current values of user-defined variables. |
| get_battery_levels_resource | Maintenance: devices with <= 20% battery. |
| get_events_resource | Overview: internal event system scripts. |
| get_hardware_resource | System: configured hardware gateways. |
| get_dashboard_resource | Curated: favorite and active devices status. |
| get_log_resource | Debug: recent system logs. |
| get_log_alias_resource | Alias: recent system logs. |
| get_error_logs_resource | Debug: only 'Error' level log entries. |
| get_security_resource | Status: security panel arming state. |
| get_settings_resource | Config: global system settings. |
| get_dzvents_docs | Rules: dzVents automation syntax. |
| get_blockly_docs | Rules: Blockly XML representation. |
TDQS
Scored across 31 tools
Most tools have clearly distinct targets and actions, and the descriptions cross-reference each other where confusion could occur. A few close pairs like toggle_switch/set_switch_state and set_switch_state/set_switch_actions require careful reading, but they are not fundamentally ambiguous.
The dominant convention is snake_case verb_noun names such as get_daily_energy_history, add_user_variable, and update_event. The pattern is mostly predictable, but the _tool suffix on search_scripts_tool and search_devices_tool is an unnecessary deviation, and a few names like switch_scene are slightly awkward.
31 tools is above the 25-tool threshold and makes the surface heavy for an agent to select from reliably. Several related tools could reasonably be consolidated, such as the energy history variants or the overlapping switch-control tools, though the breadth is understandable for a home-automation server.
The tool set covers switches, scenes, energy history, user variables, events, security, notifications, and system administration, but noticeable lifecycle gaps exist, such as create/update events without a delete event and no explicit get/list device endpoint beyond search. The raw call_domoticz_api fallback helps, but it is not a clean substitute for dedicated read and delete operations.