Skip to main content
Glama

Send a reaction (WRITE — posts to Stream)

stream_send_reaction
Destructive

⚠️ WRITE: add a reaction (e.g. "like", "love") to a message, attributed to user_id (must be an existing user). POST /api/v2/chat/messages/{id}/reaction.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesMessage id to react to.
user_idYesExisting user id to react as.
reaction_typeYesReaction type, e.g. "like", "love", "haha".

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only provide destructiveHint=true, while the description adds the explicit WRITE warning, the POST endpoint, and the requirement that user_id reference an existing user. This gives useful behavioral context beyond the annotations, without contradicting them.

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?

The description is a single, well-structured sentence with the critical WRITE warning front-loaded and the endpoint included. Every element earns its place with no unnecessary filler.

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?

The description, combined with the output-free schema and destructiveHint annotation, provides everything needed to invoke the tool correctly: the operation, target resource, endpoint, required parameters, and the user existence caveat.

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 coverage is 100%, so the schema already documents all three parameters and their meanings. The description reinforces the user_id requirement and provides reaction examples, but adds no substantial meaning beyond the schema.

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?

The description states a specific action ('add a reaction to a message'), identifies the resource (message), and includes the endpoint. This clearly distinguishes it from siblings like stream_send_message and stream_get_reactions.

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?

The description clearly implies when to use this tool: whenever a reaction needs to be added to a message. It also adds a precondition (user_id must be an existing user), but does not explicitly name alternatives or when-not-to-use scenarios.

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.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: app info, channel state, messages, reactions, replies, unread counts, and various query types. Even similar tools like get_channel vs query_channels are clearly separated by single-item vs list operations.

Naming Consistency5/5

All tools follow the consistent pattern stream_<verb>_<resource> (e.g., stream_get_message, stream_query_channels, stream_send_message). Verb usage is coherent across the set.

Tool Count5/5

With 13 tools, the set is well-scoped for a chat API server, covering core read, query, search, and write operations without excessive fragmentation.

Completeness4/5

Core chat workflows are covered: app info, channel access, messaging, reactions, threads, unread counts, and user/channel queries. Missing mutations like channel/message update or delete are notable but not severe, as the get-or-create channel behavior and send actions cover primary use cases.