Skip to main content
Glama
shelly-mcp

shelly-mcp

by Buggy1111

shelly_energy_history

Read-only

Fetch lifetime energy totals and per-minute series from Shelly devices, indicating when richer history requires a local connection.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
deviceYes
channelNo

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

B3.4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description carries the behavioral burden and does well: it flags the 'best-effort' nature, degraded cloud coverage, device-model specifics (Pro 3EM EMData/CSV, Gen1 em_data.csv), and that richer queries depend on unimplemented local backends. It stops short of return/auth details, but adds substantial context beyond the annotations.

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

Conciseness4/5

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

Two compact sentences with the core capability front-loaded and the limitation/roadmap detail secondary. Dense but not wasteful, though internal jargon (M2, EMData) adds minor noise.

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

Completeness3/5

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

An output schema exists, so return values need not be narrated, and the behavioral limitations are covered. The gap is parameter semantics: for a 2-param tool with 0% schema coverage, the definition is incomplete on how device/channel steer the result.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters (device, channel), and the description does not mention either. With no schema documentation to fall back on, the description fails to explain what device or channel mean or how channel maps to per-minute series, so it does not compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific resource and scope: lifetime energy totals plus per-minute series exposed in device status. The 'history' framing implicitly distinguishes it from shelly_energy_live, but it never names that sibling, so the distinction is inferred rather than explicit.

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

Usage Guidelines3/5

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

It discloses real usage constraints (cloud only yields totals + recent per-minute; richer history needs a local connection), which helps the agent set expectations. However, it never states when to prefer shelly_energy_live over this tool or any explicit selection criteria, leaving usage implied.

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