Skip to main content
Glama
ismail: agent DAW (MCP server)

ismail: agent DAW (MCP server)

Stream Callout

stream_callout

Add timed callouts to a live visual page: display a line for duration_s, then remove it, with anchors, styles, and queued slots to prevent overlap.

Instructions

Put a timed callout on the visual page, live, with no blip: a line that comes in, stays duration_s and goes. Reach for it for a moment on screen: "drop in 8 bars", "welcome, raiders", "next up: deep house for @Ana". anchor: top, top-left, top-right, left, center, right, lower-third (the default), bottom, bottom-left, bottom-right; or x, y (fractions of the frame: the point the box is pinned to), which also nudge an anchor. w: the box's widest, a fraction of the frame width (0.6), text wraps inside it. style: {font (sans, serif, mono, condensed, display, rounded, or arial, arial black, bahnschrift, consolas, courier new, georgia, impact, segoe ui, tahoma, times new roman, trebuchet ms, verdana; or a .ttf/.otf/.woff/.woff2 file under the ismail folder or the stream home), size (font height, a fraction of the frame height, 0.06), color, weight (100-900, 700), italic, background ('#rrggbb' or 'none'), background_opacity (0.55), outline (stroke width, a fraction of the font size), outline_color, shadow (glow blur, a fraction of the font size), shadow_color, align (left, center, right), padding and radius (fractions of the font size), opacity}. enter / exit: none, fade, pop, slide-left, slide-right, slide-up, slide-down (in from that side and out to it), anim_s long. Callouts in one slot (the anchor's name by default, or slot='') take turns and never overlap: a new one waits, higher priority (0-9) first, then first asked; nothing cuts the one showing. who: your role, logged. clear=True takes down every callout, or the one with id=, or every one in slot=. With no text and no clear it says what shows and what waits. The page draws in mode='page' (stream_visual); the stream's own text lines (title top left, now bottom left) draw over it, so keep callouts off those corners.

Input Schema

NameRequiredDescriptionDefault
wNo
xNo
yNo
idNo
whoNo
exitNofade
slotNo
textNo
clearNo
enterNofade
styleNo
anchorNo
anim_sNo
priorityNo
duration_sNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden and does so: slot queueing that never overlaps, priority 0-9 then first-asked ordering, "nothing cuts the one showing", what clear=True destroys (all, by id, or by slot), and a status mode ("With no text and no clear it says what shows and what waits"). It also notes "who: your role, logged" and the page dependency on stream_visual mode='page'.

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-loads purpose and use cases before parameter detail, and each block maps to a parameter. It is dense and telegraphic in places, and the exhaustive 20-item font list plus the nested style rundown add bulk that could have been compressed, but given zero schema descriptions most of the length is load-bearing.

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 15-parameter, 0%-coverage, nested-style tool with no annotations, the definition covers rendering interaction with other stream tools, queueing/priority, cancellation semantics, and the no-argument status behavior. An output schema exists, so omitting return-value detail is appropriate; nothing essential for correct invocation is missing.

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

Parameters5/5

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

Schema description coverage is 0% across 15 parameters, so the description must compensate and largely does: anchor enum plus default (lower-third), x/y as frame fractions that nudge an anchor, w as a frame-width fraction with wrapping, full style sub-object documentation with defaults, enter/exit enum values, anim_s, slot, priority range, duration_s, id, who, and clear. Almost no parameter is left undocumented.

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 and resource with scope: "Put a timed callout on the visual page, live, with no blip: a line that comes in, stays duration_s and goes." It also names concrete use moments ("drop in 8 bars", "welcome, raiders") that separate it from stream_text (permanent title/now lines) and stream_visual (the page itself).

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 clear when-to-use trigger ("Reach for it for a moment on screen") and an implicit when-not via the warning that the stream's own text lines draw in the top-left and bottom-left corners, which points to stream_text for persistent text. It does not explicitly name the sibling to use instead, so the routing 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.

Deploy Server

Other Tools