Shelly Smart Home
Local-first MCP server for Shelly smart-home devices (Gen1-Gen4): control, energy, automation.
Connector by Buggy1111 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/buggy1111-shelly-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 20 read · 15 write · 12 delete
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 47
Read from the source code; the running server may list different tools.
Read 20 · Look things up without changing anything.
shelly_discovershelly_energy_historyshelly_energy_liveshelly_get_configshelly_get_infoshelly_get_statusshelly_kvs_getshelly_kvs_listshelly_list_componentsshelly_list_devicesshelly_list_methodsshelly_rpc
Show 8 more tools
shelly_scene_getshelly_scene_listshelly_schedule_listshelly_script_get_codeshelly_script_listshelly_versionshelly_virtual_listshelly_webhook_list
Write 15 · Create, change, send or run things.
shelly_cover_moveshelly_kvs_setshelly_light_setshelly_scene_createshelly_scene_runshelly_schedule_createshelly_schedule_updateshelly_script_createshelly_script_startshelly_script_stopshelly_switch_setshelly_switch_toggle
Show 3 more tools
shelly_virtual_addshelly_webhook_createshelly_webhook_update
Delete 12 · Delete, drop, revoke or wipe things.
shelly_kvs_deleteshelly_rpc_writeshelly_scene_deleteshelly_schedule_deleteshelly_script_deleteshelly_script_evalshelly_script_put_codeshelly_system_rebootshelly_system_set_authshelly_system_updateshelly_virtual_deleteshelly_webhook_delete
Tools (47)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
shelly_cover_moveMove a roller/cover: ``action`` is open|close|stop, or pass ``position`` (0-100) to go to it. Returns the post-action ``CoverState``. Audit-logged.
shelly_discoverread-onlyDiscover Shelly devices on the LAN via mDNS, merged with the cloud account list. ``timeout_s`` is the mDNS browse window. Set ``use_cloud=false`` to skip the cloud list (LAN-only). Safe, read-only; returns lightweight identities (probe for detail).
shelly_energy_historyread-onlyBest-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 ``EMData``/CSV, Gen1 ``em_data.csv``) land with the local backends (M2) — over cloud only totals + recent by-minute are available.
shelly_energy_liveread-onlyLive power/energy per channel: power_w, voltage, current, pf, freq, totals. ``None`` where a device can't report it (e.g. Gen1 plugs have no voltage/current). Pass ``channel`` to narrow to one. Safe, read-only.
shelly_get_configread-onlyGet a device's configuration, with credential fields masked as ``***`` (Gen1 ``/settings`` returns Wi-Fi/MQTT secrets in the clear — they must not reach the model). Local-first — the Shelly Cloud API can't expose config, so this returns an actionable error for cloud-only devices.
shelly_get_inforead-onlyIdentify one device (generation, model, firmware, online state, capabilities). ``device`` is a device id or a configured name. Safe, read-only.
shelly_get_statusread-onlyGet 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 ``component`` (e.g. ``"switch:0"``) to narrow to a single component. Safe, read-only.
shelly_kvs_deletecan change or delete dataDelete a KVS key. Requires ``confirm:true``. Audit-logged.
shelly_kvs_getread-onlyGet one KVS value (with its etag) by key.
shelly_kvs_listread-onlyList KVS keys (with their etags). ``match`` is a wildcard pattern (default all).
shelly_kvs_setSet a KVS key to a JSON value. Audit-logged.
shelly_light_setSet a light/dimmer/RGB(W)/CCT channel (Gen1 /color,/light ↔ Gen2 Light/RGB/RGBW/CCT.Set). Only the provided fields are changed. ``brightness`` 0-100, ``rgb`` three 0-255 values, ``temp_k`` white colour temperature. Returns the post-action ``LightState``. Audit-logged.
shelly_list_componentsread-onlyList 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_list_devicesread-onlyList 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_list_methodsread-onlyList the RPC methods a device supports (Gen2+ ``Shelly.ListMethods``). Returns an actionable error on Gen1/cloud where the device can't enumerate methods.
Show 32 more tools
shelly_rpcread-onlyCall any **read-only** RPC method (``*.Get*``/``*.List*``/``*.Check*``) on a device. Mutating methods are refused here — use ``shelly_rpc_write``. The method name is classified server-side; unknown methods are treated as writes and rejected.
shelly_rpc_writecan change or delete dataCall any **mutating** RPC method. Requires ``confirm:true``; audit-logged. Read methods are rejected (use ``shelly_rpc``). Destructive methods (factory reset, wipe-all, reset-wifi) need a second gate: ``params.i_understand_data_loss = true``.
shelly_scene_createDefine (save) a named scene from an ordered list of ``{device, method, params}``. Every method must be a non-destructive mutating method; every device must be known. Fails if the name already exists unless ``overwrite=true``. Prefer absolute ``Set`` methods over ``Toggle`` so the scene is safe to run twice (you'll get a warning otherwise).
shelly_scene_deletecan change or delete dataDelete a named scene. Requires ``confirm:true``.
shelly_scene_getread-onlyShow a scene's full definition (its ordered actions). Read-only.
shelly_scene_listread-onlyList defined scenes (name, description, action count). Read-only.
shelly_scene_runRun a named scene: attempt every action in order, report per-action results. Best-effort and sequential — a failing action does **not** abort the rest. ``status`` is ``ok`` (all succeeded), ``partial`` (some failed), or ``failed`` (none succeeded). A partial run can simply be re-run later to finish it (scenes use absolute states, so re-running is safe). Every action is audit-logged.
shelly_schedule_createCreate a schedule: ``timespec`` + ``calls`` (1-5 × {method, params}). ``timespec``: cron ``"sec min hour day month dow"`` (e.g. ``"0 0 22 * * MON-THU"``; 5 or 7 fields also accepted), a shorthand (``@daily``), or sun-relative ``"@sunset"``, ``"@sunset+30m"``, ``"@sunrise-1h * * MON-FRI"`` (offset max ±12 h; the device needs its location set). Validates the timespec, ≤5 calls, the ≤20-per-device limit, and each call's method. Audit-logged.
shelly_schedule_deletecan change or delete dataDelete a schedule by ``id``. Requires ``confirm:true``. Audit-logged.
shelly_schedule_listread-onlyList the schedules configured on a device. Local-only (cloud can't manage schedules).
shelly_schedule_updateUpdate fields of an existing schedule by ``id``. Audit-logged.
shelly_script_createCreate an empty script (optionally named). Returns its ``id``. Audit-logged. Use ``shelly_script_put_code`` to give it code (that step is confirm-gated).
shelly_script_deletecan change or delete dataDelete a script by ``id``. Requires ``confirm:true``. Audit-logged.
shelly_script_evalcan change or delete dataEvaluate an expression inside a running script. **Arbitrary code** → ``confirm:true``. Returns the stringified result. Audit-logged.
shelly_script_get_coderead-onlyGet a script's full source, reassembling the device's paginated ``GetCode``.
shelly_script_listread-onlyList scripts on a device (id, name, enable, running). Local-only.
shelly_script_put_codecan change or delete dataUpload code into a script (chunked). **Arbitrary code on the device** → ``confirm:true``. ``append=false`` replaces the script body; ``true`` appends. Large code is split into ≤1 KB chunks automatically. Audit-logged.
shelly_script_startStart a script by ``id``. Returns ``was_running``. Audit-logged.
shelly_script_stopStop a script by ``id``. Returns ``was_running``. Audit-logged.
shelly_switch_setTurn a switch/relay channel on or off (optionally auto-revert after N seconds). Returns the post-action ``ChannelState``. Audit-logged.
shelly_switch_toggleToggle a switch/relay channel. Returns the post-action ``ChannelState``. Audit-logged.
shelly_system_rebootcan change or delete dataReboot a device. Requires ``confirm:true``. Audit-logged.
shelly_system_set_authcan change or delete dataEnable/rotate the device login password (≥12 chars). Requires ``confirm:true``. The password is write-only — never returned, and redacted in the audit log.
shelly_system_updatecan change or delete dataTrigger a firmware update (``channel`` = stable|beta). Requires ``confirm:true``.
shelly_versionReturn the shelly-mcp server version (health check).
shelly_virtual_addAdd a virtual component of ``type`` (boolean/number/text/enum/button/group). Optional ``config`` and ``id`` (200-299). Returns the new component id. Audit-logged.
shelly_virtual_deletecan change or delete dataDelete a virtual component by ``key`` (``<type>:<cid>``). Requires ``confirm:true``.
shelly_virtual_listread-onlyList the device's virtual (dynamic) components via ``Shelly.GetComponents``.
shelly_webhook_createCreate a webhook: ``event`` (e.g. 'switch.on'), ``cid`` component id, ``urls`` 1-5. Optional ``condition`` (JS expression) and ``repeat_period`` (seconds; 0=always, negative=once). Audit-logged.
shelly_webhook_deletecan change or delete dataDelete a webhook by ``id``. Requires ``confirm:true``. Audit-logged.
shelly_webhook_listread-onlyList webhooks configured on a device. Local-only.
shelly_webhook_updateUpdate fields of an existing webhook by ``id``. Audit-logged.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 62
- Last commit
- Oct 15, 2026 (13 days ago)
- Last release
- Oct 16, 2026 (12 days ago)
- Last package publish
- Oct 16, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.Buggy1111/shelly-mcp- Version
- 0.1.3
- Auth
- No auth
- Packages
- pypi shelly-mcp
- License
- MIT
- Repository
- github.com/Buggy1111/shelly-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from Buggy1111
- 0.549score
Agent Lease
Buggy1111
Keep Claude Code and Codex off each other's files: hook-enforced path leases, presence, messages.
ConnectorAFreshness: ALocal↓ 211/wkClaude Code +5 - 0.521score
Czech PII Anonymizer & NLP
Buggy1111
Anonymize PII & redact text (GDPR): Czech + 35-lang NER, morphology, translation, spellcheck
ConnectorBFreshness: BLocal★ 4↓ 59/wkClaude Code +5
Cite this page
Shelly Smart Home MCP server. Agent Mart. https://agentmart.dev/connectors/buggy1111-shelly-mcp (last updated 2026-10-25)