Skip to main content
Glama

chat-list

Read-onlyIdempotent

Read recent chat messages from Foundry VTT. Use to see what players are discussing, check roll results, or review combat narration. Returns plain text (HTML stripped). Use since param with a message ID to poll for new messages since last check. Filters: authorId, actorId, type (ic/ooc/emote/roll), search text. Messages are returned in chronological order (oldest first).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by message type: "ic" = in-character, "ooc" = out-of-character, "emote" = action, "roll" = dice roll.
limitNoNumber of messages to return. Default: 20, max: 100.
sinceNoReturn messages AFTER this message ID. Use for polling new messages.
beforeNoReturn messages BEFORE this message ID. Use for scrolling back.
searchNoCase-insensitive text search across message content.
actorIdNoFilter by actor ID (speaker.actor). Use to see what a specific character said.
authorIdNoFilter by Foundry user ID of the message author.
includeRollsNoInclude roll data (formula + total) in results. Default: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral details beyond that: 'Returns plain text (HTML stripped)' and 'Messages are returned in chronological order (oldest first)'. It also explains the polling semantics. This adds meaningful context without contradicting the annotations.

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?

The description is four sentences, each with a distinct purpose: core function, use cases, return format, polling, filters, and ordering. It is front-loaded with the core purpose and avoids redundancy. Every sentence earns its place, making it highly efficient.

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 a read-only list tool with no output schema and comprehensive annotations, the description covers all essential aspects: purpose, use cases, return format, ordering, polling, and filters. It does not mention edge cases like empty results or error behavior, but these are minor for a read operation. The description is complete enough for an agent to call it correctly without further ambiguity.

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 each parameter already has a description. The description adds usage context for the `since` parameter (polling) and groups the filters (authorId, actorId, type, search) as a coherent set. It doesn't repeat schema details but highlights the intended use of specific parameters, which is helpful. Baseline is 3 due to full coverage, and the added polling guidance justifies a 4.

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 states a specific verb ('Read') and resource ('chat messages from Foundry VTT'), then lists concrete use cases ('see what players are discussing, check roll results, or review combat narration'). This clearly distinguishes it from sibling write tools like chat-send, chat-update, and chat-delete by framing it as a read operation. The purpose is unambiguous and actionable for an agent.

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

Usage Guidelines4/5

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

The description gives clear usage scenarios ('Use to see what players are discussing...') and provides a specific polling pattern ('Use since param with a message ID to poll for new messages'). It does not explicitly name alternatives or state when not to use it, but the context of siblings and the explicit read-only framing make the appropriate use clear. Missing an explicit 'instead of chat-export' or similar, but overall guidance is strong.

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