Skip to main content
Glama

Compare two device shadows

compare_device_shadows
Read-onlyIdempotent

Compares reported state of two AWS IoT things or named shadows to show structural differences, helping answer what differs between device shadows.

Instructions

Structural diff of the reported state of two things (or of two named shadows of the same thing). This is the fastest way to answer "what is different about the one that misbehaves?" — it lists only the fields that differ, so a fleet-wide config drift shows up immediately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sectionNoWhich half of the shadow state to compare. Default reported.
left_thing_nameYesExact AWS IoT thing name.
left_shadow_nameNoNamed shadow. Omit for the classic (unnamed) shadow.
right_thing_nameYesExact AWS IoT thing name.
right_shadow_nameNoNamed shadow. Omit for the classic (unnamed) shadow.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds real value beyond that by disclosing output behavior — that it lists only the differing fields — which is what an agent needs to interpret the result as a drift signal.

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 sentences, front-loaded with the verb and scope, with the rhetorical framing sentence earning its place by supplying the use case. Slightly more prose than strictly necessary, but nothing is wasted.

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?

For a read-only, idempotent diff tool with full schema coverage and no output schema, the description covers what the tool returns (only differing fields) and when it helps. The main remaining gap is that it does not explain the section default or how named vs classic shadows are chosen, though the schema covers both.

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 100%, so the schema already documents all five parameters including the section enum and shadow-name omission semantics. The description mentions comparing reported state but adds no syntax or format detail beyond the schema, so baseline 3 applies.

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?

States a specific verb (structural diff) and resource (reported state of two things or two named shadows of one thing), which an agent can immediately distinguish from the single-target get_device_shadow. It stops short of naming that sibling explicitly, so it is clear but not fully differentiated within the fleet.

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?

Gives a concrete when-to-use framing ("what is different about the one that misbehaves?" and "fleet-wide config drift"), which tells the agent the diagnostic scenario this tool serves. No explicit when-not or named alternatives are provided, so it is context without exclusions.

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