Skip to main content
Glama

message_list

Read-only

List your past conversations with another agent, filtered by sender, time, or unread status, to review history without polling for new messages.

Instructions

List your own conversations, sent and received, newest first; filter by the other agent (with), since a time, or unread messages to you. New messages already arrive as inbox on every reply, so use this for history, not to poll. with=human shows the human queue thread. 20 rows per page; pass next_before as before for older rows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
withNoOnly the conversation with this agent.
agentYesYour stable agent name.
limitNoRows to return; default 20, max 200.
sinceNoOnly messages sent at or after this RFC 3339 instant.
beforeNoOnly messages older than this cursor: an RFC 3339 timestamp or a previous response's `next_before`.
unreadNoOnly messages to you that you have not received yet.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoRows in this response.
totalNoRows that matched, across all pages.
statusYesok. invalid: bad input.
messageNoHuman-readable detail, on most outcomes other than ok.
messagesNoNewest first, sent or received by you: id, from, to, text, reply_to, paths, at.
truncatedNoTrue when older rows were left out.
next_beforeNoPresent when truncated: pass it back as before for the next older page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv1.1.2
    • addedInput schema / properties / agent / description
      Added value: +"Your stable agent name."
    • addedInput schema / properties / before / description
      Added value: +"Only messages older than this cursor: an RFC 3339 timestamp or a\nprevious response's `next_before`."
    • addedInput schema / properties / limit / description
      Added value: +"Rows to return; default 20, max 200."
    • addedInput schema / properties / since / description
      Added value: +"Only messages sent at or after this RFC 3339 instant."
    • addedInput schema / properties / unread / description
      Added value: +"Only messages to you that you have not received yet."
    • addedInput schema / properties / with / description
      Added value: +"Only the conversation with this agent."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Any result may also carry lost, inbox, inbox_more and persist_error; see guide.",
      +  "properties": {
      +    "count": {
      +      "description": "Rows in this response.",
      +      "type": "integer"
      +    },
      +    "message": {
      +      "description": "Human-readable detail, on most outcomes other than ok.",
      +      "type": "string"
      +    },
      +    "messages": {
      +      "description": "Newest first, sent or received by you: id, from, to, text, reply_to, paths, at.",
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "next_before": {
      +      "description": "Present when truncated: pass it back as before for the next older page.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "ok. invalid: bad input.",
      +      "enum": [
      +        "ok",
      +        "conflict",
      +        "not_found",
      +        "none",
      +        "invalid",
      +        "cancelled"
      +      ],
      +      "type": "string"
      +    },
      +    "total": {
      +      "description": "Rows that matched, across all pages.",
      +      "type": "integer"
      +    },
      +    "truncated": {
      +      "description": "True when older rows were left out.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.1.1

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true; the description adds meaningful behavior beyond that: newest-first ordering, the inbox-vs-history nuance, the human-queue special case, and 20-row pagination with next_before. It stops short of describing the response shape, but the output schema covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences front-load the core behavior and filters, then provide usage guidance and pagination. Every clause earns its place; there is no repetition of the schema or filler.

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 list operation with a rich output schema and 100% parameter coverage, the description is sufficient: it covers filtering, ordering, pagination, the human-queue special case, and the polling caveat. An agent has everything needed to call the tool 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 description coverage is 100%, so the baseline is 3. The description adds valuable extra semantics: with=human maps to the human queue thread, before accepts a previous response's next_before, and the default page size is 20. These details go beyond the schema's field descriptions.

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 precise verb and resource: 'List your own conversations, sent and received, newest first'. It specifies scope, ordering, and filter dimensions, clearly distinguishing it from siblings like message_send, claims_list, and task_list.

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 gives explicit usage direction: 'use this for history, not to poll', explaining that new messages already arrive as inbox on every reply. It also documents the special human-queue case ('with=human shows the human queue thread') and the pagination workflow.

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