Skip to main content
Glama
whatsapp-mcp

whatsapp-mcp

by petrkyncl

mark_read

Marks a WhatsApp chat as read, sending blue-tick read receipts and clearing unread badges across the user's devices when requested or allowed by a standing rule.

Instructions

Mark a chat as read on the user's WhatsApp, like opening it on the phone: sends read receipts (blue ticks) and clears the unread badge on all their devices. Only when the user asked, or their standing rule says so. Reading with the other tools never marks anything read.

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": "mark_read"
  }
}

Input Schema

NameRequiredDescriptionDefault
chatYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations to lean on, the description carries the full burden and does it well: it names the concrete side effects (read receipts / blue ticks sent, unread badge cleared on all devices), which exposes that the action is externally visible and effectively irreversible. It also frames consent requirements, which is exactly the context an agent needs before mutating user-visible state.

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 short sentences, side effects front-loaded, then the consent policy, then the sibling disambiguation. No redundant restatement of the name or filler.

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 one-parameter tool with no output schema, the description covers behavior, side effects, and consent policy thoroughly. The one meaningful gap is the identifier format for 'chat', which is left entirely to the agent's inference.

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

Parameters2/5

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

Schema description coverage is 0% for the single required 'chat' parameter, so the description must supply the meaning — but it never says whether 'chat' is a JID, phone number, or display name, nor how to obtain a valid value (e.g., from list_chats). The only hint is the word 'chat' itself.

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 ('Mark a chat as read on the user's WhatsApp') and immediately disambiguates from the sibling read tools: 'Reading with the other tools never marks anything read.' An agent can distinguish this from list_messages or search_messages without opening any 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 an explicit gating condition — 'Only when the user asked, or their standing rule says so' — plus the negative case that passive reading via other tools does not have this effect. Both when-to-use and when-not-to-use are stated.

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