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 5 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