Skip to main content
Glama

Set prototype reactions

figma_set_reactions
Idempotent

Set or replace a Figma node's prototype interactions using a JSON reactions array; pass [] to remove all.

Instructions

Replace a node's prototype interactions. reactions is a JSON array. Shorthand per entry: { "trigger": "ON_CLICK", "action": { "type": "NODE", "destinationId": "12:3", "transition": "SMART_ANIMATE", "duration": 0.3 } } — duration in seconds; navigation defaults to NAVIGATE. Figma's full Reaction shape (what figma_get_reactions returns) is accepted as is. Other actions: BACK, CLOSE, URL ({ type, url }). Editors: Design; unverified: FigJam, Slides.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nodeIdYes
sessionNoOptional sessionId or file name, to pick a Figma file when more than one is connected.
reactionsYesJSON array of reactions; [] removes all.
idempotencyKeyNoCaller-owned retry key, ≤128 chars. Re-calling with the same key never executes twice: it returns the existing result, or waits for the op still in flight. Supply your own for anything large — if the MCP client times out (rather than the bridge), only a key you chose can be used to retry safely.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the description's added value is editor coverage (Design verified; FigJam/Slides unverified) and semantic defaults (NAVIGATE, duration in seconds). It does not note that existing interactions are overwritten or whether the op is undoable, which would be the remaining useful disclosure.

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?

One dense paragraph, front-loaded with the operation, then examples, then defaults, then editor support. Every clause earns its place, though the reaction-shape shorthand could be split for scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description supplies the non-obvious payload grammar, editor availability, and defaults, while idempotency retry semantics are handled by the schema. It omits error/failure behavior and the effect on previously existing reactions, which would round it out for a mutation tool.

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?

The schema only says 'JSON array of reactions; [] removes all', so the description carries real weight: it documents the per-entry shorthand, the trigger/action fields, all three alternative action types (BACK, CLOSE, URL), the transition and duration units, and the default navigation behavior. nodeId is left unexplained, though it is self-evident.

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?

States a specific verb and resource: replace a node's prototype interactions, which an agent can distinguish from figma_get_reactions and figma_remove_reactions by the verb alone. It stops short of explicitly routing the agent away from those siblings, so it is clear rather than fully differentiated.

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?

Usage context is implied rather than spelled out: 'Replace' plus the schema note that '[] removes all' tells the agent when this tool absorbs the clearing case, and the round-trip note ('what figma_get_reactions returns is accepted as is') ties it to a sibling. There are no explicit exclusions or prerequisite statements.

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

Deploy Server

Other Tools