Skip to main content
Glama

Read Live Session

get-session
Read-only

Only for a live session (play-live-pattern session: true). Reads whether the player is up and what it played, its errors and silences, and what the human did since your last read: taps, changes to remember() state, code they ran, a Pass to you, or End. Read it before assuming a piece played. With wait: 'pass' it listens until the human presses Pass, so a whole back-and-forth set fits in one turn: update-session, get-session(wait: 'pass'), answer, listen again.

Input Schema

NameRequiredDescriptionDefault
waitNoListen instead of just reading: 'pass' until the listener presses Pass, 'activity' until they play. Returns at once if that already happened since your last read, else after ~40 s — call again to keep listening.
sessionYesThe session id from play-live-pattern's result (16 lowercase letters/digits).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • changedInput schema / properties / wait / description
      Previous value: -"Listen instead of just reading: 'pass' holds until the listener presses Pass, 'activity' until they play (a few seconds after their first move). Returns at once if that already happened since your last read, and after ~40 s if not — call again to keep listening. Lets you stay in the booth for a whole set."New value: +"Listen instead of just reading: 'pass' until the listener presses Pass, 'activity' until they play. Returns at once if that already happened since your last read, else after ~40 s — call again to keep listening."
  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 readOnlyHint=true and destructiveHint=false, so safety is covered; the description's real addition is that reads are cursor-like ('since your last read'), which explains the otherwise puzzling idempotentHint=false. It also discloses blocking behavior via wait: 'pass'. That said, those wait semantics are largely duplicated from the schema, so the value beyond structured data is moderate.

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 crucial constraint ('Only for a live session') and organized from purpose to return values to usage pattern. The final sentence is long and comma-chained, but every clause carries procedural information, so little is wasted.

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?

There is no output schema, and the description compensates by enumerating exactly what a read yields: player state, played content, errors, silences, and human actions including taps, remember() changes, code execution, Pass and End. Combined with the blocking guidance and the ~40 s timeout carried in the schema, an agent has everything needed to call and interpret it.

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 100% schema coverage the baseline is 3, and the description clears that by showing the parameters in action: wait: 'pass' is explained as listening until the human presses Pass so an entire exchange fits in one turn, plus a full call sequence (update-session, get-session(wait: 'pass'), answer, listen again). It does not add anything for the session id, which the schema already fully specifies.

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?

Names a specific verb (reads) and a scoped resource (a live session), then enumerates exactly what is returned: player up/down, what it played, errors, silences, and human actions since the last read. The opening line distinguishes it from the general session tooling by tying it to play-live-pattern's session flag.

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 an explicit precondition (only for a live session, session: true) and a concrete decision rule: 'Read it before assuming a piece played.' It also shows the intended call pattern with update-session for a back-and-forth loop. It stops short of naming alternatives for non-live inspection, but the exclusion is clear enough to route an agent.

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.