Skip to main content
Glama
adrighem

Domoticz MCP Server

by adrighem

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DOMOTICZ_URLYesBase URL of your Domoticz instance
DOMOTICZ_MCP_HOSTNoHost to bind to for SSE/HTTP127.0.0.1
DOMOTICZ_MCP_PORTNoPort to bind to for SSE/HTTP8000
DOMOTICZ_PASSWORDNoYour Domoticz password for Basic Auth
DOMOTICZ_USERNAMENoYour Domoticz username for Basic Auth
DOMOTICZ_CLIENT_IDNoYour Application's Client ID for OAuth
DOMOTICZ_OAUTH_TOKENNoDirect OAuth2 access token (skips flow)
DOMOTICZ_CLIENT_SECRETNoYour Application's Client Secret for OAuth
DOMOTICZ_MCP_TRANSPORTNoTransport to use: stdio, sse, or streamable-httpstdio
DOMOTICZ_MCP_TOKEN_FILENoPath to OAuth token storage file~/.config/domoticz-mcp/token.json

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_overviewA

Get a high-level overview of the Domoticz system.

Args: detail_level: 'minimal' (default) for counts and summary, 'standard' for including a sample of devices.

get_system_healthC

Check the health of the Domoticz system and hardware gateways.

search_scriptsB

Search for a specific string inside event scripts (Lua, dzVents, Python, etc.).

get_all_devicesA

Get all devices and their current states from Domoticz.

search_devicesB

Search for devices by name or data (status). Returns a list of matching devices.

get_deviceB

Get a specific device state by IDX or Name from Domoticz.

toggle_switchA

Toggle a switch or light by IDX or Name. Prefer using IDX for precision.

set_switch_stateA

Set a switch or light to On or Off.

Args: state: Must be 'On' or 'Off'. idx: Device index. name: Device name (case-insensitive).

set_dimmer_levelA

Set the brightness level of a dimmer switch.

Args: level: Integer from 0 to 100. Note: 0 is Off, 100 is Full Brightness. idx: Device index. name: Device name.

set_temperature_setpointB

Set the temperature setpoint for a thermostat.

Args: setpoint: Target temperature in Celsius (e.g., 21.5). idx: Device index. name: Device name.

control_blindsB

Control blinds or covers.

Args: command: Must be 'Open', 'Close', or 'Stop'. idx: Device index. name: Device name.

get_scenesA

Get all scenes and groups from Domoticz.

switch_sceneA

Turn a scene or group On or Off by IDX or Name in Domoticz. command must be 'On', 'Off', or 'Toggle'. Scenes can only be turned 'On'.

get_roomsA

Get all rooms (Room Plans) from Domoticz.

get_room_devicesA

Get all devices and their current states in a specific room. Provide either idx or room_name.

get_user_variablesA

Get all user variables.

add_user_variableB

Add a new user variable.

vtype (Variable Type): 0: Integer 1: Float 2: String 3: Date (DD/MM/YYYY) 4: Time (HH:MM)

update_user_variableB

Update an existing user variable.

vtype (Variable Type): 0: Integer 1: Float 2: String 3: Date (DD/MM/YYYY) 4: Time (HH:MM)

delete_user_variableB

Delete a user variable by IDX or Name.

get_battery_levelsA

Get a list of devices with battery levels at or below the specified threshold.

Args: threshold: Battery percentage threshold (default: 20).

get_device_historyC

Get history log or graph for a device. sensor_type: 'light', 'text', 'temp', 'percentage', 'counter'. time_range (for graphs): 'day', 'month', 'year'.

get_system_statusA

Get the status of the Domoticz instance (version, build time, etc).

get_eventsB

Get overview of the internal event system scripts and rules.

get_eventB

Get the source code and details of a specific event script by ID.

create_eventA

Create a new event script in Domoticz.

Args: name: Name of the event script. interpreter: The language (e.g., 'Lua', 'Blockly', 'dzVents', 'Python'). event_type: Trigger type (e.g., 'All', 'Device', 'Security', 'Time', 'UserVariable'). xmlstatement: The source code (or XML for Blockly) of the script. eventstatus: '1' for enabled, '0' for disabled.

update_eventA

