Skip to main content
Glama

Apply style

figma_apply_style_to_node
Idempotent

Apply local Figma paint, text, effect, or grid styles to nodes by ID or name; set type for fill or stroke so nodes follow the chosen style.

Instructions

Apply a local style (paint, text, effect or grid) by id or by name — the node then follows the style. Give type when a name is shared across kinds, or to apply a paint style as the stroke (default: fill). figma_get_styles lists local styles; a style from a library (not listed there) is applied by the id that figma_get_design_context returns in stylesUsed. For a raw colour use figma_set_fills. Returns per-item results: { updated, items: [{ id, ok, error? }] } — one node failing does not fail the call. Editors: Design; unverified: FigJam, Slides.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNo
nodeIdsYesNodes to change.
sessionNoOptional sessionId or file name, to pick a Figma file when more than one is connected.
styleIdNoA style id from figma_get_styles.
styleNameNoOr its exact name, e.g. "Brand/Primary".
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.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, idempotent=true, destructive=false), and the description adds genuine behavior: per-item partial-success semantics ('one node failing does not fail the call'), the exact return shape, and editor support ('Design; unverified: FigJam, Slides'). It stops short of stating that applying a style replaces existing fills/strokes.

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?

A single dense paragraph where every clause carries routing or behavioral information; the core action is front-loaded before the alternatives and edge cases. No filler sentences.

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?

With no output schema, the description supplies the return contract (`{ updated, items: [{ id, ok, error? }] }`), the partial-failure rule, the style-source alternatives, and platform coverage — everything needed to call it correctly and interpret results.

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?

With 83% schema coverage the baseline is 3, but the description adds real meaning beyond the enum: `type` defaults to fill and can be stroke when applying a paint style, and it explains the id-vs-name distinction for styleId/styleName. It does not touch `session` or `idempotencyKey`, which the schema already documents.

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 (apply a local style to a node), enumerates the style kinds (paint, text, effect, grid), and clarifies the effect ('the node then follows the style'). It is readily distinguishable from siblings like figma_create_paint_style and figma_set_fills.

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 routes the agent: use figma_set_fills for a raw colour, figma_get_styles for local styles, and figma_get_design_context's `stylesUsed` id for library styles. It also states when `type` is needed (shared name across kinds, or paint-as-stroke with fill as default).

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