claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

[BUG] Figma app local MCP Server connection failure (Windows native)

Open jitterbox opened this issue 6 months ago • 5 comments

Environment

  • Platform (select one):
    • [X] Anthropic API
    • [ ] AWS Bedrock
    • [ ] Google Vertex AI
    • [ ] Other:
  • Claude CLI version: 1.0.68
  • Operating System: Windows 11
  • Terminal: Windows Terminal (in Cursor)

Bug Description

The Figma desktop app (Windows) runs a local MCP server on port 3845, which I have working and accessible in Cursor via this config:

    "Figma Dev Mode MCP": {
      "url": "http://127.0.0.1:3845/mcp"
    },

In Claude Code, I have the same core config in my .claude.json file, added by the claude mcp add command:

      "mcpServers": {
        "figma": {
          "type": "sse",
          "url": "http://127.0.0.1:3845/mcp"
        }
      }

This fails to connect consistently, with the same errors logged (see below). I've attempted multiple variations of the MCP server config details. I've attempted to disable the MCP server in Cursor in case of some kind of interference.

This is Figma's documentation: https://www.figma.com/blog/introducing-figmas-dev-mode-mcp-server/

Steps to Reproduce

  1. Start Figma app and confirm MCP server is running
  2. Confirm connectivity in Cursor
  3. Optional: Disable Figma MCP server in Cursor (same result)
  4. Start Claude Code in Cursor terminal
  5. MCP server for Figma fails to connect immediately
  6. Perform full troubleshooting session w/ Claude Code (Opus 4) - no suggestions offered

Expected Behavior

MCP server connects

Actual Behavior

MCP server for Figma fails to connect consistently

Additional Context

