QVeris
MCP & TOOL CALLING

Claude Code MCP Figma Setup & Troubleshooting

Connect Claude Code to Figma's remote MCP, authorize access, and test one frame; isolate permission, link, and response failures.

Published: April 5, 2026 · By the QVeris Team
Interface controls and a design frame linked through MCP to code.
The illustration links reusable interface controls and a selected design frame through an MCP block to a code panel.

The reliable way to connect Claude Code and Figma

The shortest supported route is the official Claude Code plugin backed by Figma's remote MCP server. Install the plugin, restart Claude Code, complete browser authorization, inspect the server state with /mcp, and test one precise frame URL. That last test matters: a green connection only proves that the transport and account handshake worked; it does not prove the selected account can read the target file or that the link identifies useful design context.

Recommended path

Use the official plugin and remote server unless your organization explicitly requires the desktop endpoint. It has the broadest tool coverage and does not depend on keeping one desktop file open.

Proof of readiness

A successful setup produces three signals: Figma is connected in /mcp, the authorized user can open the file, and Claude Code can summarize one linked frame.

Safe first task

Ask for a component, typography, color, and spacing inventory before requesting edits. This exposes missing context while keeping repository changes out of the test.

Troubleshooting rule

Change one layer at a time: process, server registration, authorization, Figma permission, node link, then payload size. Otherwise a retry may hide the real cause.

Choose the connection before editing configuration

Figma documents both a hosted remote endpoint and a desktop endpoint. They solve the same broad problem but have different operational assumptions. The remote server at https://mcp.figma.com/mcp is the default for most teams. The desktop server at http://127.0.0.1:3845/mcp is local to the machine and depends on Figma desktop availability, eligible access, and the current canvas context.

OptionHow it connectsChoose it whenCheck first
Official pluginInstalls Figma's remote MCP settings and packaged skills with one Claude Code command.You want the supported default and the least manual configuration.Plugin installation, restart, browser authorization.
Manual remoteRegisters the hosted Figma URL directly as an HTTP MCP server.Your environment manages MCP registrations explicitly or cannot use plugins.Exact endpoint, transport type, OAuth completion.
Desktop serverClaude Code calls a localhost endpoint exposed by the running Figma desktop app.A local workflow or organization policy specifically requires it.Desktop app state, seat eligibility, selected frame, local port.
1. Install the supported integration

Run claude plugin install figma@claude-plugins-official from a normal shell. Let the command finish, then fully exit and reopen Claude Code so the process loads the new server registration.

2. Complete Figma authorization

Open the MCP or plugin view and start the connection. Finish the Figma browser consent flow using the account that can actually open the design file. Signing in with a second personal account is a common source of later permission errors.

3. Confirm server discovery

Run /mcp and inspect the Figma entry. If it is absent, stay at the registration layer; repeating authorization will not fix a plugin that the running Claude Code process never loaded.

4. Test a precise node

In Figma, select the intended frame or component and copy its direct link. Ask Claude Code to identify the node name, visible states, design variables, and major child elements. A file-level homepage URL is a weaker test because it may omit the node identifier.

Verify the connection with a four-layer test

Do not treat one status icon as end-to-end proof. A useful verification moves from transport to identity, then from design retrieval to semantic quality. Stop at the first failed layer. This keeps the diagnosis small and prevents a vague “Figma is not working” report.

LayerTestPassing evidenceIf it fails
TransportInspect Figma in /mcp.The server is listed and connected.Restart, then inspect plugin or server registration.
IdentityOpen the target file with the authorized account.The file and linked node are visible.Reauthorize the correct account or request access.
RetrievalRequest metadata for one small frame.Claude Code returns the expected node and children.Copy a direct node link and reduce the selection.
MeaningAsk for components, variables, states, and screenshot agreement.Structured context matches the visible design.Improve file structure or narrow the requested scope.

Reusable connection test: “Read this Figma frame without changing the repository. Return the frame name, dimensions, component instances, text styles, color variables, spacing patterns, and visible interaction states. Flag anything you cannot retrieve.” This prompt separates connection quality from implementation quality.

Troubleshoot by symptom, not by random reinstall

Most connection failures belong to a specific layer. Capture the exact symptom, the server mode, the account used for authorization, and one reproducible node link before changing anything. A clean diagnostic record is especially useful when team members have different Figma seats or Claude Code versions.

SymptomLikely layerCheck in order
No Figma entry in /mcpInstallation or process loadingPlugin install result → full restart → active Claude Code environment → registration.
Listed but disconnectedAuthorization or endpointOAuth completion → correct remote URL → proxy/firewall → stale session.
Connected but access deniedFigma identity and file permissionAuthorized email → team membership → file sharing → seat or plan limits.
Wrong or empty contextLink and selectionDirect node URL → node still exists → correct page → smaller frame.
Slow or truncated responseRequest scope and payloadOne frame → metadata first → targeted context → screenshot only when needed.
Desktop localhost errorLocal server availabilityFigma desktop running → MCP enabled → port 3845 → local security software.

Permissions, limits, and production hygiene

  • Authorize the least-privileged Figma account that can read the required files. Do not solve a sharing issue by broadly exposing a design library.
  • Figma access and rate limits vary by plan and seat. When a workflow works for one teammate but not another, compare entitlement before changing configuration.
  • Use small node-scoped requests during diagnosis. Large pages can consume more context, take longer, and blur whether the fault is transport or payload size.
  • Keep repository mutation out of the connection test. First prove read access; then review the implementation plan before allowing code changes.

Use QVeris after the Figma boundary is clear

The live QVeris catalog does not currently expose an exact Figma Tool or Provider profile, so this page does not invent a product match. Figma MCP should remain responsible for Figma-native design context. When the broader agent workflow needs other APIs or live data, use QVeris Docs to review the integration model and test candidate capabilities in the QVeris Playground.

  • Keep the Figma connection isolated and testable instead of routing unrelated data calls through the same server.
  • Document which system owns design retrieval, repository changes, external API calls, and human approvals.
  • Validate every additional capability independently before composing it with the design-to-code workflow.

Claude Code MCP Figma FAQ

Should I use the remote or desktop server?

Use the remote server for the normal Claude Code workflow. Choose the desktop endpoint only when local canvas selection or an organization-specific requirement makes it necessary.

Why does Figma not appear in /mcp?

The running Claude Code process probably did not load the plugin or registration. Confirm installation, exit completely, reopen Claude Code, and inspect /mcp before retrying OAuth.

Why am I connected but unable to read a file?

Connection state and file permission are separate. Verify which Figma account completed authorization and confirm that exact account can open the file and linked node.

What kind of Figma link works best?

Copy a direct link after selecting the target frame or component. A node-scoped URL gives Claude Code a clearer retrieval target than a general file or project link.

Why is the returned design context incomplete?

The selection may be too large, poorly structured, or missing reusable variables and components. Start with metadata, narrow the frame, then request only the context needed for the next decision.

Does a working MCP connection guarantee accurate code?

No. It proves access to design context. Accurate implementation still requires repository inspection, component mapping, responsive-state checks, and visual verification.

References and next steps

Figma Claude Code setup
Figma MCP server guide
Figma MCP tools and prompts
Figma MCP access and permissions
Claude Code MCP documentation
QVeris Docs
QVeris Playground