Local-first MCP server for Shelly smart-home devices (Gen1-Gen4): control, energy, automation.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
mcp-name: io.github.Buggy1111/shelly-mcp
MCP server for the entire Shelly smart-home ecosystem β read, control, and automate Shelly devices of every generation (Gen1 β Gen4; BLU via its gateway or the generic RPC engine, dedicated BLU tools are on the roadmap) from any MCP client (Claude Desktop, Claude Code, Cursor, β¦). Local-first (zero rate-limit, ~10 ms, full API), with cloud fallback for off-LAN access.
β οΈ Unofficial community project. Not affiliated with, endorsed by, or sponsored by Allterco Robotics / Shelly. "Shelly" is a trademark of its respective owner.
π§ Alpha / in development. See
docs/for the full design.
The only existing Shelly MCP servers are cloud-only and minimal. shelly-mcp unifies Gen1 and Gen2+ behind one tool surface, covers energy monitoring and automation (schedules, scripts, webhooks, KVS), and auto-discovers any device's capabilities β including hardware released after this server was written.
Register in your MCP client:
Auto-discovery (mDNS) finds devices on your local subnet β shelly_discover and you're running. For named devices ("turn off the kitchen"), devices on other subnets, passwords, or the cloud fallback, create ~/.config/shelly-mcp/config.yaml (chmod 600):
Full reference: config.example.yaml and docs/04-CONFIG-AND-DEPLOY.md.
None, beyond the calls to your own Shelly devices (on your LAN) and β only if you enable it β your own Shelly Cloud account. No telemetry, no phone-home.
| Local | Cloud | |
|---|---|---|
| Discovery, status, control | β | β οΈ control + status only |
| Energy live + history | β | β οΈ live only |
| Automation (schedules/scripts/webhooks/KVS) | β | β |
Read (safe): shelly_version Β· shelly_discover Β· shelly_list_devices Β· shelly_get_info Β· shelly_get_status (normalized) Β· shelly_get_config (credentials masked) Β· shelly_list_components Β· shelly_list_methods
Control (audited): shelly_switch_set Β· shelly_switch_toggle Β· shelly_light_set (RGBW/CCT/white) Β· shelly_cover_move
Energy: shelly_energy_live Β· shelly_energy_history
Generic engine (total coverage): shelly_rpc (read-only) Β· shelly_rpc_write (mutations, confirm:true + data-loss double-gate)
System / schedules (gated): shelly_system_reboot|update|set_auth Β· shelly_schedule_list|create|update|delete
Automation (Gen2+ local-only): shelly_kvs_* (key-value store) Β· shelly_webhook_* (eventβHTTP) Β· shelly_script_* (on-device JS β list/get_code/create/put_code/start/stop/eval/delete, chunked upload) Β· shelly_virtual_* (virtual components). Deletes + arbitrary-code paths (script_put_code/eval) are confirm:true-gated.
Scenes (deterministic, named): shelly_scene_list|get|run|create|delete β define a multi-device routine once and run it by name (shelly_scene_run "film"), identical every time and schedulable from any client. Stored in ~/.config/shelly-mcp/scenes.yaml (see scenes.example.yaml); scenes and schedules accept only plain control methods (Switch/Light/RGB(W)/CCT/Cover) β never Script.Eval, SetAuth, or anything destructive (ADR-007, docs/06-SCENES.md).
Resources: shelly://devices, shelly://device/{name}/status β Prompts: shelly_evening_scene, shelly_energy_report, shelly_diagnose
Safety: reads are
readOnlyHint; every mutation is audit-logged; the generic write tool and destructive system tools require explicitconfirm:true, and irreversible methods (factory reset, wipe-all) need a secondi_understand_data_lossgate β so even a hijacked LLM can't silently destroy a device.
shelly_discover, your router's client list, or the Shelly app β device β Settings β Device information), and that the machine running the server is on the same LAN. In WSL/containers, mDNS discovery usually doesn't work β configure devices by ip in the config file instead (that path needs no mDNS).password: under the device in the config (or SHELLY_PW_<name> env var).chmod 600 (deliberate, fail-closed).Full design in docs/ (indexed): overview, architecture (+ADRs), tool surface, security, scenes, config/deploy, build plan, project log, roadmap, the launch runbook, and the complete Shelly API catalog.
MIT β see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/shelly-smart-home)<a href="https://allmcps.com/mcp/shelly-smart-home"><img src="https://allmcps.com/api/badge/shelly-smart-home?style=directory" alt="Shelly Smart Home on AllMCPs" /></a>