Skip to main content
Glama

wait_for_signal

Wait for a signal to advance past a given version, then read it; expired signals are absent so stale messages are skipped.

Instructions

Read a signal only when its version advanced; expired signals are absent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
campaign_idYes
after_versionNo
binding_tokenNoOpaque token returned by this agent's join_session or plan_session. Required for reliable identity when logical agents share an MCP connection.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that expired signals are absent, which is a useful behavioral trait, but it does not disclose whether reading is destructive, whether it consumes the signal, whether it requires binding_token, or what happens when no version advance occurs. The description adds minimal context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core conditional behavior, but it is under-specified rather than concise. The phrase 'expired signals are absent' is somewhat redundant with 'only when its version advanced' and does not add meaningful new information. It earns a middle score for brevity but lacks substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the return value, the meaning of version advancement, the role of binding_token, or how this tool fits into the broader signal lifecycle. An agent would struggle to call this tool correctly without additional context.

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

Parameters2/5

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

Schema description coverage is only 25%, with only binding_token having a description. The tool description does not explain campaign_id, name, or after_version semantics. It mentions 'version advanced' which loosely relates to after_version, but does not clarify how after_version interacts with the read or what values are expected. The description fails to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read a signal only when its version advanced; expired signals are absent' is partially tautological and vague. It states a read operation but does not clearly define what a 'signal' is, what 'version advanced' means, or how this tool differs from siblings like publish_signal or poll_messages. The verb 'Read' is present, but the resource and scope are unclear.

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

Usage Guidelines2/5

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

The description implies a conditional read (only when version advanced) but provides no guidance on when to use this tool versus alternatives such as poll_messages, publish_signal, or cpg_query. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the name and schema.

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