Skip to main content
Glama

Read a chat

list_messaging_messages
Read-onlyIdempotent

Messages in one chat of a connected account, newest first (text, is_sender, sent_at, seen, reactions, quoted, message_type, attachments). Paged with cursor: keep passing next_cursor to go back through older history. Each attachment has a kind (image, video, gif, sticker, audio, voice_note, file, shared_post, shared_reel, shared_story, shared_profile, shared_link), size, duration and a short-lived url where the platform gives one; a shared post, reel, story or profile has shared { kind, url, author, caption, thumbnail_url }. On Instagram, message_type story_mention means the person mentioned the account in their story, story_reply that they replied to its story. Messages come from Spaces' own copy where it holds them (source: cache); older history comes from the platform slowly, in small pages, and a 429 means wait retry_after. The answer has account_budget: wait next_check_after_seconds before checking the chat again, and do not poll faster. To learn about new messages, call wait_for_events instead of reading chats again and again. Read-only. Before you reply to a customer, read the business brief with get_business_brief and follow it: its facts, tone, never-promise rules and when to hand over to a person.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "account_id": "<account_id>",
      "chat_id": "<chat_id>"
    },
    "name": "list_messaging_messages"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
cursorNo
chat_idYes
account_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare read-only/idempotent/open-world; the description adds substantive behavior the annotations cannot convey: cursor-based pagination through older history, cache vs platform sourcing ('older history comes from the platform slowly, in small pages'), 429 handling via retry_after, and a rate-limit budget. That is well beyond the structured safety profile.

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?

Purpose and paging guidance are front-loaded, and there is no output schema so the field enumeration (text, is_sender, sent_at, reactions, attachments) earns its space. It is dense and somewhat run-on, particularly the attachment-kind laundry list, but almost every clause carries operational information.

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 no output schema, the description must describe returns and it does: enumerated message fields, attachment sub-fields (kind, size, duration, short-lived url), the nested shared { kind, url, author, caption, thumbnail_url } shape, Instagram story_mention/story_reply semantics, and the account_budget envelope. An agent can call and interpret the result without further context.

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 0%, so the description carries the burden and largely does: it explains cursor usage ('keep passing next_cursor to go back through older history') and scopes account_id/chat_id ('one chat of a connected account'). The limit parameter's range/default behavior is never explained, leaving one of four parameters to name-only inference.

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?

Opens with a specific verb+resource+scope: 'Messages in one chat of a connected account, newest first'. It immediately distinguishes this from sibling listers (list_messaging_chats, list_messages) and from the event-stream tool, so an agent can select it without opening the schema.

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?

Gives explicit routing rules: use wait_for_events 'instead of reading chats again and again' to learn about new messages, and call get_business_brief before replying to a customer. It also states a concrete usage constraint via account_budget (wait next_check_after_seconds, do not poll faster), which is exactly the when/when-not guidance an agent needs.

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