Skip to main content
Glama

Turbo Notify: WhatsApp for AI agents

Clear a conversation's unread backlog

mark_as_read

Mark a conversation's unread messages as read, without sending anything.

Set exactly one recipient: number, group_id, or contact_id.

This is independent of the automatic mark-as-read that already happens when you send, reply, react, edit, delete or start typing (the number also appears online first): use it to clear an unread badge on its own, for example when handing a conversation to a human who has already seen it. No message is sent and no message.* event is produced, but the sender sees the messages as read (blue ticks) on WhatsApp.

Needs a plan that includes read receipts (BUSINESS and above). Without it this answers payment_required: feature_not_available, and the answer will not change by retrying.

Input Schema

NameRequiredDescriptionDefault
numberNoRecipient phone number in E.164 form, digits only, country code first (e.g. `5511999999999`). Set exactly one of `number`, `group_id` or `contact_id`.
group_idNoRecipient group id (`grp_…`), from `list_groups`. A group id belongs to one number: an id from one inbox does not address the same group in another. Set exactly one of `number`, `group_id` or `contact_id`. Addressing a group needs a plan that includes group messaging: without it the call answers `payment_required: feature_not_available`, and retrying will not change that.
contact_idNoRecipient contact id (`ct_…`), from `list_contacts`. A contact id belongs to one number: an id from one inbox does not address the same person in another. Set exactly one of `number`, `group_id` or `contact_id`.
number_aliasNoWhich of the organization's WhatsApp numbers this acts on: `main`, the alias of an extra number, or the number's `id` (`num_…`), which stays the same when the alias is renamed. Call `list_numbers` to see them. Defaults to the main number.main

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: it explains that read receipts are a real, externally visible side effect ('sender sees the messages as read (blue ticks)'), which justifies readOnlyHint=false, while also stating no message is sent and no message.* event fires. It adds plan gating and the exact failure mode ('payment_required: feature_not_available') with the warning that retrying is futile.

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?

Front-loaded with the core action and the recipient constraint, and every paragraph carries information. Minor deductions for a parenthetical aside ('the number also appears online first') that is hard to parse and for line breaks splitting sentences mid-clause.

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 four-parameter mutation with an output schema and annotations already present, the description supplies the remaining essentials: side effects visible to third parties, plan prerequisite, error code, and non-retryability. An agent has everything needed to decide and call correctly.

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% and each parameter already documents its format, the exactly-one-of rule, and the cross-inbox caveat for ids. The description's 'Set exactly one recipient: number, group_id, or contact_id' restates the schema rather than adding meaning, so the baseline of 3 applies.

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 conversation's unread messages as read') plus the key negative scope ('without sending anything'). An agent can immediately separate this from send_text, reply_to_message, or react_to_message, none of which exist to clear unread state.

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 says this is independent of the automatic mark-as-read triggered by send/reply/react/edit/delete/typing, and gives the one condition that selects it: clearing a badge on its own, e.g. handing a conversation to a human who has already seen it. That is a real when-to-use and implicit when-not-to-use rule.

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.