Skip to main content
Glama
oddrationale

groupme-mcp-server

by oddrationale

React To Message

react_to_message
Idempotent

Like or unlike a GroupMe message to acknowledge it without replying. Requires conversation ID and message ID from read_messages.

Instructions

Like a GroupMe message, or remove your like from one.

Use this to react to a specific message on the authenticated user's behalf — acknowledging something without posting a reply. Both actions are idempotent: liking an already-liked message (or unliking one you never liked) leaves it in the requested state. Ids come from read_messages with response_format="detailed": use its conversation_id (a group id, or a composite direct-chat id like "123+456") and message id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes``"like"`` to like it, ``"unlike"`` to remove your like.
message_idYesThe message to react to.
conversation_idYesThe conversation holding the message.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
message_idYes
confirmationYes
conversation_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false, openWorldHint=true. The description earns credit by spelling out what idempotency concretely means ('liking an already-liked message ... leaves it in the requested state') and by noting the action is on the authenticated user's behalf. It does not mention rate limits or failure behavior, but the annotation bar is already met.

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, then the usage context and id-sourcing details. Every sentence carries information; the RST double-backtick artifacts and slight redundancy around message_id are the only minor drag.

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?

An output schema exists, so return values need not be explained. Combined with annotations, the description covers the action semantics, idempotency, auth scope, and how to source the required ids — everything needed to invoke it correctly.

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. The description adds genuine meaning beyond the schema by explaining where the ids originate (read_messages with response_format='detailed') and warning that conversation_id may be a group id or a composite direct-chat id like '123+456'.

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 opening sentence gives a specific verb+resource ('Like a GroupMe message, or remove your like from one') and the scope is unambiguous. It is clearly distinguishable from send_message because the follow-up states the purpose is 'acknowledging something without posting a reply.'

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 clear positive context ('react to a specific message on the authenticated user's behalf') and implicitly routes away from send_message by noting no reply is posted. It also tells the agent where to obtain ids. It never explicitly names an alternative tool or states a when-not-to-use condition, so it stops short of a 5.

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