Figma Desktop MCP (type:http) is shown as SSE and fails with "SSE error: Non-200 status code (400)
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
### 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)
Guía de contribución
Línea de trabajo
Start with the .github/mcp.json configuration and trace how the Copilot CLI selects a transport for the Figma endpoint at http://127.0.0.1:3845/mcp. Reproduce the POST initialize and GET/SSE requests, then verify that the server remains type:http and connects successfully without the SSE 400 error.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- shell
- Área
- api, cli, networking
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 50/100