CLAUDE LABJP
MCP — Support for the 2026-07-28 spec is rolling out across Claude. The protocol moves from bidirectional and stateful to request/response, so MCP servers can now live on serverless and edge infrastructureEXTENSIONS — Three official extensions have landed: MCP Apps for server-rendered UI, Tasks for async and long-running work, and Enterprise Managed Auth for IdP-based org-wide provisioningADOPTION — MCP passed 400 million monthly SDK downloads, roughly 4x growth this year, settling into its role as the standard way to connect agents to applicationsQUOTA — Today, August 19, is the last day of the 50 percent weekly usage boost for Claude Code subscribers. If you have long agent runs queued, this is the windowPRICING — Claude Sonnet 5's introductory rate of $2 per million input tokens and $10 output ends August 31; standard pricing of $3 and $15 takes over on September 1, twelve days outFIX — A bug where MCP v2 connections endlessly reopened subscriptions against servers with fixed timeouts is resolved, and a forward_user_identity setting was added for user attributionMCP — Support for the 2026-07-28 spec is rolling out across Claude. The protocol moves from bidirectional and stateful to request/response, so MCP servers can now live on serverless and edge infrastructureEXTENSIONS — Three official extensions have landed: MCP Apps for server-rendered UI, Tasks for async and long-running work, and Enterprise Managed Auth for IdP-based org-wide provisioningADOPTION — MCP passed 400 million monthly SDK downloads, roughly 4x growth this year, settling into its role as the standard way to connect agents to applicationsQUOTA — Today, August 19, is the last day of the 50 percent weekly usage boost for Claude Code subscribers. If you have long agent runs queued, this is the windowPRICING — Claude Sonnet 5's introductory rate of $2 per million input tokens and $10 output ends August 31; standard pricing of $3 and $15 takes over on September 1, twelve days outFIX — A bug where MCP v2 connections endlessly reopened subscriptions against servers with fixed timeouts is resolved, and a forward_user_identity setting was added for user attribution
Articles/Claude Code
Claude Code/2026-04-04Advanced

Claude Code + Figma MCP Advanced Guide: Automating Your Personal Design Workflow

Master the deep integration of Claude Code and Figma MCP. Complete Design.md system design, advanced implementation patterns, iteration strategies, and real-world optimization techniques.

Claude Code225Figma MCPDesign AutomationDesign-mdAdvanced3

Premium Article

The first time a Figma design turned into working components right in front of me, I stayed up far too late just watching it happen. The thrill was real — and so was the lesson that followed over the next few weeks: "the first generation runs" and "it survives real maintenance" are two very different things.

Running several apps and a handful of sites on my own as a solo developer, the time I spend bouncing between design and implementation is, quite literally, the ceiling on how fast I can ship. That is exactly why I have leaned so hard on Figma MCP.

This guide records what I learned along the way — where the tooling's boundaries actually are, how to structure Design.md, and the pitfalls that only surface once you are running it for real, with the numbers I measured. Not a summary of the docs, but the hands-on instincts I picked up myself.

Figma MCP: Technical Specifications

Figma MCP is the bridge between Claude Code and Figma files. Knowing precisely what it reads and writes is critical for reliable automation.

What Figma MCP Extracts

1. Layer Hierarchy (Complete DOM-like structure)

{
  "id": "1:2",
  "name": "Button Primary",
  "type": "component",
  "parent": "3:4",
  "visible": true,
  "children": [
    {
      "id": "5:6",
      "name": "Icon",
      "type": "instance"
    },
    {
      "id": "9:10",
      "name": "Label",
      "type": "text",
      "content": "Click me"
    }
  ]
}

This translates directly to React component structure. A Figma component becomes a React component; a text layer becomes a {children} prop.

2. Design Tokens (Full precision)

MCP returns colors, typography, spacing, sizing, effects, and grid data. Each value maps to Tailwind CSS classes or CSS variables with zero ambiguity.

3. Component Metadata (Interface-level)

{
  "componentId": "12:34",
  "componentName": "Button / Primary",
  "properties": {
    "size": {
      "type": "enum",
      "values": ["small", "medium", "large"],
      "default": "medium"
    },
    "disabled": {
      "type": "boolean",
      "default": false
    }
  }
}

This auto-generates TypeScript interfaces.

4. Interaction & Animation Definitions

Figma's Prototype panel exports interaction data that Claude Code translates to Next.js routing or CSS transitions.

