Skip to main content
Glama
whatsapp-mcp

whatsapp-mcp

by petrkyncl

list_messages

Retrieve messages from a WhatsApp chat in chronological order, returning the newest limit messages and paging further back with a before timestamp.

Instructions

Messages of one chat (jid, phone number, or contact/group name), oldest first. Returns the newest limit messages; pass before (ISO time) to page further back. Includes history_complete: when false, older messages may still be on the phone (use load_full_history).

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": {
      "chat": "<chat>"
    },
    "name": "list_messages"
  }
}

Input Schema

NameRequiredDescriptionDefault
chatYes
limitNo
beforeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are supplied, so the description bears the full burden and it delivers substantive behavior: result ordering (oldest first), pagination semantics (newest `limit` returned, `before` walks backward), and a data-completeness caveat exposed via the history_complete field with a remediation path. Missing only lower-value details such as whether it is strictly read-only or any result-size constraints.

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?

Three dense sentences, each earning its place: identity/ordering first, then paging mechanics, then the completeness caveat with its escape hatch. No redundancy and the most decision-relevant facts are front-loaded.

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 three-parameter read tool with no output schema and no annotations, the description covers scope, ordering, paging, and the history_complete signal an agent needs to interpret results. Only the shape of an individual message is left unspecified, which is acceptable absent an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry all parameter meaning and it does: `chat` is defined by accepted identifier forms, `limit` by which slice of the history it selects (the newest N), and `before` by both format (ISO time) and purpose (page further back). Every one of the three parameters is semantically grounded beyond its bare name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (messages of one chat) and accepts an identifier form (jid, phone number, or contact/group name), plus an explicit ordering: oldest first. It is clear what it returns, though it does not explicitly distinguish itself from search_messages, which an agent might reasonably confuse with a chat-scoped listing.

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?

Gives concrete paging guidance (pass `before` as ISO time to page further back) and names the alternative load_full_history with the exact condition that selects it (history_complete false). It stops short of saying when to prefer this over search_messages or list_chats, so the routing guidance is incomplete but the key branch is explicit.

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