Skip to main content
Glama

Show text on the display

display_text

Makes the rover speak typed text in a speech bubble on its OLED face display, supporting Thai, then returns to the default face.

Instructions

Make the rover "say" a text on the Face Display module (128×64 OLED): a small rover face with a talking mouth and the text typed out in a speech bubble (Thai supported, ~11 characters per line, 2 lines per bubble, extra bubbles follow). Returns to the big face after seconds, or once every bubble has been shown if that takes longer.

Input Schema

NameRequiredDescriptionDefault
textYes
secondsNoHow long to show it (default 6)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses the bubble capacity (~11 chars/line, 2 lines per bubble, extra bubbles follow) and the timing semantics — return to the big face after `seconds` or after all bubbles, whichever is longer. Missing only failure/truncation behavior for over-long or unsupported input.

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?

Action and target are front-loaded, and the parenthetical spec plus the timing sentence each add real information. It is dense but no sentence is filler; the only cost is a long single run-on that could be split for scanability.

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 two-parameter, non-destructive display tool with no output schema and no annotations, the description covers rendering, capacity, duration, and the auto-revert behavior — everything an agent needs to call it sensibly. Edge cases (empty text, text exceeding bubble count, invalid `seconds`) are the remaining gap.

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 50%: `seconds` is documented in the schema, but `text` has no schema description. The description compensates by explaining what `text` is rendered as, its Thai support, and effective line/bubble capacity, which is genuinely more useful than a type constraint. It stops short of explaining the interaction between the 200-char max and the bubble overflow behavior.

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 concrete verb and resource ("Make the rover 'say' a text on the Face Display module") and immediately qualifies the rendering mode (face with talking mouth, speech bubble), which distinguishes it from sibling display tools like set_display, draw_display, and read_display. An agent can tell what this does without opening the schema.

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?

The rendering description implies when this tool fits (short, character-based announcements on the face display), but it never explicitly contrasts with set_display/draw_display or send_chat, nor does it state exclusions. Usage is inferable rather than stated.

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