Skip to main content
Glama

Messaging: List recent messages

messaging_list_recent_messages
Read-onlyIdempotent

Digest of the messages RECEIVED across every WhatsApp/Instagram/Telegram chat in a time window: 'what did I get on WhatsApp since yesterday noon?', 'summarize my Telegram messages of the last 2 hours', scheduled inbound digests. Enumerates chats without a creation-date filter, reads each one with message-level after/before and returns inbound messages grouped by chat, newest first — one call instead of paginating messaging_list_chats + messaging_list_messages. When complete is false (enumeration or read limits, or unknown message direction), say so instead of presenting the digest as exhaustive. Returns chat_id + message id pairs usable with message_get / messaging_send_message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
afterYesStart of the window, ISO 8601 with Z or offset (exclusive). Convert 'since yesterday noon' with the user's timezone.
beforeNoEnd of the window (exclusive); omit for 'until now'.
providerYesMessaging provider named by the user. LinkedIn recipients use linkedin_resolve_person + linkedin_start_conversation instead.
chat_typeYesRestrict to direct chats or groups.all
max_chatsYesMaximum number of chats read for messages (most recently active first).
account_idNoOptional Nilyo connection ID (unipile_account_id from list_connected_accounts). Required when the user has several accounts for the provider: pick the one the user named.
include_sentYesAlso return messages sent by the user (default: inbound only).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds genuinely non-obvious behavioral contract: the `complete` flag semantics (false on enumeration or read limits or unknown direction) and the instruction to disclose non-exhaustiveness, plus that results are grouped by chat, newest first.

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 scope are front-loaded in the first clause, and the examples and fallback guidance each carry real informational weight. It is dense and slightly run-on, but almost no clause is expendable.

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?

With no output schema, the description carries the return-value burden and does so reasonably: grouped by chat, newest first, chat_id + message id pairs usable with message_get / messaging_send_message, plus the completeness flag. A little more on pagination/limit interaction with max_chats would close the remaining gap.

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 the schema already documents every parameter including timezone handling, provider, chat_type, and max_chats. The description reinforces the time-window and inbound-only framing but adds little parameter syntax beyond what the schema provides, so baseline 3 is appropriate.

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?

States a specific verb and resource (digest of RECEIVED messages) with an explicit scope (WhatsApp/Instagram/Telegram chats within a time window) and concrete query examples. It also names the sibling tools it replaces (messaging_list_chats + messaging_list_messages), letting an agent distinguish it without opening another 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?

Explicitly frames when to use it (inbound digests, 'what did I get since yesterday noon', scheduled digests) and when alternatives apply — one call instead of paginating two siblings, and LinkedIn recipients route to linkedin_resolve_person + linkedin_start_conversation. Both the selection and exclusion conditions are stated.

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.