Skip to main content
Glama

matrix_send_reaction

Add an emoji reaction to an existing Matrix message, stacking alongside other reactions without replacing them. Supports dry-run previews.

Instructions

Add an emoji reaction (👍 ❤️ ✅ etc.) to an existing message. Stacks alongside other reactions, doesn't replace. dry_run-able.

Input Schema

NameRequiredDescriptionDefault
emojiYes
tenantNo
dry_runNo
room_idYes
idempotency_keyNo
target_event_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It helpfully discloses the stacking behavior ('stacks alongside other reactions, doesn't replace') and that it's dry_run-able, which are real behavioral traits. However it omits permission requirements, idempotency behavior, and any rate-limit context.

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, front-loaded sentences with zero filler. The core action, the key behavioral fact, and the dry_run hint are all packed tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained. But with 6 params, 0% schema coverage, and no annotations, the description leaves material gaps around idempotency_key, tenant, and permission expectations.

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%, so the description must compensate but largely doesn't. It conveys what 'emoji' takes and that a target message is required, plus dry_run, but gives no meaning for tenant, idempotency_key, or room_id, leaving half the parameters undocumented anywhere.

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 verb+resource+scope: adding an emoji reaction to an existing message, with concrete emoji examples. The 'existing message' framing distinguishes it implicitly from matrix_send_message, though no sibling is named explicitly.

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?

The phrase 'to an existing message' implies the precondition (target must already exist), and 'dry_run-able' hints at a preview mode. But there's no explicit when-to-use vs matrix_send_message/matrix_mark_read guidance or when-not conditions.

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