Skip to main content
Glama

Set variable properties

figma_set_variable_properties
Idempotent

Update Figma variable properties such as name, scopes, code syntax, description, and publishing visibility in bulk by ID or exact name, with per-item results.

Instructions

Change what a token carries besides its value: name (one variable only), scopes, codeSyntax ("" removes a platform), description, hiddenFromPublishing — on many variables at once, by id or exact name. Scopes are checked against each variable's own type. Values per mode: figma_set_variable_value. Returns per-item results: items: [{ id, ok, error? }] — one item failing does not fail the call. Editors: Design; unverified: FigJam, Slides.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoRename — only when one variable is targeted.
scopesNoWhich property pickers offer it. [] hides a primitive that is only aliased; semantic tokens name their fields, e.g. ["FRAME_FILL","SHAPE_FILL"] or ["GAP"]. Checked against the type; ALL_SCOPES stands alone. Default (omitted): Figma's ALL_SCOPES.
sessionNoOptional sessionId or file name, to pick a Figma file when more than one is connected.
codeSyntaxNoThe name in code per platform, e.g. { "WEB": "var(--color-bg-brand)" }. "" removes that platform.
descriptionNo
variableIdsNoGive this or `variableNames`.
variableNamesNoExact full names, e.g. "color/bg/brand".
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.
hiddenFromPublishingNoHide it when the file is published as a library.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing partial-failure semantics ('one item failing does not fail the call') and the per-item return shape. It also adds behavioral constraints the annotations cannot express: scopes validated against each variable's type, rename only for single-variable targets, and empty string removes a platform.

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?

Front-loaded with the operation and fields, then terse routing and return-shape notes; nearly every clause carries information. It is dense with parenthetical asides, which slightly reduces scannability, but there is little waste.

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 9-parameter, nested-object, no-output-schema mutation tool, the description covers the return shape (items with id/ok/error), error isolation, targeting modes, scope validation, and editor support. Nothing an agent needs to invoke it correctly 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 already 89%, so the baseline is 3, but the description adds meaningful semantics: type-checking of scopes, the one-variable-only constraint on `name`, and the '"" removes a platform' convention for codeSyntax. Some of this restates schema descriptions, so it is value-added rather than transformative.

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 precise verb and resource ('change what a token carries besides its value') and enumerates the exact mutable fields, explicitly excluding values and routing those to figma_set_variable_value. An agent can distinguish this from create_variable, set_variable_value, and set_description without opening schemas.

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?

Names the sibling alternative for the complementary operation ('Values per mode: figma_set_variable_value') and states the targeting modes (by id or exact name, many at once). It also gives the editor support boundary ('Editors: Design; unverified: FigJam, Slides'), which tells the agent when the call is safe to make.

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