Update an existing event script in Domoticz.

Args: event_id: The ID of the event to update. name: Name of the event script. interpreter: The language (e.g., 'Lua', 'Blockly', 'dzVents', 'Python'). event_type: Trigger type (e.g., 'All', 'Device', 'Security', 'Time', 'UserVariable'). xmlstatement: The source code (or XML for Blockly) of the script. eventstatus: '1' for enabled, '0' for disabled.

get_hardwareA

Get all hardware/gateways configured in Domoticz.

get_settingsA

Get global Domoticz settings and configuration.

get_sun_timesB

Get sun times (sunrise, sunset, twilight) based on home coordinates.

get_camerasA

Get all configured cameras in Domoticz.

get_floorplansA

Get all configured floorplans in Domoticz.

get_usersB

Get all Domoticz user accounts.

set_color_brightnessA

Set color and brightness for an RGB light.

Args: hue: Color hue (0-360). brightness: Brightness level (0-100). idx: Device index. name: Device name. iswhite: Set to True for white mode (on supported hardware).

set_color_temperatureB

Set color temperature for a light.

Args: kelvin: Color temperature level (0-100). Note: 0 is warmest, 100 is coldest (standard Domoticz range). idx: Device index. name: Device name.

rename_deviceB

Rename a device by IDX or its old Name.

delete_deviceC

Delete (or hide) a device by IDX or Name.

create_virtual_sensorC

Create a virtual sensor.

hw_idx: IDX of the dummy hardware.

sensortype (Sensor Type): 1: Temperature 2: Humidity 3: Temp + Humidity 4: Barometer 5: Temp + Hum + Baro 6: Rain 7: UV 8: Wind 10: Lux 11: Voltage 12: Current 13: Distance 14: Text 15: Alert 17: Percentage 19: Counter 113: kWh (Energy)

update_device_valueC

Update a sensor/device value manually. nvalue is integer value, svalue is string value. Provide IDX or Name.

get_logA

Retrieve the main system log. lastlogtime is seconds since epoch, loglevel is bitmask.

add_log_messageA

Add a custom message to the Domoticz system log. level: 1=normal, 2=status, 4=error.

send_notificationC

Send a notification through Domoticz notification subsystems.

get_security_statusA

Get the current status of the security panel.

set_security_statusA

Set the security panel status. secstatus: 0=Disarm, 1=Arm Home, 2=Arm Away.

get_scene_devicesB

List all devices belonging to a specific scene/group by IDX or Name.

get_connectivity_reportB

Get a list of devices that haven't checked in/updated within the specified timeframe.

Args: hours: Number of hours threshold for considering a device 'unresponsive' (default: 24).

analyze_energy_usageA

Analyze all energy-reporting devices and summarize their 'Today' usage.

Prompts

Interactive templates invoked by user choice

NameDescription
agent_guidanceProvides the AI agent with critical knowledge about Domoticz-specific logic and best practices.
audit_batteriesPrompt to audit battery levels across all sensors.
find_devices_by_statePrompt to find all devices currently in a specific state (e.g., 'on', 'open', 'off').
maintenance_reportPrompt to provide a comprehensive maintenance and health report for the home.
troubleshoot_devicePrompt to help troubleshoot a specific Domoticz device by IDX or Name.
energy_auditPrompt to analyze energy usage across the home.
summarize_homePrompt to summarize the current state of the smart home.
analyze_automationsPrompt to analyze Domoticz event scripts for logic flaws.

Resources

Contextual data attached and managed by the client

NameDescription
get_error_logs_resourceRead only the 'Error' level entries from the Domoticz system log.
get_dashboard_resourceRead a curated view of favorite and currently active devices.
get_log_resourceRead the current Domoticz system log.
get_security_resourceRead the current status of the security panel.
get_all_devices_resourceRead the current state of all Domoticz devices.
get_rooms_resourceRead the list of all Domoticz rooms (Room Plans).
get_user_variables_resourceRead the list of all Domoticz user variables.
get_scenes_resourceRead the list of all Domoticz scenes and groups.
get_settings_resourceRead global Domoticz settings and configuration.
get_events_resourceRead the overview of the internal event system scripts and rules.

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/adrighem/domoticz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server