Skip to main content
Glama
miradore-mcp
by ajthom90

Set device custom attribute

set_device_custom_attribute
Idempotent

Sets a custom attribute value on a Miradore device and clears it with an empty string; use list_custom_attributes to find the attribute ID.

Instructions

Set a custom attribute value on a device. Find attribute IDs with list_custom_attributes.

Input Schema

NameRequiredDescriptionDefault
valueYesNew value (empty string to clear).
device_idYesMiradore device ID (from list_devices).
attribute_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and repeatability profile is covered structurally. The description adds nothing beyond that — it does not restate that repeated calls are safe, nor explain effects such as empty-string clearing (left to the schema) or permission requirements. Adequate but thin given annotations do most of the work.

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?

Two short sentences, purpose front-loaded, with the discovery hint immediately after. No filler, no redundancy — every clause 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?

For a simple three-required-parameter mutation with no output schema and rich annotations, the definition covers what the tool does and where to get the undocumented ID. Only minor gaps remain: no statement of return behavior or permission requirements, which the annotations largely imply.

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 67%: value and device_id are documented in the schema, while attribute_id has no schema description. The description partially compensates by pointing to list_custom_attributes as the source of attribute IDs, which is the one genuinely missing piece, but adds no format or semantics for the value payload beyond what the schema states.

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 names a specific verb and resource ("Set a custom attribute value on a device"), which is unambiguous and distinguishes it from read-oriented siblings like list_custom_attributes or get_device. It stops short of differentiating itself from other mutation siblings such as update_device or add_device_tag.

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?

"Find attribute IDs with list_custom_attributes" gives a concrete prerequisite step and routes the agent to the right sibling for discovery. However, it offers no guidance on when to prefer this over updating a device or adding a tag, and no prerequisites or exclusions are stated.

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