// Figma MCP write-to-canvas opened to agents in March 2026 — still a free beta. I tested it to answer one question: can AI build a design system in Figma? The output looks locally correct. But locally correct and globally coherent are different things.
# conditions
$ No design specs
$ No tokens file
$ No .md context
$ Just a prompt and an empty Figma file
The expectation: start with an empty Figma file and let AI generate tokens, build components, create a design system. On March 24, 2026, Figma opened the canvas to agents — the use_figma tool writes directly into a file over the remote MCP server. Frames, auto-layout, variants, variable binding all work. It runs on a Full seat, and right now it's a free beta.
This is what demos show. And it works — for a single generation pass.
AI nails the first pass. Auto-layout, tokens, repeated blocks — all correct. The output looks polished: colors match, spacing feels right, every screen renders.
Then you run the same prompt again, and the token names drift. You reuse the component in a narrower container, and auto-layout breaks. The button renders, but hover, focus, disabled states don't exist.
Each run is correct. No run remembers the last.
What you have looks like a design system. It is not one.
1. Meaning — Generating #0F62FE and calling it blue-500 is easy. Deciding whether it means primary, accent, or brand is the real work. I tested this: AI named the same blue "primary" in one screen and "accent" in another, within the same file.
2. Continuity — Run 1: --ds-primary. Run 2: --color-primary. Run 3: --main-blue. Three passes, three naming conventions. Each valid in isolation. Together, incoherent.
3. System design — The generated button rendered fine. No hover state. No disabled state. No size variants. A button is not a rectangle with a label — it's every state, variant, and constraint behind it. AI drew the rectangle.
4. Reusability — Spacing was hardcoded (24px) instead of tokenized (--ds-space-6). Auto-layout broke when the component landed in a narrower container. Looks right once, breaks on reuse.
A design system is a system of decisions — naming, semantics, hierarchy, constraints, consistency over time.
The working model: a human defines the system — tokens, naming, component architecture, constraints. Then AI executes. Scaffolding screens, expanding variants, applying tokens at scale. Those definitions become .md specs — the persistent context AI reads before generating anything. This site was built that way. The system came first.
The tools are already moving this way. Figma MCP now has Skills — markdown instruction files built on the /figma-use foundation, which anyone can write to encode their naming conventions, so the agent searches the library before inventing new tokens. Make Kits, extended to paid plans in March 2026, bundle npm code components with a published library's variables, styles, and usage guidelines. Even a Kit doesn't extract your tokens one-to-one — Figma says so. An independent review in July 2025 reached the same verdict about vanilla Figma Make output: not production-ready. These give AI a system to follow — not a blank slate to invent one.
A design system is proven through reuse — the second pass, the tenth, the one that breaks.