Skip to content

Figma Desktop MCP (type:http) is shown as SSE and fails with "SSE error: Non-200 status code (400) #2790

@sonobo

Description

@sonobo

Describe the bug

When I configure Figma Desktop MCP in Copilot CLI as an HTTP MCP server, Copilot CLI shows it as Type: sse and fails to connect with:

SSE error: Non-200 status code (400)

The same endpoint works in Codex CLI with the same URL, and direct protocol probing shows the Figma endpoint is healthy and accepts a normal MCP streamable-HTTP initialize request.

This looks like Copilot CLI is misclassifying or incorrectly negotiating Figma Desktop's streamable-HTTP endpoint.

Affected version

GitHub Copilot CLI 1.0.31

Steps to reproduce the behavior

  1. Open Figma Desktop.
  2. Open a Figma Design file, switch to Dev Mode, and enable the desktop MCP server.
  3. Add the above server entry to .github/mcp.json.
  4. Start a new Copilot CLI session in that workspace.
  5. Observe MCP status for figma-desktop.

Expected behavior

Copilot CLI should keep this server as type:http, perform MCP initialize via HTTP POST, and connect successfully.

Additional context

Actual behavior

Copilot CLI surfaces the server as Type: sse and fails with HTTP 400.

Environment

  • OS: Windows 11 / Windows_NT
  • Figma Desktop local MCP endpoint: http://127.0.0.1:3845/mcp
  • Workspace config file: .github/mcp.json

Minimal MCP config

{
  "mcpServers": {
    "figma-desktop": {
      "type": "http",
      "url": "http://127.0.0.1:3845/mcp",
      "tools": ["*"]
    }
  }
}

Actual status shown in Copilot CLI

 MCP Server: figma-desktop

 Type:     sse
 URL:      http://127.0.0.1:3845/mcp
 Status:   ✗ Failed
 Error:    SSE error: Non-200 status code (400)

Supporting evidence

A direct probe against the same endpoint succeeds for POST initialize and fails only for GET/SSE-style access:

  • POST /mcp with:
    • Accept: application/json, text/event-stream
    • JSON-RPC initialize request body
    • returns:
      • HTTP 200
      • Content-Type: text/event-stream
      • Mcp-Session-Id:

But:

  • GET /mcp without a valid MCP session context returns:
  • HTTP 400
  • {"jsonrpc":"2.0","error":{"code":-32001,"message":"Invalid sessionId"},"id":null}

This suggests the endpoint is a valid streamable-HTTP MCP server and Copilot CLI may be incorrectly taking an SSE fallback path.

Comparison

  • The same Figma endpoint works in Codex CLI with the same URL.
  • Figma documents the desktop MCP server at http://127.0.0.1:3845/mcp.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:mcpMCP server configuration, discovery, connectivity, OAuth, policy, and registryarea:networkingProxy, SSL/TLS, certificates, corporate environments, and connectivity issues

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions