Skip to main content
Glama

Event journal

events
Read-onlyIdempotent

Backfill event history from the session journal, then long-poll for new events. Returns cursor-based pages with drop notifications so you can recover gaps.

Instructions

Backfill from the bridge's event journal (ring of 10,000 per session). Returns events with seq > since, oldest first → {cursor, events[], dropped, truncated, latest_seq, hub_dropped}. cursor is the seq of the last event actually returned: pass it as the next since. truncated means more events wait after cursor; dropped > 0 means the ring evicted events you never saw. kinds filters by event type: log, error, assert, milestone, custom, playtest, peer, selection, job, controller, change (default all); levels filters log events (print|info|warn|error). timeout_ms > 0 long-polls: returns as soon as a matching event arrives, or empty when the timeout (≤ 50000) elapses. This is the portable fallback to push. Prefer Monitor on ws://127.0.0.1:/events: batched frames ≤ 4 KB carrying seq and dropped; default kinds error, assert, milestone, custom, playtest, peer, controller, job plus warn/error logs (?kinds=…&levels=… per socket). After any dropped > 0 or seq gap on the socket, call events with since = the last seq you saw.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindsNoEvent types to include (default all)
limitNoMax events (default 500)
sinceNoReturn events with seq > since (default 0)
levelsNolog levels to include: print|info|warn|error (default all)
sessionNoStudio session GUID or unique prefix (default: the active hub; required for writes when several Studios are connected)
timeout_msNoLong-poll up to this long for a matching event (default 0 = return now)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context beyond that: the ring buffer eviction behavior (dropped > 0 means events were evicted), the long-poll timeout semantics, the cursor contract, and the relationship to the push socket. It doesn't describe every edge case, but it discloses the non-obvious behaviors that matter for correct use.

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 dense but well-organized: it front-loads the core backfill behavior and return contract, then filters, then long-polling, then the fallback relationship. Every sentence carries information. It is longer than the typical description, but the complexity of the tool (cursor semantics, ring eviction, long-polling, push fallback) justifies the length. A slight deduction for the dense run-on style in the first sentence.

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?

For a read-only, idempotent, non-destructive tool with 100% schema coverage and no output schema, the description is remarkably complete. It explains the return shape, the cursor contract, the eviction failure mode, the long-poll behavior, and the relationship to the push alternative. An agent has everything it needs to call this tool correctly, including how to recover from dropped events.

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 description coverage is 100%, so the schema already documents all six parameters. The description adds meaning for kinds and levels by enumerating the accepted values, and for timeout_ms by explaining the long-poll behavior. However, since the schema already covers the basics, the description's added value is moderate rather than transformative. Baseline 3 is appropriate.

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 a specific verb and resource: 'Backfill from the bridge's event journal', and immediately distinguishes itself from the push alternative. It names the exact return shape and the semantics of each field, so an agent can tell exactly what this tool does and how it differs from siblings like observe or look.

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 explicitly says when to use this tool: as the portable fallback to push, and after any dropped > 0 or seq gap on the socket. It also names the preferred alternative (Monitor on ws://127.0.0.1:<port>/events) and explains the conditions that select between them. This is explicit when/when-not guidance with a named alternative.

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

Deploy Server

Other Tools