Skip to main content
Glama

React to a message with an emoji

react_to_message
Idempotent

Add or remove an emoji reaction on an existing WhatsApp message using its OWNER:MSGID identifier; pass an empty emoji to clear the reaction.

Instructions

Adds an emoji reaction to an existing message. Pass an empty emoji to remove the reaction. message_id must be in OWNER:MSGID format as returned by find_messages. Visible to the other person, so only react when the user asked.

Input Schema

NameRequiredDescriptionDefault
emojiYesEmoji, or empty string to remove the reaction.
numberYesRecipient phone with country code, digits only (e.g. 5511999999999 for Brazil). For groups use the group JID ending in @g.us.
message_idYesMessage id in OWNER:MSGID format.
instance_idNoZapZap instance id (a connected WhatsApp number). Optional when ZAPZAP_INSTANCE_ID is configured; otherwise call list_instances first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, the description discloses that the reaction is visible to the other person and that an empty emoji removes it. These are useful behavioral facts not captured by the annotation hints, though it could say more about failure modes for invalid message IDs.

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 tight sentences, front-loaded with the core action, followed by the remove behavior and the visibility warning. Every sentence adds something useful.

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 four-parameter mutation tool with annotations covering idempotence and non-destructiveness, the description covers the key behavioral points. It does not explain return values, but no output schema exists, so a small gap remains regarding what the reaction response contains or what happens on an invalid message ID.

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 the description mostly repeats facts already documented in the schema, such as the OWNER:MSGID format and the empty-emoji removal behavior. With the schema doing the heavy lifting, this is a baseline 3.

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?

The description states a specific verb and resource: 'Adds an emoji reaction to an existing message.' It is clearly distinct from the sibling send/edit/delete tools by naming the reaction operation, though it does not explicitly contrast itself with those siblings.

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?

It gives a clear when-to-use rule ('only react when the user asked') and explains the removal behavior ('Pass an empty emoji to remove the reaction'). It does not explicitly point to alternative tools, but the guidance is sufficient for correct invocation.

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