Skip to main content
Glama
mcp-divoom-lan

mcp-divoom-lan

Official

pixoo64_send_animation

Send 1–59 ordered RGB888 frames to a Divoom PIXOO64 over LAN by resetting the HTTP GIF ID and using PicID=1; stops on the first failed frame without retrying partial animations.

Instructions

Send 1–59 RGB888 frames in order; reset the HTTP GIF ID then use PicID=1. Frames are row-major RGB base64, not PNG/JPEG/GIF bytes. Stops on first failure; never retries a partially sent animation. PIXOO64 Hardware 90/92/96 only. Provide target.hardware for direct LAN use, or resolve it using device discovery.

Input Schema

NameRequiredDescriptionDefault
speedNo
widthNo
framesYes
targetNoOptional per-call target override. If omitted, environment variables are used.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full load and does so well: it discloses mutation of device state ("reset the HTTP GIF ID then use PicID=1"), partial-failure semantics ("Stops on first failure; never retries a partially sent animation"), and hardware gating. It does not state what is returned on success, what error shape a mid-sequence failure yields, or any timeout/rate considerations for a tool that writes 59 frames.

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?

Front-loaded with the payload shape and limits, then failure semantics, then model gating, then target resolution — a sensible order with no filler. The "reset the HTTP GIF ID then use PicID=1" clause is protocol jargon that is dense but earns its place by explaining a required pre-step.

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?

With 4 parameters, a nested target object, no annotations, and no output schema, the definition covers the risky parts (format, limits, partial failure, hardware) but leaves gaps an agent would want: no statement of the return value or error format, and no linkage between frame encoding and the width parameter. Adequate but not fully self-sufficient for a state-mutating device write.

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 description coverage is only 25%, so the description must compensate — and it does for the most important param, explaining that frames are ordered row-major RGB base64 subject to the 1–59 limit. However, width (16/32/64), speed (1–65535), and timeoutMs get no semantic explanation anywhere, and the row-major format only makes sense in relation to width, which is never connected.

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+resource (Send ... frames) with the cardinality constraint (1–59) and the wire format (row-major RGB base64, not PNG/JPEG/GIF bytes). The format clause also implicitly separates it from the sibling pixoo64_play_gif, which takes GIF bytes, 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?

Gives a hard model exclusion ("PIXOO64 Hardware 90/92/96 only"), which is a clear when-not, plus concrete direction on how to select the target ("Provide target.hardware for direct LAN use, or resolve it using device discovery"). It stops short of naming pixoo64_play_gif as the alternative for GIF input, so the sibling choice is left slightly implicit.

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