Skip to main content
Glama

List inbox

list_messages
Read-onlyIdempotent

Fetch received messages newest first, including sender, topic, time, read state, and previews. Reactions are hidden unless explicitly included.

Instructions

List messages received by this address, newest first. Each item carries the id, sender, recipients, topic, time, read state, flags, size, attachment names and a short preview. Reaction messages are hidden unless include_reactions is true. Use get_message for a full body and get_thread for the conversation around a message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNopage size (host maximum 100)
offsetNonumber of newest messages to skip
unread_onlyNokeep only unread messages from the fetched page
include_reactionsNoalso list reaction messages (normally hidden)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
offsetYes
messagesYes
next_offsetYesoffset for the next page, or null when this page was short

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.3

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, not destructive), and the description adds valuable behavioral detail: messages are returned newest first, reaction messages are hidden by default, and each item's field list is disclosed. This goes beyond the structured annotations without contradicting them.

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 three tight sentences: the first states action and ordering, the second summarizes returned fields, and the third routes to related tools. Every sentence earns its place, and there is no redundant repetition of schema or annotation content.

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 tool with no required parameters, a complete input schema, and an output schema present, the description covers the essential behavior, result fields, ordering, filtering nuance, and alternatives. Nothing an agent needs to call 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 description coverage is 100%, so the baseline is 3. The description adds extra meaning for include_reactions by explicitly connecting it to the hidden-by-default reaction message behavior, and the 'newest first' statement clarifies how offset/limit behave. It does not need to restate the schema's already-complete parameter docs.

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: 'List messages received by this address, newest first.' It clearly defines the inbox scope, distinguishing it from the sibling list_sent, and further differentiates from get_message and get_thread by noting what those alternatives provide.

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?

The description gives explicit routing guidance: 'Use get_message for a full body and get_thread for the conversation around a message.' It also clarifies the conditional use of include_reactions by stating that reaction messages are hidden unless the flag is true. This is sufficient for an agent to choose between the main related tools.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markmnl/fmsg-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server