Skip to main content
Glama
Buggy1111

shelly-mcp

by Buggy1111

shelly_rpc

Read-only

Call read-only RPC methods on Shelly devices to fetch status, list resources, or run checks; mutating calls are rejected.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
deviceYes
methodYes
paramsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.3
    • addedInput schema / additionalProperties
      Added value: +false
  2. First observedv0.1.2

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value beyond them: method classification happens server-side and unknown methods are treated as writes and rejected, which tells the agent how failures will occur. It doesn't cover return shape or error format, but the output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero redundancy, with the read-only constraint and the method naming patterns front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the description only needs to cover invocation semantics, and it covers the key ones: read-only scope, write refusal, sibling routing, and server-side classification. The only real omission is the expected format of 'device' and 'params'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does add the method-naming convention (*.Get*/*.List*/*.Check*), which is genuinely useful syntax. However, the 'device' parameter (name vs ID vs IP) and the free-form 'params' passthrough are left completely unexplained, so compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Call), resource (read-only RPC method on a device), and scope (only *.Get*/*.List*/*.Check*). It explicitly distinguishes itself from the sibling shelly_rpc_write, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly states when not to use it (mutating methods are refused) and names the correct alternative, shelly_rpc_write. It doesn't mention that specialized read siblings such as shelly_get_status or shelly_get_config may be preferable for common cases, leaving a small routing gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.