Skip to main content
Glama

switch_poe_cycle

Power-cycle a wedged PoE camera: turn its switch port off, wait, then back on. Specify a port number or camera name; protected ports and dry-run are honored.

Instructions

MUTATES: power-cycle one PoE camera (off, wait off_seconds, on, wait for power). Resolve a PORT_MAP camera name or port number. Refuses non-PoE (NOT_POE_PORT), protected (PROTECTED_PORT), an already-off port (ALREADY_OFF) and a second concurrent cycle (CYCLE_IN_PROGRESS). If it cannot restore power it reports CYCLE_INCOMPLETE/POWER_NOT_RESTORED naming the port that may be UNPOWERED. Requires both write gates; honours EASYSMART_DRY_RUN (returns both planned forms, sends nothing).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
off_secondsNo
port_or_nameYes
confirm_writeNoMust be the JSON boolean true to authorise this mutating write. A string such as "true"/"1"/"yes" does NOT count and the write is refused with no network call; re-send with the boolean confirm_write=true after confirming the change with the operator.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden and does so well: it declares the write nature up front, enumerates the exact refusal conditions by error code, describes the partial-failure mode and its safety warning (naming the port that may be UNPOWERED), and discloses the dry-run gate and the dual write-gate requirement. This is behavior an agent could not derive from the schema alone.

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?

The mutation warning is front-loaded in the first word and the sentence ordering follows the operation's lifecycle (what it does, what it accepts, what it refuses, how it fails, what gates it needs). It is dense and error-code heavy, but essentially every clause carries information an agent needs, so little is wasted.

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

Completeness5/5

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

For a three-parameter mutation tool with no output schema and no annotations, this covers the critical ground: operation semantics, input resolution, authorization gates, dry-run behavior, and the concrete failure outcomes an agent must handle. Nothing needed to call it correctly appears to be missing.

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

Parameters4/5

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

Schema coverage is only 33% (confirm_write is the sole documented parameter), so the description must compensate. It does: "wait off_seconds" defines the timing parameter's role and "Resolve a PORT_MAP camera name or port number" defines the required identifier's accepted forms, adding real meaning beyond the bare anyOf integer|string schema.

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 opens with an explicit verb and resource ("MUTATES: power-cycle one PoE camera") and spells out the exact sequence off/wait/on/wait. It is unambiguous what the tool does, though it never names the neighboring switch_set_poe to say how a power-cycle differs from a plain PoE state change, so sibling differentiation is left to inference.

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?

Usage context is implied rather than stated: the refusal list (NOT_POE_PORT, PROTECTED_PORT, ALREADY_OFF, CYCLE_IN_PROGRESS) and the "requires both write gates" clause tell an agent the preconditions, and the PORT_MAP note tells it what input to resolve. However, there is no explicit statement of when to choose this over switch_set_poe or switch_resolve_port, which is the main routing decision an agent faces here.

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