Skip to main content
Glama

chat-list

Read-onlyIdempotent

Read recent chat messages (plain text, HTML stripped) in chronological order: what players discuss, roll results, combat narration. since = a message ID to poll for newer messages.

Input Schema

NameRequiredDescriptionDefault
typeNoic = in-character, ooc = out-of-character, emote, roll.
limitNoNumber of messages. Default 20, max 100.
sinceNoMessages AFTER this message ID (polling).
beforeNoMessages BEFORE this message ID (scrolling back).
searchNoCase-insensitive text search across message content.
actorIdNoFilter by actor ID (speaker.actor).
authorIdNoFilter by Foundry user ID of the author.
includeRollsNoInclude roll formula and total. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedInput schema / properties / actorId / description
      Previous value: -"Filter by actor ID (speaker.actor). Use to see what a specific character said."New value: +"Filter by actor ID (speaker.actor)."
    • changedInput schema / properties / authorId / description
      Previous value: -"Filter by Foundry user ID of the message author."New value: +"Filter by Foundry user ID of the author."
    • changedInput schema / properties / before / description
      Previous value: -"Return messages BEFORE this message ID. Use for scrolling back."New value: +"Messages BEFORE this message ID (scrolling back)."
    • changedInput schema / properties / includeRolls / description
      Previous value: -"Include roll data (formula + total) in results. Default: false."New value: +"Include roll formula and total. Default false."
    • changedInput schema / properties / limit / description
      Previous value: -"Number of messages to return. Default: 20, max: 100."New value: +"Number of messages. Default 20, max 100."
    • changedInput schema / properties / since / description
      Previous value: -"Return messages AFTER this message ID. Use for polling new messages."New value: +"Messages AFTER this message ID (polling)."
    • changedInput schema / properties / type / description
      Previous value: -"Filter by message type: \"ic\" = in-character, \"ooc\" = out-of-character, \"emote\" = action, \"roll\" = dice roll."New value: +"ic = in-character, ooc = out-of-character, emote, roll."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety bar is low; the description adds genuinely new context by stating results are plain text with HTML stripped and returned in chronological order, which tells the agent how to interpret the payload. It stops short of describing pagination behavior or how limit interacts with since/before.

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?

Two dense sentences with the resource, format and ordering stated first and the polling hint last. No filler, and the most load-bearing information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, zero-required read tool with full schema coverage and annotations, the description covers purpose, output format and ordering adequately. Minor gaps remain: it never mentions the default limit of 20, the available filters, or that returned messages carry the IDs needed for subsequent since/before calls.

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 description coverage is 100%, so every parameter is already documented, and the description's only parameter remark ('since = a message ID to poll') largely restates the schema text. The seven other filters (type, limit, before, search, actorId, authorId, includeRolls) get no added meaning from the description, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb and resource are coupled with concrete content cues ('what players discuss, roll results, combat narration'), so the agent immediately knows this is the chat-read tool. It does not explicitly name the sibling it differs from (chat-export, chat-clear, chat-update), leaving that differentiation to be inferred from the names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'since = a message ID to poll for newer messages' clause gives one concrete usage pattern, but there is no statement of when to prefer this over chat-export or how to page backwards versus forwards beyond the schema's own wording. Usage is implied rather than explicitly routed.

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