github / github/copilot-cli

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

Open
#2,790 1 comment 3 reactions 0 assignees View on GitHub
area:mcp area:networking
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

### 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:

```text
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
```json
{
"mcpServers": {
"figma-desktop": {
"type": "http",
"url": "http://127.0.0.1:3845/mcp",
"tools": ["*"]
}
}
}
```

Actual status shown in Copilot CLI

```text
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

- Figma local MCP docs: https://developers.figma.com/docs/figma-mcp-server/local-server-installation/
- MCP transports spec: https://modelcontextprotocol.io/specification/2025-03-26/basic/transports
- Possibly related Copilot CLI issue: #1360 (Streamable HTTP error - Session not found)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.