Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)
Write a review

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.

We use your email only for this newsletter. Privacy

About

Local-first MCP server for Shelly smart-home devices (Gen1-Gen4): control, energy, automation.

No 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_discover
  • shelly_energy_history
  • shelly_energy_live
  • shelly_get_config
  • shelly_get_info
  • shelly_get_status
  • shelly_kvs_get
  • shelly_kvs_list
  • shelly_list_components
  • shelly_list_devices
  • shelly_list_methods
  • shelly_rpc
Show 8 more tools
  • shelly_scene_get
  • shelly_scene_list
  • shelly_schedule_list
  • shelly_script_get_code
  • shelly_script_list
  • shelly_version
  • shelly_virtual_list
  • shelly_webhook_list

Write 15 · Create, change, send or run things.

  • shelly_cover_move
  • shelly_kvs_set
  • shelly_light_set
  • shelly_scene_create
  • shelly_scene_run
  • shelly_schedule_create
  • shelly_schedule_update
  • shelly_script_create
  • shelly_script_start
  • shelly_script_stop
  • shelly_switch_set
  • shelly_switch_toggle
Show 3 more tools
  • shelly_virtual_add
  • shelly_webhook_create
  • shelly_webhook_update

Delete 12 · Delete, drop, revoke or wipe things.

  • shelly_kvs_delete
  • shelly_rpc_write
  • shelly_scene_delete
  • shelly_schedule_delete
  • shelly_script_delete
  • shelly_script_eval
  • shelly_script_put_code
  • shelly_system_reboot
  • shelly_system_set_auth
  • shelly_system_update
  • shelly_virtual_delete
  • shelly_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_move

    Move 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-only

    Discover 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-only

    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 ``EMData``/CSV, Gen1 ``em_data.csv``) land with the local backends (M2) — over cloud only totals + recent by-minute are available.

  • shelly_energy_liveread-only

    Live 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-only

    Get 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-only

    Identify one device (generation, model, firmware, online state, capabilities). ``device`` is a device id or a configured name. Safe, read-only.

  • shelly_get_statusread-only

    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 ``component`` (e.g. ``"switch:0"``) to narrow to a single component. Safe, read-only.

  • shelly_kvs_deletecan change or delete data

    Delete a KVS key. Requires ``confirm:true``. Audit-logged.

  • shelly_kvs_getread-only

    Get one KVS value (with its etag) by key.

  • shelly_kvs_listread-only

    List KVS keys (with their etags). ``match`` is a wildcard pattern (default all).

  • shelly_kvs_set

    Set a KVS key to a JSON value. Audit-logged.

  • shelly_light_set

    Set 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-only

    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_list_devicesread-only

    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_list_methodsread-only

    List 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-only

    Call 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 data

    Call 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_create

    Define (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 data

    Delete a named scene. Requires ``confirm:true``.

  • shelly_scene_getread-only

    Show a scene's full definition (its ordered actions). Read-only.

  • shelly_scene_listread-only

    List defined scenes (name, description, action count). Read-only.

  • shelly_scene_run

    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. ``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_create

    Create 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 data

    Delete a schedule by ``id``. Requires ``confirm:true``. Audit-logged.

  • shelly_schedule_listread-only

    List the schedules configured on a device. Local-only (cloud can't manage schedules).

  • shelly_schedule_update

    Update fields of an existing schedule by ``id``. Audit-logged.

  • shelly_script_create

    Create 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 data

    Delete a script by ``id``. Requires ``confirm:true``. Audit-logged.

  • shelly_script_evalcan change or delete data

    Evaluate an expression inside a running script. **Arbitrary code** → ``confirm:true``. Returns the stringified result. Audit-logged.

  • shelly_script_get_coderead-only

    Get a script's full source, reassembling the device's paginated ``GetCode``.

  • shelly_script_listread-only

    List scripts on a device (id, name, enable, running). Local-only.

  • shelly_script_put_codecan change or delete data

    Upload 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_start

    Start a script by ``id``. Returns ``was_running``. Audit-logged.

  • shelly_script_stop

    Stop a script by ``id``. Returns ``was_running``. Audit-logged.

  • shelly_switch_set

    Turn a switch/relay channel on or off (optionally auto-revert after N seconds). Returns the post-action ``ChannelState``. Audit-logged.

  • shelly_switch_toggle

    Toggle a switch/relay channel. Returns the post-action ``ChannelState``. Audit-logged.

  • shelly_system_rebootcan change or delete data

    Reboot a device. Requires ``confirm:true``. Audit-logged.

  • shelly_system_set_authcan change or delete data

    Enable/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 data

    Trigger a firmware update (``channel`` = stable|beta). Requires ``confirm:true``.

  • shelly_version

    Return the shelly-mcp server version (health check).

  • shelly_virtual_add

    Add 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 data

    Delete a virtual component by ``key`` (``<type>:<cid>``). Requires ``confirm:true``.

  • shelly_virtual_listread-only

    List the device's virtual (dynamic) components via ``Shelly.GetComponents``.

  • shelly_webhook_create

    Create 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 data

    Delete a webhook by ``id``. Requires ``confirm:true``. Audit-logged.

  • shelly_webhook_listread-only

    List webhooks configured on a device. Local-only.

  • shelly_webhook_update

    Update 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
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from Buggy1111

Cite this page

Shelly Smart Home MCP server. Agent Mart. https://agentmart.dev/connectors/buggy1111-shelly-mcp (last updated 2026-10-25)