What Figma MCP Cannot Extract

  • Image pixel data (only URLs)
  • Complex mask/blend modes (hand-tuning required)
  • Plugin metadata
  • External tool data (use Design.md instead)

Key mindset: MCP is "90% automation + 10% human judgment."

When the Connection Itself Fails: Check in This Order

Knowing the spec is moot when Claude Code cannot reach Figma at all — and I stalled at this doorstep more than once. In the order I hit these myself:

SymptomCauseFix
Figma never appears in the tool listDev Mode MCP server is not runningEnable the MCP server from the Figma desktop app preferences (the browser version does not serve it)
Connected, but "cannot fetch the design"URL is missing a node-idSelect the frame and use "Copy link to selection" so the URL carries the node reference
Results come back nearly emptySeat permissions fall shortDev Mode assumes a paid seat; a view-only invite will not surface the internals

Because this setup routes through the locally running Figma desktop app, nothing flows while the app is closed. You never notice that during interactive use — but the moment I wired generation into an automated step, I forgot the "app must be awake" premise and stalled. If you want design extraction inside a nightly batch, exporting the JSON ahead of time and passing that instead is the more stable arrangement.

Generation Quality Is Decided on the Figma Side

Once I understood the spec, the place I ended up investing the most time was not the Claude Code prompt. It was how I structured the Figma file itself. The same screen, organised differently, produces wildly different code. That realisation stopped me in my tracks.

Fifteen to twenty minutes before you hand it over. That is where the leverage is.

Name Layers After Their Role

Hand over Frame 123 and Group 45 and the generated component names inherit that emptiness. Rename them by role—HeroSection, PricingCard, NavigationBar—and the component names and class names come back readable.

A layer name is the shortest documentation that reaches Claude Code.

Promote Repeating Elements to Figma Components

Buttons, cards, headers. Anything that appears more than once should be an explicit Figma component. Claude Code then splits it out as a React component. Elements you leave un-componentised tend to get generated as duplicated inline markup, even when they look identical.

Decide the Atoms → Molecules → Organisms granularity in Figma first. That small effort erases the deduplication work you would otherwise do afterwards.

Replace Absolute Coordinates With Auto Layout

Of the four, this one moved the needle most.

Figma setupGenerated codeWhen the viewport changes
Absolute coordinates (fixed x, y)position: absolute, fixed pxBreaks — hand-fixing required
Auto LayoutFlexbox / CSS GridAdapts as-is

Screens built with Auto Layout need almost no responsive rework. Screens handed over with absolute coordinates had to have their layout rewritten after generation, which rather defeated the point of generating them.

Put Non-Visual Specs in Annotations

Hover opacity. Scroll-triggered fade-ins. Behaviour that a static frame cannot show should be stated in Figma annotations.

If the "Animation & Motion" section of Design.md is the source of the values, annotations are the source of where those values apply. Only with both in place does the interaction come out matching the spec.

The Difference It Makes

AspectPrepared designUnprepared design
Component reuseSplit along the Figma hierarchyIdentical UI inlined several times over
ResponsivenessAdapts via Flexbox / GridBreaks on fixed px
Naming consistencyRole names carry throughFrame1, Group2 survive into the code
Post-generation reworkMinor tuning onlyStructural rewrite

Fifteen to twenty minutes before the handoff removes hours after it. For me this remains the highest-return step in the whole Figma MCP workflow.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Map exactly what Figma MCP can and cannot extract, with JSON examples, so you know upfront which parts still need hand-tuning
Design Design.md as the single source of truth and build sync rules that propagate color, type, and spacing changes into Figma and code
Use measured numbers from solo development (20–30s initial generation, 2–3h → 15–30m update loops) to decide what to automate and what to keep human
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-03-19
Unity × Claude Code Advanced Workflow — Shader Generation, CI/CD & Performance Optimization
Advanced Unity development with Claude Code. Auto-generate custom shaders, build CI/CD pipelines, and implement performance profiling—with production-tested code.
Claude Code2026-08-19
Fixing the Code Doesn't Evict a Broken Page From the Edge Cache
I shipped a fix and the broken page kept serving. The problem was not the code but the edge cache, which had stored a broken HTML response because the store decision looked only at the status code. Here is the integrity guard I now run before every cache write, and the thresholds I had to tune in production.
Claude Code2026-08-18
Choosing a WebFetch Cache TTL That Fits the Way You Research
Claude Code lets you tune the WebFetch URL cache TTL. Here is how to see the shape of your own research sessions with a tiny observation server, then trade fetch count against freshness with numbers instead of guesswork.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →