Repository navigation
MCP: Figma remote server (mcp.figma.com) fails to load — -32601 on server/discover treated as fatal (works in VS Code) #4870
Description
Figma MCP server fails to register tools — CLI marks it fatally failed on -32601 from server/discover
Summary
The Figma hosted MCP server (https://mcp.figma.com/mcp) authenticates and initializes
successfully, but the CLI never registers its tools. The CLI's discovery probe receives
-32601 Method not found, records it as a fatal server failure, and enters a
discover_and_start_root full-host-rebuild loop. Other HTTP MCP servers (e.g. MObbin) hit
the same discovery path but recover via "legacy initialize"; Figma's stricter -32601
response trips the fatal path, so Figma tools are never loaded.
Environment
- GitHub Copilot CLI: 1.0.85 (Homebrew/npm install:
/opt/homebrew/bin/copilot->@github/copilot) - OS: macOS (arm64)
- Figma MCP server negotiated protocol version: 2026-07-28 (fallback 2025-11-25)
- Figma server advertises tools:
tools: Some(ToolsCapability { list_changed: Some(true) })
Not the cause (ruled out)
- Auth is fine. Logs show
Successfully authenticated with figma; OAuth flow statussuccess;
valid client registration; keychain token present. - Endpoint is healthy.
curl -i -X POST https://mcp.figma.com/mcpreturns401with a
validwww-authenticateOAuth challenge (scope="mcp:connect",
authorization_uri="https://api.figma.com/.well-known/oauth-authorization-server"). - Not fixed by enable/disable toggling, re-auth, or full CLI restart.
Observed log sequence (per retry cycle)
[WARNING] mcp::client: server/discover returned an unusable JSON response; retrying with legacy initialize
[INFO] rmcp::service: Service initialized as client { protocol_version: "2026-07-28",
capabilities: ... tools: Some(ToolsCapability { list_changed: Some(true) }) ... }
[INFO] rmcp::service: serve finished { quit_reason: "Cancelled" }
[DEBUG] rt_mcp::native_host: Recorded failure for server figma: MCP error -32601: Method not found.
[WARNING] copilot_runtime::session::mcp::agent_host: MCP error -32601: Method not found. { server: "figma" }
[DEBUG] session::mcp::session_host: mcp discover_and_start_root { force: true }
[DEBUG] session::mcp::session_host: mcp discover_and_start_root: full replace_host path
... loop repeats; figma transport worker crashes repeatedly:
[ERROR] rmcp::transport::worker: worker quit with fatal: Transport channel closed,
when Client(OAuthChallenge { ... mcp.figma.com ... status_code: 401 })
In one ~40s post-restart window: ~27 figma transport-worker crashes and ~14 full host rebuilds.
Root cause (hypothesis)
Figma upgraded its MCP server to protocol 2026-07-28, which returns a JSON-RPC
-32601 Method not found for the CLI's server/discover probe. CLI 1.0.85 treats that
-32601 on discovery as a fatal failure for the server (instead of falling back to legacy
initialize, as it does for a malformed/"unusable JSON" discover response). Because Figma is
marked failed, its tools are never registered, and the host is rebuilt in a loop.
Key differentiator: works in VS Code, fails in Copilot CLI (same endpoint)
The identical https://mcp.figma.com/mcp endpoint works in VS Code's MCP client but fails
in Copilot CLI. Standard MCP clients (VS Code, etc.) perform only the standard handshake
(initialize -> tools/list), which Figma answers correctly. Copilot CLI additionally issues
a non-standard server/discover probe first; Figma correctly returns -32601 Method not found for that unknown method, and the CLI records it as a fatal failure — even though its own
fallback initialize succeeds immediately after. This proves the issue is entirely client-side
(Copilot CLI), not an auth, config, network, or Figma-server problem.
Expected behavior
When server/discover returns -32601 Method not found, the CLI should fall back to the
standard initialize handshake (which succeeds here) and register the server's tools,
rather than recording a fatal failure and looping.
Suggested fix
Handle a -32601 response to server/discover the same way as an "unusable JSON" response:
retry with legacy initialize and continue, instead of marking the server fatally failed.
Workaround
Update to a newer CLI build that supports Figma's 2026-07-28 MCP protocol handshake.
Activity
AudunSorheim commentedon Sep 16, 2026
Same issue in gh copilot app
andyhunti commentedon Sep 17, 2026
Still seeing this in CLI 1.0.86-2
makania commentedon Sep 17, 2026
Possible related token/config-caching issue (separate from the discovery
-32601)Separate from the
server/discover-32601you've isolated as client-side — I hit a related OAuth token-caching problem on the same Figma server. It won't be the root cause of the tool-discovery failure (you've correctly ruled auth out), but it may be contributing to the re-auth churn and repeatedOAuthChallenge/401host rebuilds in your logs, so noting it here in case it's useful.Contributing factor: an empty
"headers": {}object in the server entry in~/.copilot/mcp-config.json.My Figma entry originally looked like this:
The empty
"headers": {}appears to make the CLI's internal cache key — the one used to name/locate the saved OAuth token file under~/.copilot/mcp-oauth-config/— unstable. In my case, listing that directory before and after auth showed two different token files written for the same auth event, and the token loaded on the next run didn't match the one written at auth time. So a valid, non-expired token existed on disk but was never picked up, forcing a fresh/mcp auth figmaon every CLI restart.Fix: remove the empty
headerskey entirely, so the entry is just:After that,
/mcp auth figmapersisted across restarts and tool discovery succeeded reliably for me.ItsikBin commentedon Sep 17, 2026
same here, tried to figure it out in the last several hours
miguellgramacho96 commentedon Sep 17, 2026
What github copilot cli version are you using as the current workaround @Just-Jan ?
miguellgramacho96 commentedon Sep 18, 2026
Still seeing this issue in 1.0.86.
I can also confirm that the integration with figma still works for vscode.
andyhunti commentedon Sep 19, 2026
No longer seeing this issue with 1.0.87 mac & windows. Auth successful.
Just-Jan commentedon Sep 20, 2026
I tested the new 1.0.87 release and can confirm that the issue is resolved. The Figma MCP is now working as expected.