deConz MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DECONZ_TLS | No | Set true to use HTTPS | false |
| DECONZ_HOST | Yes | IP or hostname of the deCONZ gateway | |
| DECONZ_PORT | No | HTTP port of the deCONZ gateway | 80 |
| MCP_BASE_URL | No | Public base URL (used as OAuth issuer URL) | |
| DECONZ_API_KEY | Yes | deCONZ REST API key | |
| MCP_AUTH_TOKEN | No | Bearer token clients must send to this MCP server (recommended for HTTP transports) |
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 |
|---|---|
| get_gateway_configA | Return the deCONZ gateway configuration (firmware, network, Zigbee channel, etc.). |
| set_permit_joinA | Open the Zigbee network so new devices can join. Args: duration: Seconds to allow joining (0–255). Use 0 to close immediately. Default is 60 seconds. |
| list_lightsA | List all lights known to the deCONZ gateway with their current state. |
| get_lightA | Get full details of a specific light including state, attributes, and capabilities. Args: light_id: Numeric light ID (use list_lights to discover IDs). |
| set_light_stateA | Control a light's power, brightness, colour, or effect. Args: light_id: Numeric light ID. on: True to turn on, False to turn off. brightness: Brightness 1–254 (only when on=true). hue: Hue 0–65535. saturation: Saturation 0–254. color_temp: Colour temperature in mireds (153–500; lower=cooler). xy: CIE xy colour as [x, y] (each 0.0–1.0). transition_time: Transition duration in 1/10ths of a second (default 4 = 0.4 s). alert: "none", "select" (single blink), or "lselect" (15-second blink cycle). effect: "none" or "colorloop". |
| rename_lightA | Rename a light. Args: light_id: Numeric light ID. name: New display name (max 32 characters). |
| delete_lightB | Remove a light from the gateway. Args: light_id: Numeric light ID to remove. |
| list_groupsA | List all light groups with their current action state. |
| get_groupA | Get full details of a light group including member lights and scenes. Args: group_id: Numeric group ID (use list_groups to discover IDs). |
| create_groupA | Create a new light group. Args: name: Display name for the group. light_ids: Optional list of light IDs to add initially (e.g. ["1", "3", "5"]). |
| set_group_actionA | Control all lights in a group simultaneously. Args: group_id: Numeric group ID. on: True to turn on, False to turn off. brightness: Brightness 1–254. hue: Hue 0–65535. saturation: Saturation 0–254. color_temp: Colour temperature in mireds (153–500). xy: CIE xy colour as [x, y]. transition_time: Transition duration in 1/10ths of a second. alert: "none", "select", or "lselect". effect: "none" or "colorloop". scene: Scene ID to recall (within this group). |
| modify_groupB | Rename a group or change its member lights. Args: group_id: Numeric group ID. name: New display name. light_ids: Complete new list of light IDs for this group. |
| delete_groupA | Delete a light group (lights remain, only the group is removed). Args: group_id: Numeric group ID to delete. |
| list_scenesA | List all scenes defined for a group. Args: group_id: Numeric group ID (use list_groups to discover IDs). |
| get_sceneB | Get details of a specific scene. Args: group_id: Numeric group ID. scene_id: Scene ID (use list_scenes to discover IDs). |
| create_sceneC | Create a new scene that captures the current state of all lights in the group. Args: group_id: Numeric group ID. name: Display name for the scene. |
| recall_sceneA | Activate (recall) a scene — all lights in the group transition to the saved state. Args: group_id: Numeric group ID. scene_id: Scene ID to activate. |
| store_sceneA | Overwrite a scene with the current state of all lights in the group. Args: group_id: Numeric group ID. scene_id: Scene ID to overwrite. |
| rename_sceneC | Rename a scene. Args: group_id: Numeric group ID. scene_id: Scene ID to rename. name: New display name. |
| delete_sceneC | Delete a scene. Args: group_id: Numeric group ID. scene_id: Scene ID to delete. |
| list_sensorsA | List all sensors (temperature, humidity, presence, switches, etc.) with current state. |
| get_sensorA | Get full details of a specific sensor including state, config, and capabilities. Args: sensor_id: Numeric sensor ID (use list_sensors to discover IDs). |
| rename_sensorB | Rename a sensor. Args: sensor_id: Numeric sensor ID. name: New display name. |
| set_sensor_configA | Update a sensor's configuration. Args: sensor_id: Numeric sensor ID. on: Enable or disable the sensor. reachable: Mark the sensor as reachable (admin override). battery: Battery level 0–100 (admin override for CLIP sensors). sensitivity: Motion sensitivity level (where supported). |
| delete_sensorA | Remove a sensor from the gateway. Args: sensor_id: Numeric sensor ID to remove. |
| list_rulesA | List all automation rules with their status and trigger conditions. |
| get_ruleA | Get full details of an automation rule including conditions and actions. Args: rule_id: Numeric rule ID (use list_rules to discover IDs). |
| create_ruleA | Create an automation rule triggered by sensor conditions. Args: name: Rule display name. conditions: List of condition objects, e.g.: [{"address": "/sensors/1/state/buttonevent", "operator": "eq", "value": "1002"}] actions: List of action objects, e.g.: [{"address": "/groups/1/action", "method": "PUT", "body": {"on": true}}] status: "enabled" or "disabled". Condition operators: eq, gt, lt, dx (changed), ddx (stable for duration), stable, not stable. |
| set_rule_statusA | Enable or disable an automation rule. Args: rule_id: Numeric rule ID. status: "enabled" or "disabled". |
| delete_ruleA | Delete an automation rule. Args: rule_id: Numeric rule ID to delete. |
| list_schedulesA | List all timed schedules with their next trigger time and status. |
| get_scheduleA | Get full details of a schedule including its command and timing. Args: schedule_id: Numeric schedule ID (use list_schedules to discover IDs). |
| create_scheduleA | Create a timed schedule that sends a command to the gateway. Args: name: Schedule display name. time: ISO 8601 time expression. Examples: "2025-12-31T23:00:00" — absolute UTC datetime "W127/T08:00:00" — weekly (Mon+Tue+Wed, 08:00) "PT01:00:00" — timer (1 hour from now) "R/PT01:00:00" — recurring timer every hour command_address: API path the schedule calls, e.g. "/api//groups/1/action". command_method: HTTP method: "PUT", "POST", or "DELETE". command_body: JSON body for the command, e.g. {"on": true}. description: Optional human-readable description. status: "enabled" or "disabled". autodelete: If true, the schedule is deleted after it fires once. |
| set_schedule_statusB | Enable or disable a schedule. Args: schedule_id: Numeric schedule ID. status: "enabled" or "disabled". |
| delete_scheduleC | Delete a schedule. Args: schedule_id: Numeric schedule ID to delete. |
| touchlink_scanA | Start a Touchlink scan to discover nearby Zigbee devices (takes ~10 seconds). After scanning, call get_touchlink_results to see discovered devices. |
| get_touchlink_resultsA | Return results from the last Touchlink scan. |
| touchlink_identifyA | Make a Touchlink device blink to identify itself. Args: touchlink_id: Device ID from get_touchlink_results. |
| touchlink_resetA | Factory-reset a Touchlink device (removes it from its current network). Args: touchlink_id: Device ID from get_touchlink_results. Warning: This resets the device to factory defaults and removes it from the gateway. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| home_overview | Summarise the current state of all Zigbee devices in the home. |
| control_lights | Help turn lights on/off and adjust brightness or colour. |
| manage_scenes | Create, recall, or update scenes to save and restore light atmospheres. |
| add_device | Walk through pairing a new Zigbee light, sensor, or switch. |
| setup_automation | Create a rule that triggers a light action based on a sensor event. |
| diagnose_device | Collect diagnostics for an unreachable or misbehaving Zigbee device. |
| evening_routine | Activate an evening scene and configure schedules to turn off lights at night. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_config | deCONZ gateway configuration as JSON. |
| resource_lights | All lights with current state as JSON. |
| resource_groups | All light groups with current action state as JSON. |
| resource_sensors | All sensors with current state as JSON. |
| resource_rules | All automation rules as JSON. |
| resource_schedules | All schedules as JSON. |
| resource_full_state | Complete gateway state — all lights, groups, sensors, schedules, rules and scenes as JSON. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/marcinn2/deConz-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server