Skip to main content
Glama
Rompni

figma-rest-mcp

by Rompni

Get design tokens fallback

get_design_tokens_fallback
Read-only

Builds labeled design tokens from Figma file styles and optional inferred values when variables are unavailable, marking each inferred token as inferred: true.

Instructions

Skip the variables API. Build labeled tokens from file styles (library_content:read) plus optional inferred fills/type/radii/spacing from a subtree. Every inferred token has inferred: true — not real Figma variables.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYesFigma file key or URL (figma.com/design/... or figma.com/file/...)
modeNo
node_idNoOptional frame id. Without it, styles may be names-only (no paint values).
max_variablesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.5.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already expose readOnlyHint and openWorldHint, and the description adds important behavior: it requires library_content:read, builds tokens from styles, and marks every inferred token with inferred: true. This clarifies that the result is not actual Figma variable data without contradicting the annotations.

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?

Two sentences with no filler. The front-loaded warning to skip the variables API is immediately useful, and the inferred: true behavior is stated plainly and concisely.

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

Completeness3/5

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

The tool has no output schema, so the description must carry the return-value burden. It explains the token source and inferred behavior but does not specify what full/trim/summary modes return or precisely how max_variables affects the result. That leaves an agent with important ambiguity before making a call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds real meaning for node_id by explaining the consequence of omitting it, and it maps the inferred token categories to a subtree. However, mode and max_variables remain unexplained beyond their raw schema metadata, so schema description coverage at 50% is only partially compensated.

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?

The description states a concrete action and resource: build labeled tokens from file styles, with optional inferred geometry/spacing tokens. It also distinguishes itself from the Figma variables API by explicitly saying 'Skip the variables API' and clarifying that inferred tokens are not real variables.

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?

The description gives useful contextual guidance: this is the fallback path that avoids the variables API, and the optional node_id is tied to whether paint values are available ('Without it, styles may be names-only'). It does not name specific sibling tools like get_file_styles, but the usage intent is reasonably clear.

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