Figma Desktop MCP (type:http) is shown as SSE and fails with "SSE error: Non-200 status code (400)
- 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
Assessment
This issue has not been assessed yet.