About Figma Prototype
Figma Prototype is an MCP server in the Content category: mCP server for creating Figma prototype interactions via natural language.
Install
claude mcp add figma-prototype -- npx -y figma-prototype-mcpnpx -y figma-prototype-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (10)
proto_backWire source nodes to the **Back** navigation action (pops the prototype history stack). Batch input `{ backs: [{ from, trigger?, motion? }], replaceExisting? }`. Defaults: `trigger=ON_CLICK`, `motion=M3_EMPHASIZED`.
Parameters not published.
proto_change_toSwitch a component **instance** to a sibling **variant** (Figma's **Change To**) — a one-shot switch to a specific state (tabs, segmented controls, selected/highlight). Batch input `{ changes: [{ from, to, trigger?, motion? }], replaceExisting? }`; `from`=instance node id, `to`=target variant component id (NOT the current variant). For a repeating on/off flip use `proto_toggle_variable` on a BOOLEAN.
Parameters not published.
proto_conditionalWire a **conditional reaction** (if/then/else) on a source node based on a variable comparison. Batch input `{ conditions: [{ from, if, then, else?, trigger?, motion? }], replaceExisting? }`. `if` is a single comparison `{ variable, operator?, value }` OR a one-level compound `{ all: [...] }` (AND) / `{ any: [...] }` (OR) over ≥2 comparisons. `if.operator` defaults to `"=="`. `then`/`else` each take ONE branch sugar entry (single-action). Branch keys: `navigate` / `scroll` / `overlay` / `swap` / `close` / `back` / `url` / `set`. For multi-action branches, use low-level `create_reactions`. Overlay/swap branches: SMART_ANIMATE auto-rewrites to DISSOLVE.
Parameters not published.
proto_get_last_historyRead the in-memory history of recent `proto_*` calls (FIFO ring buffer, capacity 10, server-lifetime). Input `{ count?: 1..10 }`, default 1. Returns `{ entries: HistoryEntry[] }` with entries in oldest-to-newest order. Use to support "modify the last one I made"-style requests by recovering source/target IDs and motion preset, then re-calling with `replaceExisting: true`.
Parameters not published.
proto_overlayOpen / swap / close overlays. Batch input `{ overlays: [{ mode: "open"\
Parameters not published.
proto_scrollWire source nodes to scroll targets (**Scroll To**). Batch input `{ scrolls: [{ from, to, trigger?, motion?, resetScrollPosition? }] }`.
Parameters not published.
proto_set_variableWire source nodes to the **Set Variable** action — clicking the source assigns a literal value to a local Figma variable (resolved by name). Batch input `{ sets: [{ from, variable, value, trigger? }], replaceExisting? }`. `value`: boolean / number / string; for COLOR variables, pass a hex string (`"#RRGGBB"` or `"#RRGGBBAA"`). No `motion` field — variable changes are instant.
Parameters not published.
proto_toggle_variableWire source nodes to the **Toggle Variable** action — clicking the source flips a local BOOLEAN variable. Batch input `{ toggles: [{ from, variable, trigger? }], replaceExisting? }`. Variable must be BOOLEAN; non-boolean throws at runtime. No `motion` field.
Parameters not published.
proto_urlWire source nodes to the **Open URL** action. Batch input `{ urls: [{ from, url, openInNewTab?, trigger? }], replaceExisting? }`. No `motion` field — URL is a terminal event; the reaction's transition defaults to INSTANT.
Parameters not published.
proto_wireWire source nodes to destination frames with **Navigate To**. Batch input `{ wires: [{ from, to, trigger?, motion?, resetScrollPosition? }], replaceExisting? }`. Defaults: `trigger=ON_CLICK`, `motion=M3_EMPHASIZED`.
Parameters not published.
Ask AI
Ask AI about Figma Prototype
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.