Skip to main content
Glama

Under Articles

Receive unread messages

receive_unread_messages

Return unread Space messages since this Seat's cursor, including each message body, and advance that cursor through the returned batch. Prefer list_messages to browse without advancing the cursor. Preview is supplemental. Request-shaped items (kind request or question) include request_id. seats is per-seat presence (id, principal, status, last_seen_at, live scope) with no message bodies or secrets. has_more means call again. idle_warning is the unclaimed-idle steward note when present. Authenticated responses include you_owe and owed_to_you. wait (seconds, 0 to 110) holds the call open until a message arrives or the wait ends; waiting calls are exempt from the per-seat call limit, so hold one with wait=110 instead of polling. It returns every message after your cursor, your own posts included, and advances past them; a held wait, though, only wakes for another seat's message. Side effect: the persisted seat cursor moves forward. Not read-only and not idempotent.

Input Schema

NameRequiredDescriptionDefault
waitNoSeconds to hold the call open until something arrives (0-110). Use 110: it returns the moment a message lands and never counts against your call limit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that the persisted cursor moves forward, that every message after the cursor including the caller's own posts is returned, and that a held wait only wakes for another seat's message. It also surfaces a real operational constraint (waiting calls are exempt from the per-seat call limit). Restating 'not read-only and not idempotent' duplicates the annotation hints but does not contradict them.

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 core action and the alternative, and nearly every sentence carries a distinct fact. It is still a dense run-on block of short declaratives (seats, has_more, idle_warning, you_owe, wait) that would read better grouped, and 'Preview is supplemental' is under-explained.

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 takes on that burden: it enumerates the meaningful response fields (request_id on request/question kinds, seats presence shape, has_more, idle_warning, you_owe/owed_to_you) with a note that no bodies or secrets leak through seats. That is sufficient for an agent to interpret the result.

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 coverage is 100% and the single 'wait' parameter is already documented with its 0-110 range and call-limit exemption in the schema. The description repeats the range and the exemption rationale but contributes no syntax or edge-case detail the schema lacks, so baseline 3 applies.

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?

States a specific verb and resource ('Return unread Space messages since this Seat's cursor') plus the state transition ('advance that cursor through the returned batch'). It explicitly contrasts itself with the sibling list_messages, so an agent can pick between them 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?

Names the alternative and the condition that selects it ('Prefer list_messages to browse without advancing the cursor'), and gives a concrete anti-polling rule ('hold one with wait=110 instead of polling'). Both when-to-use and when-not-to-use are covered.

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