Skip to main content
Glama

Wait for Board Update

wait_for_update
Read-only

Long-poll: blocks until the next edit lands on this board, then returns.

WHEN TO CALL THIS: if your MCP client does NOT surface notifications/resources/updated events from resources/subscribe back to the model (most chat clients do not — they receive the SSE event but don't inject it into your context), this tool is how you 'wait for the human' inside a single turn. Typical flow: you draw / write what you were asked to, then instead of ending your turn you call wait_for_update(board_id). When the human adds, moves, or erases something, the call returns and you refresh with get_preview / get_board and continue the collaboration. Great for turn-based interactions (games like tic-tac-toe, brainstorming where you respond to each sticky the user drops, sketch-and-feedback loops, etc.). If your client DOES deliver resource notifications natively, prefer resources/subscribe — it's cheaper and has no timeout ceiling.

BEHAVIOUR: resolves ~3 s after the edit burst settles (same debounce as the push notifications — this is intentional so drags and long strokes collapse into one wake-up). Returns { updated: true, timedOut: false } on a real edit, or { updated: false, timedOut: true } if nothing happened within timeout_ms. On timeout, just call it again to keep waiting; chaining calls is cheap. timeout_ms is clamped to [1000, 55000]; default 25000 (leaves headroom under typical 60 s proxy timeouts).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
board_idYes
access_keyNo8-character lowercase alphanumeric board access key when the board is locked (legacy 6-character lowercase alphanumeric keys are also accepted). Equivalent to setting the `X-Board-Key` HTTP header on the JSON-RPC POST. Omit for unlocked boards. Obtain via POST /api/boards/<id>/lock.
timeout_msNo

TDQS

A4.9/5.0
Behavior5/5

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

The description reveals detailed behavioral traits beyond annotations: resolves ~3s after edit burst settles (debounce rationale), timeout handling, clamping range, default timeout, and exact return shapes for both success and timeout. The annotations (readOnlyHint=true, destructiveHint=false) align with the read-only, non-destructive nature; the description adds actionable timing and return semantics without contradicting the annotations.

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?

The description is organized with bold section headers ('WHEN TO CALL THIS:', 'BEHAVIOUR:') which front-loads key information. Every sentence is purposeful—no filler. It is longer than average, but the length is justified by the need to convey polling semantics, timeout rules, and the alternative path. Structure and conciseness are excellent.

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?

Despite having no output schema and only 3 params, the description fully covers the tool's role in the board ecosystem: why it exists, when to use it, how the timeout works, and what the return values mean. It also mentions chaining calls on timeout. For a simple long-poll tool, this is a complete and self-contained explanation.

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?

With only 33% schema coverage (only `access_key` has a description), the description compensates by explaining `timeout_ms` clamping and default, and the typical flow implies `board_id` usage. However, `access_key` is not mentioned in the description, leaving its role solely to the schema. Still, the description clarifies the most nuanced parameter (timeout) and the context for board_id, adding value beyond the sparse schema.

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?

The description opens with 'Long-poll: blocks until the next edit lands on this board, then returns,' which clearly identifies the action (wait for update) and the resource (board). It is immediately distinguishable from all sibling tools, which are mutations or reads. The specific verb+resource combination leaves no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is provided: 'if your MCP client does NOT surface notifications/resources/updated events... this tool is how you wait for the human.' It contrasts with the alternative `resources/subscribe` and states a preference: 'If your client DOES deliver resource notifications natively, prefer resources/subscribe'. It also outlines a typical flow and example use cases (turn-based interactions), making usage context unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: canvas items (text, image, stroke, link), kanban elements (tasks, columns, lanes), and board-level operations (create, open, preview). Even the two move tools are clearly separated: move for board items and move_task for kanban cards. Descriptions explicitly disambiguate potential overlaps (e.g., add_link vs add_text).

Naming Consistency4/5

Tool names overwhelmingly follow a verb_noun snake_case pattern (add_image, create_column, delete_task, update_task). Minor deviations: 'erase' and 'move' are single-word verbs lacking an explicit object, and 'move' could be confused with 'move_task' without descriptions. Overall the pattern is highly predictable.

Tool Count4/5

25 tools is at the high end but justified by the dual-mode scope (freeform whiteboard and kanban board). Each cluster has a coherent set covering create, read, update, delete, and specialized operations (bulk creation, export, querying, waiting for updates). Slightly heavy but well-scoped.

Completeness4/5

Core workflows for both whiteboard and kanban are covered: CRUD for text, images, tasks, columns, plus preview, export, bulk creation, and filtering. Minor gaps exist: no board rename/delete, no image resize after creation, and no bulk erase, but these can be worked around.