Figma MCP not working?

Work through these in order. The cause is almost always local and unglamorous — a dead process, an occupied port, or a client that never reloaded its config.

First: which server are you actually on?

Figma ships two, they fail for completely different reasons, and most advice online silently assumes the local one.

Remote server

https://mcp.figma.com/mcp

Hosted by Figma, signed in through OAuth in your browser, and driven by pasting a Figma link. Works on every seat and every plan, free included, and it is the one that can write to the canvas. No desktop app, no port, no process — so none of the port or process fixes below apply to it.

Desktop server

http://127.0.0.1:3845/mcp

Runs inside the Figma desktop app; you enable it per file from the Dev Mode inspect panel. Reads your current selection. Requires a Dev or Full seat on a paid plan — on any other seat it will not work no matter how clean your config is. Everything about ports and processes on this page is about this server.

The 60-second triage

Four checks that resolve the large majority of desktop-server cases.

  1. Is your seat Dev or Full on a paid plan? The desktop server needs one — no seat, no server.
  2. Is the Figma desktop app open, on the file you care about, with the server enabled in the Dev Mode inspect panel?
  3. Did you fully quit and reopen your AI client after the last config edit?
  4. Is anything else already sitting on port 3845?

If all four are clean, work down the specific failures below. If you are on the remote server instead, skip straight to the authentication and permission entries — you have no local process to debug.

Specific failures and their fixes

Matched to the error strings people actually paste into search.

The client reports no MCP server found, or the tool list is empty

Cause: The server is not running, or the client is pointed at a URL or transport the server does not expose.

Fix: Start the server in a terminal you can watch, and confirm it prints a listening line. Then check your client config points at exactly that address — a stale entry left over from an earlier setup is one of the most common causes, and it fails silently.

Invalid sessionId

Cause: The client is holding a session the server no longer recognises — typically after Figma reloaded or the server restarted underneath it.

Fix: Quit the Figma desktop app completely, reopen it, then restart the AI client so a fresh session is negotiated. Reconnecting the client alone usually reproduces the same error.

Connection refused, or the port looks dead when the server is running

Cause: Another process holds the port, or on Windows a leftover portproxy rule is intercepting it.

Fix: Identify the holder with lsof -i :3845 on macOS/Linux or netstat -ano | findstr 3845 on Windows, then stop it. On Windows also run netsh interface portproxy show all — a stale rule bound to 0.0.0.0:3845 will swallow the connection and make a healthy server look dead.

Claude can read the file but every edit silently fails

Cause: Usually the wrong server rather than a broken one. Writing to the canvas is a remote-server capability; the desktop server is built to read a selection and generate code from it.

Fix: Point the client at https://mcp.figma.com/mcp rather than the local port. If you are already on the remote server, check your edit rights on that specific file — read and edit are separate — and be aware that write-to-canvas is a free beta Figma has said will become a paid, usage-metered feature.

Everything is configured correctly and the desktop server still will not enable

Cause: Seat type. The desktop server is a Dev/Full-seat feature on paid plans, and there is no error message that says so.

Fix: Check your seat on that file's team. On a View, Collab or free seat the toggle is simply not yours to use — switch to the remote server, which runs on every plan, or take a route into Figma that does not depend on a seat at all.

It worked yesterday and broke after an update

Cause: A Figma or client update changed the expected transport, or reset the config.

Fix: Re-add the server in your client rather than trusting the existing entry, and restart both applications. Check the transport specifically: both Figma servers speak streamable HTTP, and configs written when the server first shipped often still point at an /sse endpoint that no longer answers.

Works in one AI client but not another

Cause: Each client keeps its own MCP config, and they do not share state.

Fix: Configure the server separately in each client. A working Claude Code setup tells you nothing about Claude Desktop or Cursor — they read different files.

If you would rather not run a server at all

An honest observation, not a bait and switch.

Most of the failures above are local-environment failures: a process, a port, a config file, a stale session. None of them exist in a hosted setup — you paste one URL into Claude and there is nothing on your machine that can break. Figma's own remote server removes them too, and if code generation is what you are after, it is the right answer and it is free with your plan.

Flaude is a different route rather than a cheaper one: it reaches Figma through a plugin, so it designs INSIDE the file you have open, on a free Figma account, with no Dev seat and no seat-metered tool calls. If you would still rather self-host, our MCP server is open source and MIT-licensed — the fixes on this page apply to it too.

Figma MCP troubleshooting FAQ

The questions people ask when the server will not cooperate.

Skip the local server

Paste one URL into Claude and start designing. No port, no config file, no process to babysit — and it works on a free Figma account.

See how it connects