Skip to main content
Glama

AI Design Blueprint Doctrine

Wait for the Next Cockpit Steer (long-poll)

me.await_steer
Read-onlyIdempotent

Pro/Teams. BLOCK until the session owner posts the next steer event to a Governed Session from the AIDB Studio cockpit, then return it. DELIVERY GUARANTEE: the durable cursor read against the session log is authoritative (at-least-once: a lost response is safely re-issuable with the same cursor, and timed_out is only returned after a final confirming read). The in-between wake-up is a best-effort in-process push: usually sub-second, but a steer is never lost if a wake-up is missed; the confirming read catches it. See the after_event_id and timeout_s parameter descriptions for the semantics. THE LOOP: finish a task -> post me.session_event handoff -> call me.await_steer -> on a steer, FIRST post me.session_event event_type=ack ('Started: '), then execute, then handoff, then call me.await_steer again; on timed_out, call again with the returned after_event_id. REQUIRES team mode on the session (toggled by the owner in the web app); owner-scoped, so foreign session ids read as not found. Read-only: this tool never writes events. REJECTION CODES (invalid_request): 'Session not found.' (not yours, or no such id); 'Team mode is off for this session.' (owner enables it on the session page). Auth: sign-in required, with an active Pro, Pro Plus, Teams, Enterprise, beta, or trial plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeout_sNoSeconds to wait before returning timed_out. Clamped to 5-240, DEFAULT 45: safe under Claude Code's 60-second first-response-byte timer for HTTP servers. Longer waits require the per-server timeout raised in the MCP client config (e.g. "timeout": 300000 in .mcp.json).
session_idYesThe Governed Session to watch. Must be YOURS and have team_agents enabled; list sessions via me.sessions.
after_event_idNoCursor: highest session-event id you have already seen (0 = deliver any existing steer). Pass the value from your previous await_steer result or me.sessions read. Non-destructive at-least-once delivery: re-calling with the same cursor returns the same steers again, so a lost response never loses a steer.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description confirms and extends this: 'Read-only: this tool never writes events.' It adds substantial behavioral context: at-least-once delivery, the durable cursor guarantee, best-effort in-process wake-up, timeout semantics, rejection codes, auth/plan requirements, and owner/team-mode constraints. There is no contradiction with 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.

Conciseness4/5

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

The description is long but well-structured with capitalized section labels (DELIVERY GUARANTEE, THE LOOP, REJECTION CODES) that make it scannable, and the core blocking behavior is front-loaded in the first sentence. Some redundancy exists: the at-least-once guarantee, safe re-issuance with the same cursor, and timed_out behavior appear both in the delivery-guarantee paragraph and again in the after_event_id parameter description. It earns its length overall, but slightly tighter wording would improve it.

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?

Given the tool's complexity — long-polling, cursors, delivery guarantees, team-mode authorization, and loop integration — the description covers everything an agent needs: when to call, how to handle timeouts, what rejection codes to expect, auth/plan requirements, and the exact handoff/ack pattern. An output schema exists, so return-value details need not be repeated in the description. No material gap remains.

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?

With 100% schema description coverage, the schema already documents all three parameters, but the description materially deepens their meaning. timeout_s is tied to Claude Code's 60-second first-response-byte timer and the need to raise the MCP client timeout in .mcp.json for longer waits. after_event_id is explained as a non-destructive, at-least-once cursor where re-calling with the same cursor returns the same steers again — semantics the schema alone does not convey.

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 states a specific verb and resource: 'BLOCK until the session owner posts the next steer event ... then return it.' It clearly identifies this as a long-poll read against a Governed Session, distinguishing it from siblings like me.session_event (which posts handoffs) and me.sessions (which lists sessions). The title 'Wait for the Next Cockpit Steer (long-poll)' reinforces the purpose unambiguously.

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?

The description gives an explicit usage loop: finish task -> post me.session_event handoff -> call me.await_steer -> ack, execute, handoff, then call again. It also says to call again on timed_out with the returned after_event_id, and refers readers to parameter descriptions for semantics. It names related siblings (me.session_event, me.sessions) and explains when they fit into the flow, leaving no ambiguity about how to use this tool versus alternatives.

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