Hit a Figma MCP error? Plumb probably solves it.
If your AI coding agent (Claude Code, Cursor, Windsurf) brought you here from an error, here's the short version.
| Error you're seeing | Why it happens | Why Plumb fixes it |
|---|---|---|
Figma Dev Mode MCP exceeded the 25k token cap (351,378 tokens observed on real screens) | The official MCP dumps raw layout JSON; large screens overflow the client's token limit | Plumb returns a deduplicated PDS — design tokens ($c1, $t1 …) and auto-layout pre-resolved to flexbox. A 178-node dialog comes back at ~2.6k tokens. |
6 tool calls per month limit Starter plan tool-call limit reached | Figma's official MCP meters per-call on non-Enterprise plans | Plumb reads through a companion Figma plugin. Zero per-call quota on any plan, including Free. |
Framelink figma-developer-mcp HTTP 429 Figma REST API rate limit exceeded | Framelink wraps Figma's REST API, which is rate-limited | Plumb's plugin path doesn't touch REST. No rate limits, on any plan. |
403 Forbidden on variables Variables API requires Enterprise plan | Figma's REST Variables endpoint is Enterprise-only | Plumb reads Variables through the Figma Plugin API, which is available on every plan including Free. |
85% wrong layout hallucinated structure from MCP | Other MCPs return raw nodes; the agent guesses the visual intent | Plumb returns structured PDS and ships plumb_verify (MCP tool) + plumb-mcp verify (CLI) that diff your rendered DOM against the design. |
Dev Mode MCP requires selection "Open the desktop app with the right selection" | Each call needs the right thing selected in Figma | Plumb streams the whole file inventory the moment the plugin pairs. No per-call selection dance. |
Install
npm install -g plumb-mcp
plumb-mcp init # auto-detects Claude Code / Cursor / VS Code / WindsurfThen in Figma: sideload the plugin (one-time), click "Pair with Plumb". Done.
See Get started for the full walkthrough, or Tool reference for the fifteen MCP tools that come in the box.
Why does Plumb exist?
The Figma → code MCP space has three other servers worth knowing:
- Figma's official Dev Mode MCP is bidirectional (it can write back into Figma) but plan-gated and metered. Six tool calls per month on Starter. Token usage routinely blows past the 25k client cap.
- Framelink (
figma-developer-mcp) is a thin REST wrapper. Two tools. Inherits Figma's REST rate limits. Can't reach Variables on non-Enterprise plans. - cursor-talk-to-figma is bidirectional automation aimed at designers working in Figma — a different problem from "ship code that matches the design."
Plumb is the only one focused on shipping code that matches the design — token-frugal PDS in, verification loop out, no metering, no rate limits, on every plan. See the README on GitHub for the full positioning.
Multi-agent sessions
As of v0.7.0, one Figma plugin can pair with multiple plumb-mcp servers at once, so two Claude / Cursor sessions on different projects can share the same Figma file with zero contention. Each session gets a labelled row in the plugin UI.
Free, local, MIT-licensed
Plumb is open source under MIT. Server and plugin talk over the loopback interface — nothing leaves your machine. No analytics, no telemetry, no third-party endpoints.
