shelly-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHELLY_CLOUD_AUTH_KEY | No | Auth key for Shelly Cloud (optional, for cloud fallback) |
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 |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| shelly_switch_setA | Turn a switch/relay channel on or off (optionally auto-revert after N seconds). Returns the post-action |
| shelly_switch_toggleB | Toggle a switch/relay channel. Returns the post-action |
| shelly_light_setA | Set a light/dimmer/RGB(W)/CCT channel (Gen1 /color,/light ↔ Gen2 Light/RGB/RGBW/CCT.Set). Only the provided fields are changed. |
| shelly_cover_moveA | Move a roller/cover: Returns the post-action |
| shelly_energy_liveA | Live power/energy per channel: power_w, voltage, current, pf, freq, totals.
|
| shelly_energy_historyA | Best-effort energy history: lifetime totals plus any per-minute series the device exposes in its status; notes when richer history needs a local connection. Detailed historical queries (Pro 3EM |
| shelly_rpcA | Call any read-only RPC method ( Mutating methods are refused here — use |
| shelly_rpc_writeA | Call any mutating RPC method. Requires Read methods are rejected (use |
| shelly_list_methodsA | List the RPC methods a device supports (Gen2+ Returns an actionable error on Gen1/cloud where the device can't enumerate methods. |
| shelly_kvs_listA | List KVS keys (with their etags). |
| shelly_kvs_getB | Get one KVS value (with its etag) by key. |
| shelly_kvs_setA | Set a KVS key to a JSON value. Audit-logged. |
| shelly_kvs_deleteA | Delete a KVS key. Requires |
| shelly_versionA | Return the shelly-mcp server version (health check). |
| shelly_discoverA | Discover Shelly devices on the LAN via mDNS, merged with the cloud account list.
|
| shelly_list_devicesA | List every Shelly device known to this server (configured + cloud account). Safe, read-only. Returns each device's canonical identity (id, name, generation, model, online state) — the starting point before any status or control call. |
| shelly_get_infoA | Identify one device (generation, model, firmware, online state, capabilities).
|
| shelly_get_statusA | Get a device's normalized live status (Gen1/Gen2/Cloud folded into one shape). Returns canonical channels/lights/covers plus the raw per-generation payload. Pass
|
| shelly_list_componentsA | List the component keys present on a device (e.g. ['switch:0', 'input:0']). Safe, read-only. Use this to discover what a specific device exposes before reading status or controlling it. |
| shelly_get_configB | Get a device's configuration, with credential fields masked as |
| shelly_scene_listA | List defined scenes (name, description, action count). Read-only. |
| shelly_scene_getB | Show a scene's full definition (its ordered actions). Read-only. |
| shelly_scene_createA | Define (save) a named scene from an ordered list of Every method must be a non-destructive mutating method; every device must be known.
Fails if the name already exists unless |
| shelly_scene_runA | Run a named scene: attempt every action in order, report per-action results. Best-effort and sequential — a failing action does not abort the rest. |
| shelly_scene_deleteA | Delete a named scene. Requires |
| shelly_schedule_listA | List the schedules configured on a device. Local-only (cloud can't manage schedules). |
| shelly_schedule_createA | Create a schedule: Validates the timespec, the ≤20-per-device limit, and each call's method. Audit-logged. |
| shelly_schedule_updateC | Update fields of an existing schedule by |
| shelly_schedule_deleteA | Delete a schedule by |
| shelly_script_listA | List scripts on a device (id, name, enable, running). Local-only. |
| shelly_script_get_codeA | Get a script's full source, reassembling the device's paginated |
| shelly_script_createB | Create an empty script (optionally named). Returns its Use |
| shelly_script_put_codeA | Upload code into a script (chunked). Arbitrary code on the device →
|
| shelly_script_startB | Start a script by |
| shelly_script_stopB | Stop a script by |
| shelly_script_evalA | Evaluate an expression inside a running script. Arbitrary code → Returns the stringified result. Audit-logged. |
| shelly_script_deleteA | Delete a script by |
| shelly_system_rebootB | Reboot a device. Requires |
| shelly_system_updateA | Trigger a firmware update ( |
| shelly_system_set_authA | Enable/rotate the device login password (≥12 chars). Requires The password is write-only — never returned, and redacted in the audit log. |
| shelly_virtual_listB | List the device's virtual (dynamic) components via |
| shelly_virtual_addA | Add a virtual component of Optional |
| shelly_virtual_deleteA | Delete a virtual component by |
| shelly_webhook_listB | List webhooks configured on a device. Local-only. |
| shelly_webhook_createA | Create a webhook: Optional |
| shelly_webhook_updateB | Update fields of an existing webhook by |
| shelly_webhook_deleteA | Delete a webhook by |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| shelly_evening_scene | Workflow: dim configured lights to warm-white and turn plugs off for the evening. |
| shelly_energy_report | Workflow: summarize today's power/energy across the fleet. |
| shelly_diagnose | Workflow: health-check every device (online, firmware, error fields). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| devices_resource | The current device fleet (identities + online state) as ambient context. |
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/Buggy1111/shelly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server