Skip to main content
Glama

Read a room

rooms_read
Read-only

What a room has been saying: its catch-up summary (and whether messages have landed since), its sidebars with their outcomes, and the most recent messages as plain lines with who said them. Use it when a user asks what happened in a room, what a group decided, or to catch them up. For older talk, pass before (a message id: the page ahead of it) or from (a time: the page starting then); those return just the messages, with hasEarlier and hasLater. rooms_search finds where something was said. Quote people by name; never present a summary as a decision unless a sidebar settled it.

Input Schema

NameRequiredDescriptionDefault
fromNoAn ISO time: return the messages from then on.
limitNoHow many recent messages to return (default 40).
beforeNoA message id: return the messages before it.
roomIdYesRoom id (from rooms_list).
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / before
      Added value: +{
      +  "description": "A message id: return the messages before it.",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / from
      Added value: +{
      +  "description": "An ISO time: return the messages from then on.",
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/openWorld, so the description focuses on non-obvious behavior: the dual return mode (summary mode vs. just-messages mode with hasEarlier/hasLater) and an interpretive constraint ('never present a summary as a decision unless a sidebar settled it'). It does not state how far back the default summary window reaches or what happens when a room is empty, which keeps it below a 5.

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 payoff (what the agent gets back) before the when-to-use clause and the parameter routing, with zero filler. It is dense and run-on in places, packing return shape, triggers, param modes, sibling routing, and quoting etiquette into one block, but each clause carries distinct 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?

With no output schema, the description takes on the return-value burden and does so: it names the three payload sections, the hasEarlier/hasLater flags, and message line formatting. Combined with 100% schema coverage of the five parameters, an agent has everything needed to select and call it correctly.

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 baseline is 3, but the description adds real meaning beyond the schema: `before` is described as 'the page ahead of it' and `from` as 'the page starting then', and it discloses that using either returns only messages with hasEarlier/hasLater rather than the full summary package. That is behavioral coupling the schema does not express. `limit` and `workspace` are left entirely to the schema.

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 concrete verb-plus-resource framing ('What a room has been saying') and enumerates the three things returned: catch-up summary with recency status, sidebars with outcomes, and recent messages with attribution. It explicitly distinguishes itself from rooms_search ('finds where something was said'), so an agent can route without opening either schema.

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?

It names the triggering user intents ('what happened in a room', 'what a group decided', 'catch them up') and the disambiguation rule against the sibling search tool. It also routes the agent within its own parameters: older talk goes through `before` or `from`, which return a different shape.

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