Skip to main content
Glama

Wait for something

amiga_wait
Read-onlyIdempotent

Blocks script execution until an Amiga window, task, or file appears/disappears, or the screen changes/settles, avoiding fixed sleeps and returning what happened or timing out.

Instructions

Block until something happens on the Amiga, instead of sleeping: a window or task appears (or goes, with gone=true), a file appears, the screen changes, or the screen settles (stops changing). The Amiga watches, so nothing crosses the network meanwhile. Returns a line saying what happened; fails with an error after 'timeout' seconds. Use it after starting a program or clicking something that takes time. Read-only.

Input Schema

NameRequiredDescriptionDefault
goneNowait for the window, task or file to go away instead
nameNofor window/task/file: the window title, task name or file path (required); for change/still: watch only this window
whatNowindow (default), task, file, change or still
regionNochange/still: watch only this rectangle
timeoutNoseconds (default 30)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.1
    • changedInput schema / properties / gone / description
      Previous value: -"wait for it to go instead"New value: +"wait for the window, task or file to go away instead"
    • changedInput schema / properties / name / description
      Previous value: -"the window title, task name or file path; for change and still, watch only this window"New value: +"for window/task/file: the window title, task name or file path (required); for change/still: watch only this window"
    • changedInput schema / properties / what / description
      Previous value: -"window, task, file, change or still"New value: +"window (default), task, file, change or still"
  2. 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 readOnlyHint/idempotentHint/destructiveHint=false, and the description is consistent with them ('Read-only'). It adds real behavioral context the annotations do not: the call blocks server-side so no network traffic occurs while waiting, it returns one line describing the event, and it fails with an error on timeout. Return-shape and failure details are exactly what an agent needs for a blocking call.

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?

The block-on conditions are front-loaded and the operational notes (server-side watching, return value, timeout failure) follow in a logical order. Every sentence carries information, though the long opening sentence packs several modes together and could read more cleanly as a list.

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 five-parameter, nested-object, blocking tool with no output schema, the description covers the essential gaps: what it waits for, that it blocks on the server, what it returns, and how it fails. Only the relationship to overlapping sibling wait tools is left unexplained.

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 all five parameters are already documented. The description restates the mode semantics in prose (including gone=true and 'screen settles (stops changing)') but adds no new distinctions, such as how region interacts with name or default behavior when name is omitted for change/still. 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?

The description states a specific verb and resource ('Block until something happens on the Amiga') and enumerates the trigger classes: window/task appearance or disappearance, file appearance, screen change, screen settling. It is clear what the tool does, but it never distinguishes itself from siblings like amiga_wait_text or amiga_region_changed, which cover overlapping waiting use cases.

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?

'Use it after starting a program or clicking something that takes time' gives a concrete usage context. It also implicitly contrasts with sleeping, which is a useful framing. However, it offers no when-not guidance and no pointer to the text- or region-specific wait alternatives.

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