Skip to main content
Glama

dm_message_react

DestructiveIdempotent

Add a reaction from your business account to a message. Facebook Messenger, Instagram Direct and WhatsApp (not Telegram or Bluesky). On WhatsApp pass emoji — any unicode emoji — and reaction names are ignored. A second react replaces the previous one.

Input Schema

NameRequiredDescriptionDefault
emojiNoUnicode emoji. Forwarded to Instagram; on Facebook Messenger it overrides 'reaction' as the literal value sent; required on WhatsApp.
reactionNoNamed reaction, defaults to 'love'. On Instagram only 'love' is accepted; on Facebook Messenger common names (love, like, dislike, smile, wow, sad, angry) are auto-translated to emoji.
message_idYesMessage hashid OR external_id

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=true. The description adds real value beyond them by explaining the replacement semantics ('A second react replaces the previous one') and the business-account origin, which clarifies why the operation is flagged destructive and idempotent.

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, front-loaded with the action, then platform scope, then the emoji/replacement caveat. No filler; every clause carries information an agent needs.

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?

No output schema exists but the tool's result is not essential to describe, and the annotations plus description together cover safety, platform scope and replacement behavior. It is nearly complete; the only mild gap is not stating interaction with dm_message_unreact.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the schema already documents emoji/reaction fallback behavior. The description adds a small amount of meaning by emphasizing the WhatsApp rule ('pass emoji ... reaction names are ignored'), which sharpens the emoji-vs-reaction choice.

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 ('Add a reaction ... to a message') and immediately scopes the supported platforms. An agent can distinguish it from siblings like dm_message_unreact or dm_message_send without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides platform applicability ('Facebook Messenger, Instagram Direct and WhatsApp (not Telegram or Bluesky)'), which is useful when-to-use context, but never references the obvious alternative dm_message_unreact or the condition under which you would remove vs add a reaction. Usage is implied rather than explicitly routed.

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.