[ { "debug": "Starting connection attempt", "timestamp": "2025-08-05T02:29:45.659Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "No token data found", "timestamp": "2025-08-05T02:29:45.677Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "SSE Connection error: {"url":"http://127.0.0.1:3845/mcp","error":"SSE error: Non-200 status code (400)","stack":"Error: SSE error: Non-200 status code (400)\n at _eventSource.onerror (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:17836)\n at pe.KD1 (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:4969)\n at file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:1808\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)"}", "timestamp": "2025-08-05T02:29:45.947Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "error": "Error: SSE error: Non-200 status code (400)\n at _eventSource.onerror (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:17836)\n at pe.KD1 (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:4969)\n at file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:1808\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", "timestamp": "2025-08-05T02:29:45.949Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Connection failed: Error: SSE error: Non-200 status code (400)", "timestamp": "2025-08-05T02:29:45.965Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Error message: SSE error: Non-200 status code (400)", "timestamp": "2025-08-05T02:29:45.979Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Error stack: Error: SSE error: Non-200 status code (400)\n at _eventSource.onerror (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:17836)\n at pe.KD1 (file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:4969)\n at file:///C:/Users/XXXX/AppData/Roaming/nvm/v22.14.0/node_modules/@anthropic-ai/claude-code/cli.js:1288:1808\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", "timestamp": "2025-08-05T02:29:45.993Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "error": "Connection failed: SSE error: Non-200 status code (400)", "timestamp": "2025-08-05T02:29:46.009Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Connection attempt completed in 371ms - status: failed", "timestamp": "2025-08-05T02:29:46.031Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Starting connection attempt", "timestamp": "2025-08-05T02:29:46.406Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Connection attempt completed in 76ms - status: failed", "timestamp": "2025-08-05T02:29:46.483Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Starting connection attempt", "timestamp": "2025-08-05T02:29:48.155Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" }, { "debug": "Connection attempt completed in 17ms - status: failed", "timestamp": "2025-08-05T02:29:48.172Z", "sessionId": "33acec4f-e4d2-437b-a979-33e2221101ea", "cwd": "C:\XXXX" } ]

jitterbox avatar Aug 05 '25 02:08 jitterbox

This is a documentation issue, per Figma support - they no longer use sse. BEFORE CLOSING this issue, please update the Anthropic MCP documentation example with Figma (https://docs.anthropic.com/en/docs/claude-code/mcp) to indicate that they've changed from sse to http.

Image

New syntax: claude mcp add --transport http figma http://127.0.0.1:3845/mcp

jitterbox avatar Aug 06 '25 14:08 jitterbox

Even when using Claude mcp add --transport http figma http://127.0.0.1:3845/mcp I can't connect to mcp either, what can I do?

hkp999 avatar Aug 07 '25 08:08 hkp999

Even when using Claude mcp add --transport http figma http://127.0.0.1:3845/mcp I can't connect to mcp either, what can I do?

@hkp999 If you followed the Figma guide, and Figma is running and the MCP server functionality is enabled, it should work.

Image

I've had problems recently with the MCP server not starting in Figma due to another process binding to port 3845, but that shows an error toast in the Figma interface.

If Claude Code still won't connect to Figma, use the /mcp command to view the failure details, and it will give you the path to the log files which have more information. You can also try the "Reconnect" option which restarts the MCP server services without restarting Claude. If it persists, provide the logs to Figma support, or in the Slack channel #ext-figma-mcp-and-component-browser-alpha if you're in the alpha/beta... or start an issue here if it's likely to be a Claude Code issue.

jitterbox avatar Aug 07 '25 12:08 jitterbox

I'm experiencing this "no token data found" issue with Claude Code as well. I've tested with both my Claude Pro account and my AWS Bedrock keys after validating that I am indeed logged in and can prompt Claude without issue. Like the original issue creator, I have gotten this MCP server to work with the exact same mcp.json configuration in VS Code Copilot.

In my case, I did claude mcp add --scope project --transport http figma-desktop http://127.0.0.1:3845/mcp and I get errors in the logs like:

[
  {
    "debug": "Initializing HTTP transport to http://127.0.0.1:3845/mcp",
    "timestamp": "2025-10-13T17:57:36.153Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Node version: v22.19.0, Platform: linux",
    "timestamp": "2025-10-13T17:57:36.153Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Environment: {\"NODE_OPTIONS\":\"not set\",\"UV_THREADPOOL_SIZE\":\"default\",\"HTTP_PROXY\":\"not set\",\"HTTPS_PROXY\":\"not set\",\"NO_PROXY\":\"not set\"}",
    "timestamp": "2025-10-13T17:57:36.153Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "MTLS options: default",
    "timestamp": "2025-10-13T17:57:36.154Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "HTTP transport options: {\"url\":\"http://127.0.0.1:3845/mcp\",\"headers\":{\"User-Agent\":\"claude-code/2.0.14\"},\"hasAuthProvider\":true,\"timeoutMs\":60000}",
    "timestamp": "2025-10-13T17:57:36.154Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "HTTP transport created successfully",
    "timestamp": "2025-10-13T17:57:36.154Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Client created, setting up request handler",
    "timestamp": "2025-10-13T17:57:36.157Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Starting connection with timeout of 30000ms",
    "timestamp": "2025-10-13T17:57:36.157Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Testing basic HTTP connectivity to http://127.0.0.1:3845/mcp",
    "timestamp": "2025-10-13T17:57:36.157Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Parsed URL: host=127.0.0.1, port=3845, protocol=http:",
    "timestamp": "2025-10-13T17:57:36.158Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Using loopback address: 127.0.0.1",
    "timestamp": "2025-10-13T17:57:36.158Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    **"debug": "No token data found"**,
    "timestamp": "2025-10-13T17:57:36.171Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "HTTP Connection failed after 908ms: fetch failed (code: none, errno: none)",
    "timestamp": "2025-10-13T17:57:37.060Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "error": "TypeError: fetch failed\n    at node:internal/deps/undici/undici:13510:13\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async $V0.send (file:///home/taflem/.nvm/versions/node/v22.19.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:558:32554)",
    "timestamp": "2025-10-13T17:57:37.061Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "debug": "Connection failed after 910ms: fetch failed",
    "timestamp": "2025-10-13T17:57:37.062Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
  {
    "error": "Connection failed: fetch failed",
    "timestamp": "2025-10-13T17:57:37.062Z",
    "sessionId": "a7a01272-1b9e-492d-bcb4-84aeb0de7dde",
    "cwd": "/home/taflem/ai-gov-nav-prototype"
  },
...

tarastclair avatar Oct 13 '25 18:10 tarastclair

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

github-actions[bot] avatar Dec 07 '25 10:12 github-actions[bot]

This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.

github-actions[bot] avatar Jan 08 '26 10:01 github-actions[bot]