Skip to main content
Glama

save_design_export

Write a full Figma node or selection export to JSON with layout, styles, components, assets, and previews for build scripts.

Instructions

Write a full design export of a node (default: the selection) to a JSON file: the node tree with every layout, paint, text, variable, style, component and interaction detail, icon SVGs, renders of masked or rotated groups, image fills and a 2x preview. Mapped components carry their code component. Use it to hand a frame to a build script.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute .json path to write (default: the data folder).
nodeIdNoThe ID of the node, eg. "123:456" or "123-456" (instance ids like "I1:2;3:4" work too). Omit it to use the current selection in Figma.
fileKeyNoThe key of the Figma file. Accepted for compatibility; the file open in Figma Desktop is always used.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.5.1

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the default target (the selection), the default destination (data folder), and exactly what the file will contain (tree, paints, styles, SVGs, renders, 2x preview). It stops short of file-level side effects such as overwriting an existing path or failure behavior.

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?

Two sentences, front-loaded with the action and scope, followed by a short purpose statement. The content list in sentence one is long but each item is informative rather than padding.

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?

No output schema and no annotations, yet the description explains what gets written to disk, where, and from which node, which is everything an agent needs for a file-writing export tool. Return value detail is unnecessary since the artifact is the JSON file itself.

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?

Schema coverage is 100%, so the schema already documents path, nodeId and fileKey, including the 'omit to use the current selection' default and the fileKey compatibility note. The description repeats the selection/path defaults without adding syntax or format detail beyond the schema, so the baseline 3 applies.

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 ('Write a full design export of a node ... to a JSON file') and scopes the default operand (the selection). The enumeration of exported content clearly separates it from siblings like import_design_export, download_assets and get_screenshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

One use case is given ('hand a frame to a build script'), which implies when to reach for it, but there is no explicit when-not guidance or named alternative (e.g., get_design_context vs download_assets). Usage is implied rather than stated.

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