Skip to main content
Glama

list_messages

Read-only

Retrieve paginated system and operator messages, prioritizing unacknowledged items. Review setup steps, credential alerts, and operator notices, then acknowledge or retry via returned IDs.

Instructions

List this tenant's system + operator messages (a retryable setup step, a credential going live, an operator notice), cursor-paginated. Unacked messages sort first (newest first within that group), then acked ones (also newest first). Returns { messages[], nextCursor }; each message: id, kind, severity ('info'|'action_required'|'operator_pending'|'terminal' — 'operator_pending' means the platform has stopped, nothing you change restarts it, and an operator clearing the blocker makes the SAME retry work, so keep the same inputs and idempotency key; 'terminal' means the platform has stopped and only a human can move it, so do NOT retry), body, actionHint (structured — e.g. which tool + idempotencyKey to retry with), source ('system'|'operator'), createdAt, readAt. readAt is set ONLY by an explicit ack_message call — LISTING messages never marks them, here or anywhere else, so calling this tool leaves every readAt exactly as it was. A null readAt therefore means 'not acked', which is NOT evidence the message was never seen: it may have been read and simply not acknowledged. Use ack_message to acknowledge one by id so it stops resurfacing. infrastructure_status also inlines the newest 5 unacked messages for a quick glance — this is the full paginated surface.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
Behavior5/5

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

The description adds critical behavioral context beyond the readOnlyHint annotation: listing never sets readAt, a null readAt does not mean unseen, and the subtle semantics of 'operator_pending' vs 'terminal' are explicitly explained. This strongly warns the agent against incorrect retry behavior.

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 densely packed with actionable details: sorting order, message semantics, ack behavior, retry implications, and sibling referencing. Each sentence carries meaningful information, though the paragraph structure is dense enough that it could benefit from a small bit of formatting or highlight separation.

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 list/read tool with no output schema and no parameter descriptions, the description is remarkably complete. It covers pagination, sorting, every kind value's meaning, the readAt side-effect behavior, the correct acknowledgment pathway, and the relationship to infrastructure_status. There is no important gap for an agent to call this safely and correctly.

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?

The input schema provides no descriptions, and the description does not directly explain the limit or cursor parameters. However, the phrase 'cursor-paginated' and the stated return shape { messages[], nextCursor } give enough implicit guidance that an agent can infer pagination flow. It could be stronger with an explicit statement like 'pass nextCursor as cursor to get the next page.'

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 uses a specific verb and resource ('List this tenant's system + operator messages') and immediately differentiates itself from the related tools ack_message and infrastructure_status. The message kinds and behavior are clearly enumerated, so there is no ambiguity about what this tool returns.

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 tells the agent when to use ack_message instead, and clarifies that infrastructure_status only inlines the newest 5 unacked messages, making this the full paginated surface. This gives clear selection guidance relative to sibling tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YS-projectcalc/agent-cold-email'

If you have feedback or need assistance with the MCP directory API, please join our Discord server