Skip to main content
Glama
oddrationale

groupme-mcp-server

by oddrationale

react_to_message

Idempotent

Like or unlike a GroupMe message on the authenticated user's behalf using its conversation and message IDs. Idempotent: repeats leave the message in the requested state.

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
Behavior5/5

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

Even though idempotentHint is already present in annotations, the description explains the behavioral consequence concretely: liking an already-liked message or unliking one never liked leaves it in the requested state. It also adds that the action is performed on the authenticated user's behalf and clarifies the meaning of conversation_id values. This goes well beyond the annotation and schema.

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 compact and front-loaded: it states the action first, then usage context, then idempotence, then ID source. Every sentence earns its place with no filler or redundancy.

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?

For a small, three-parameter mutation tool with an output schema and strong annotations, the description covers what the tool does, how to use it correctly, where the required IDs come from, and its idempotent behavior. Nothing essential for correct invocation is missing.

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

Parameters5/5

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

Schema description coverage is 100%, but the description adds valuable meaning beyond the schema: conversation_id can be a group id or a composite direct-chat id like '123+456', and both IDs come from read_messages with response_format='detailed'. This is critical guidance an agent would not get from the generic schema property descriptions.

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 opens with a precise verb and resource: 'Like a GroupMe message, or remove your like from one.' It clearly states the operation and distinguishes it from sending a reply ('without posting a reply'), making it easy for an agent to know what this tool does relative to send_message.

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 an explicit 'Use this to' clause and frames it for acknowledgement scenarios rather than replying, which differentiates it from the sibling send_message. It also tells the agent exactly where to obtain IDs (read_messages with response_format='detailed'), though it does not explicitly name alternatives or say when not to use it.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oddrationale/groupme-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server