Skip to main content
Glama

Chat Read

chat_read
Read-onlyIdempotent

Retrieve persisted campaign narration history with opaque cursor pagination, excluding dice rolls. Read-only for campaign members; repeated reads do not consume messages.

Instructions

Read persisted campaign messages with opaque cursor pagination. Use chat_read for narration history; use events_poll for dice results and live events. Read-only for campaign members. Start without a cursor, then pass nextCursor unchanged; stop at null. Older servers support only the latest page and reject cursor history. DICE_ROLL entries are excluded. Repeated reads do not consume messages. Returns {ok:true,data} on success; tool-body failures return {ok:false,error} with optional diagnostic data. Argument-schema errors are MCP errors.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1..100 messages; defaults to 20.
cursorNoOpaque pagination.nextCursor from the previous response; null starts with the latest page. Do not construct cursors or offsets.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.3.0
    • addedInput schema / properties / cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Opaque pagination.nextCursor from the previous response; null starts with the latest page. Do not construct cursors or offsets."
      +}
    • addedInput schema / properties / limit / description
      Added value: +"Page size, 1..100 messages; defaults to 20."
    • removedInput schema / properties / offset
      Removed value: -{
      -  "default": 0,
      -  "type": "integer"
      -}
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds actionable behavioral details: repeated reads do not consume messages, DICE_ROLL entries are excluded, older servers reject cursor history, and failure modes return ok:false. This goes well beyond the annotation hints.

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 dense but every sentence earns its place: purpose, routing, permissions, pagination procedure, server caveat, exclusions, idempotence, and error contract. The most critical usage guidance is front-loaded.

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?

With an output schema present and rich annotations, the description covers all operational essentials: pagination protocol, server compatibility, exclusions, and error format. Nothing an agent needs to invoke or interpret the tool correctly is missing.

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 the baseline is 3, but the description enriches the cursor parameter with lifecycle semantics ('pass nextCursor unchanged', 'stop at null', 'Do not construct cursors or offsets') and clarifies the limit's pagination role. Slight deduction because the limit parameter is not discussed beyond the schema.

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 specific verb and resource ('Read persisted campaign messages') and immediately distinguishes itself from events_poll. It also states exclusions (DICE_ROLL entries), leaving no ambiguity about what the 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?

Explicitly routes usage: 'Use chat_read for narration history; use events_poll for dice results and live events.' It also provides a clear pagination walkthrough (start without cursor, pass nextCursor unchanged, stop at null) and notes server compatibility caveats.

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