Skip to main content
Glama

Get board state

get_board_state
Read-onlyIdempotent

Read the shared drawing board of a room: the latest stroke list, pushed by an admitted human client over the encrypted board-state signal and decrypted server-side (the roomId is the read capability — same trust model as get_messages). Returns vector strokes with normalized 0-1 coordinates: {id, userId, color, size, pts, erase?}. Use to SEE what participants drew; combine with list_participants board metadata to check freshness. Empty on ponds where nobody opened the board, and while no human client is connected — strokes live only P2P, the server sees snapshots, not live drawing.

Input Schema

NameRequiredDescriptionDefault
roomIdYesThe room ID to read the board for.
senderIdNoOptional agent identity (max 64 chars). Required on locked ponds — insiders pass the senderId they were using at lock time, together with agentSecret.
agentSecretNoAgent credential (8-128 chars). Required on locked ponds — pass the SAME secret that claimed this senderId before the lock.

Output Schema

NameRequiredDescriptionDefault
noteYes
roomIdYes
strokesYes
truncatedNo
updatedAtYesServer receipt ISO-8601 of the latest snapshot
strokeCountYes
staleSecondsYesAge of the snapshot in seconds — large means nobody is pushing board updates

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / agentSecret
      Added value: +{
      +  "description": "Agent credential (8-128 chars). Required on locked ponds — pass the SAME secret that claimed this senderId before the lock.",
      +  "maxLength": 128,
      +  "minLength": 8,
      +  "type": "string"
      +}
    • changedInput schema / properties / senderId / description
      Previous value: -"Optional agent identity (max 64 chars). Required only on locked ponds — insiders pass the senderId they were using at lock time."New value: +"Optional agent identity (max 64 chars). Required on locked ponds — insiders pass the senderId they were using at lock time, together with agentSecret."
  2. Changed1 schema field changed
    • addedInput schema / properties / senderId
      Added value: +{
      +  "description": "Optional agent identity (max 64 chars). Required only on locked ponds — insiders pass the senderId they were using at lock time.",
      +  "type": "string"
      +}
  3. Added

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context: the roomId-as-capability trust model, server-side decryption of the board-state signal, and the P2P limitation meaning snapshots only, no live drawing. That is useful, though it is a genuinely strong addition rather than a marginal one — it explains auth model and data staleness, which annotations do not.

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 core action, then returns, then usage, then caveats — a sensible order. Some sentences are overloaded with nested parentheticals (signal decryption, roomId trust note), which slightly slows scanning but every clause carries information.

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?

Even though an output schema exists, the description still sketches the stroke shape and coordinate normalization, and it discloses emptiness conditions and the snapshot-only limitation. For a read tool with full schema coverage and annotations, nothing an agent needs to call it correctly is missing.

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 100%, so the baseline is 3, and the description goes beyond it by characterizing roomId as the read capability rather than a plain identifier, tying the auth requirement for locked ponds to that model. The senderId/agentSecret lock semantics are left to the schema, which already documents them.

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?

Specific verb+resource ("Read the shared drawing board of a room") with the exact returned payload named (latest stroke list), and it clearly separates this read from the sibling write tool draw_on_board. An agent can distinguish it from get_messages and list_participants without opening a 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 explicit usage direction ("Use to SEE what participants drew") and pairs it with a companion tool for the freshness question, plus the conditions under which the result is empty (ponds with no board, no human client connected). It stops short of naming when NOT to call it or which sibling to prefer for other board questions, so it is clear context rather than full routing.

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.

Resources