Figma MCP variables: read and edit your design tokens
Figma MCP variables are the first thing many teams hand to an agent. With FigmaMCP, Claude Code or Codex can read the variables in your open Figma file, create and change them, bind them to layers, and delete them. It cannot export a tokens file on its own, but the agent can write one from what it reads.
What the agent can do with variables
| Job | Tool | What happens |
|---|---|---|
| Read every variable | variable_list | Lists the local variables and collections in the open file. |
| See what one layer uses | node_info with boundVariables | Returns the variables bound to that layer, so the agent can check a button before it changes it. |
| Find where a variable is used | variable_list with includeConsumers | Scans one page or the whole document for the layers that use it. The scan is optional and off by default. |
| Create a collection or variable | variable_manage | Creates it. A new variable needs its collection name and its scopes. |
| Change a variable | variable_manage | Updates it. The agent must pass the variable’s current name. |
| Delete a variable or collection | variable_delete | Checks the whole file first. If a layer still uses the variable, the delete is refused. |
| Make a layer follow a token | node_bind_variable | Binds the variable to a layer property, so the layer tracks the token. |
Download for Mac Version 0.1.10
Can Figma MCP read variables?
Yes. This is the first job most people give the agent. Ask Claude Code or Codex to list the variables in your file. It calls variable_list and answers from what Figma returns. You can also ask what a single layer is bound to.
One limit matters. variable_list returns local variables only. Variables that come from a shared library do not appear in it. To use one, the agent reads it from a layer that already uses it.
Figma MCP export variables: what works
FigmaMCP has no export button and no tool that writes a tokens file. It does not export variables to JSON by itself. What works is this: your agent reads the variables with variable_list, then writes the file in your project with its own file tools. You choose the format. Ask for CSS custom properties, a JSON file or a theme object, and check the result against Figma before you commit it.
Ask in plain words
| You ask | What the agent does |
|---|---|
| “List every color variable in this file.” | Reads the collections and variables, then summarizes them. |
| “Write our spacing variables to tokens.json.” | Reads them, then writes the file in your repo. FigmaMCP only supplies the read. |
| “Add a variable called surface-raised to Colors.” | Creates it in the named collection with the scopes it chooses. Review the scopes. |
| “Delete the old brand-blue variable.” | Refused if layers still use it. The reply lists the consumers. |
| “Bind this card’s fill to surface-raised.” | Binds the variable. The fill must be solid or empty first. |
Rules that apply
- The switch. Variable edits need the plugin’s AI can edit this file switch to be on. With it off, the agent can only read variables.
- Names must match. To change or delete a variable, the agent passes its current name. A wrong name is refused.
- Scopes are explicit. A new variable needs its scopes set when it is created.
- Deletes are guarded. A variable that layers still use is not deleted. If a page cannot be read, the delete is refused too.
See all FigmaMCP tools, or edit Figma with AI for other jobs. If you want a whole token system, read Figma MCP design system.