Skip to main content
Glama

Add reaction

add_reaction
Idempotent

Add a like, clap, or bookmark reaction to an article; no-op if the reaction already exists. Deprecated: use upvote_article for likes/claps and save_article for bookmarks.

Instructions

Deprecated (the v1 reactions API sunsets on 2027-02-03): add a reaction to an article. Use upvote_article instead of like or clap, and save_article instead of bookmark. No-ops if already reacted. Requires API key.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "article_id": "<article_id>",
      "type": "<type>"
    },
    "name": "add_reaction"
  }
}

Input Schema

NameRequiredDescriptionDefault
typeYesReaction type: like, clap, or bookmark
article_idYesUUID of the article

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv5.2.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / article_id / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  2. Changed2 schema fields changedv5.1.3
    • changedInput schema / properties / article_id / description
      Previous value: -"UUID of the article to react to, from the `id` field of article tools."New value: +"UUID of the article"
    • changedInput schema / properties / type / description
      Previous value: -"Which reaction to add: 'like' approval, 'clap' stronger approval, 'bookmark' save for later."New value: +"Reaction type: like, clap, or bookmark"
  3. Changed2 schema fields changedv5.1.0
    • changedInput schema / properties / article_id / description
      Previous value: -"UUID of the article"New value: +"UUID of the article to react to, from the `id` field of article tools."
    • changedInput schema / properties / type / description
      Previous value: -"Reaction type: like, clap, or bookmark"New value: +"Which reaction to add: 'like' approval, 'clap' stronger approval, 'bookmark' save for later."
  4. First observedv2.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the description's 'No-ops if already reacted' is a clarifying restatement rather than new information. It does add context annotations cannot carry: the sunset date for the v1 reactions API and the 'Requires API key' auth prerequisite.

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?

Four short clauses, deprecation front-loaded so an agent sees the warning before anything else, and each clause carries distinct actionable information: status, action, migration path, no-op behavior, auth requirement. No 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?

A two-parameter mutation with no output schema, so the description needs to cover intent, safety, and routing — and it does, including auth and idempotency. Nothing an agent needs in order to decide whether to call this deprecated tool is missing.

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% and the enum values are already described, so the baseline is 3. The description earns a bump by explaining what the enum values map to in the wider toolset (like/clap correspond to upvote_article, bookmark to save_article), which is semantic meaning absent from 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?

States a specific verb and resource ('add a reaction to an article'), leads with deprecation status and a sunset date, and immediately distinguishes itself from siblings upvote_article and save_article. An agent can tell what this does and that it is being retired without opening any schema.

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?

Explicitly steers away from this tool: 'Use upvote_article instead of like or clap, and save_article instead of bookmark' gives a per-value migration mapping, not just a generic 'use X instead'. That is a genuine when-not-to-use directive plus named alternatives.

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