Skip to main content
Glama

GifSnap by Rowix

React with a GIF

react_with_gif
Read-onlyIdempotent

Use this when GifSnap is selected for conversational GIF reactions. During that reaction chat, use one matching GIF for each casual social reply, including follow-ups like haha, xd, or laughter emojis, without requiring another @mention. Preserve the topic in query: cheeseburger hungry for a burger conversation, laughing for laughter, friendly wave for hello. On haha, xd, or laughter emojis, use query laughing, without reusing a previous burger/food/object topic. Preserve a subject only when the current message actually mentions it. The component displays one GIF; respond in TEXT ONLY alongside it, without an additional image or picker. Read reaction.description so you know what was displayed. Pass recent returned reaction.id values in excludeIds to avoid repeating GIFs. Respect stop or fewer-GIF requests and omit reactions for serious or purely factual tasks. Do not send transcripts or personal information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesTwo to six search keywords for the current topic and action, such as cheeseburger hungry, cat laughing, friendly wave, or laughing. Keep concrete subjects: a burger conversation should not become generic excitement. For a laughter-only or emoji-only follow-up, use its present emotion, e.g. laughing; do not carry forward an old object such as burger unless the user mentions it again. No personal information or transcript.
excludeIdsNoUp to five recent reaction.id values from this conversation to avoid repeating a GIF; omit on the first turn.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYes
queryYes
statusYes
messageYes
reactionYes
reactionShownYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses real behavioral detail: the component displays exactly one GIF, the reply must be TEXT ONLY with no extra image or picker, reaction.description should be read to know what was shown, and excludeIds should carry recent reaction.id values to avoid repeats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger condition is correctly front-loaded, but the laughter guidance is restated twice ("follow-ups like haha, xd, or laughter emojis" and again "On haha, xd, or laughter emojis, use query laughing"), and the topic-preservation rule repeats in both the description and the query schema. It is dense and somewhat redundant.

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-value detail is unnecessary, and the description covers the remaining behavioral contract (single GIF, text-only reply, anti-repetition via excludeIds, privacy constraints, stop handling) thoroughly enough for correct invocation.

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 baseline is 3, but the description reinforces parameter meaning with concrete topic-preservation rules ("cheeseburger hungry for a burger conversation") and the excludeIds-as-recent-ids contract. This adds usable semantics, though it largely overlaps the schema text.

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?

The description states a specific verb+resource (send one conversational GIF reaction) and anchors the trigger to "GifSnap is selected for conversational GIF reactions," which is concrete. It does not name the sibling search_gifs or explain how this differs from it, so it falls short of full differentiation.

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

Usage Guidelines5/5

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

It gives explicit positive conditions (casual social replies, follow-ups like haha/xd/emoji, no @mention needed) and explicit exclusions (serious or purely factual tasks, stop or fewer-GIF requests). An agent knows precisely when to fire and when to hold back.

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.

Resources