Describe the bug
Copilot CLI never receives Code Connect data from the Figma remote MCP server (https://mcp.figma.com/mcp). get_code_connect_map returns {}, and get_design_context output contains no CodeConnectSnippet elements.
Two other MCP clients (VS Code's Copilot Chat and the claude.ai Figma connector), logged in as the same Figma user and configured with the same server URL, get Code Connect data for the same file, node and arguments. Account, seat, login, file and server entry are identical, so this looks specific to the Copilot CLI's MCP client.
Affected version
GitHub Copilot CLI 1.0.90 (same result on 1.0.90-7 and 1.0.89)
Steps to reproduce the behavior
Run from a directory that is not a git repository (no repo hooks or MCP config involved):
-
Fetch the Code Connect map of a component that has a published Code Connect template:
copilot --model claude-sonnet-5 --allow-tool figma \
--additional-mcp-config '{"mcpServers":{"figma":{"type":"http","url":"https://mcp.figma.com/mcp","tools":["get_code_connect_map"]}}}' \
-p 'Call the figma MCP tool get_code_connect_map with fileKey "<file key>" and nodeId "<main component node id>". Print the raw JSON result only.'
Result: {}
-
Fetch the design context of the same node:
copilot --model claude-sonnet-5 --allow-tool figma \
--additional-mcp-config '{"mcpServers":{"figma":{"type":"http","url":"https://mcp.figma.com/mcp","tools":["get_design_context"]}}}' \
-p 'Call the figma MCP tool get_design_context with fileKey "<file key>", nodeId "<same node id>", clientLanguages "typescript,tsx", clientFrameworks "react", excludeScreenshot true. Tell me how many times the text CodeConnectSnippet occurs in the tool output.'
Result: 0 occurrences (plain generated code only).
-
Make the same call in VS Code (Copilot Chat) and with the claude.ai Figma connector, same Figma user, same file and node.
The Figma server can be added by hand (https://mcp.figma.com/mcp) or installed from the CLI's MCP marketplace (com.figma.mcp/mcp, the same registry entry VS Code uses); the result is {} either way.
Expected behavior
The same Code Connect data the other client receives, e.g. for a component with a React template:
{"<node id>": {"label": "React", "hasTemplate": true, "snippetImports": ["import { TableRowCell } from '...'"], "snippet": "<TableRowCell align=\"right\">Cell</TableRowCell>"}, ...}
and CodeConnectSnippet wrappers in get_design_context (7 of them for this component, one per variant).
Additional context
| Call (same user, file, node, arguments) |
Copilot CLI |
VS Code Copilot Chat |
claude.ai connector |
get_code_connect_map on the component |
{} |
7 mappings with snippets |
7 mappings with snippets |
get_design_context CodeConnectSnippet count |
0 |
not measured |
7 |
whoami |
same handle, same plans, Dev seat on the org plan |
not measured |
identical |
VS Code is configured with the same URL: "com.figma.mcp/mcp": {"type": "http", "url": "https://mcp.figma.com/mcp", "gallery": "https://api.mcp.github.com", "version": "1.0.3"}. The registry record contains only that URL, no OAuth or client metadata.
Ruled out:
- Account / seat / org:
whoami through Copilot returns exactly what the other client returns.
- Version / install method: 1.0.89, 1.0.90-7 and 1.0.90; manual config and marketplace install; fresh windows. Always
{}.
- Login: re-authenticated with
/mcp. The first call afterwards failed with MCP tool catalog changed before tool "figma-get_code_connect_map" could be invoked; the next session returned {} again.
- Label: passing
codeConnectLabel: "React" explicitly makes no difference.
- File / node: same result for a node in a project file and for the main component in the components file. Earlier sessions over several days, on three different files, all returned
{} (4 of 4 calls) and none of 39 get_design_context results contained a CodeConnectSnippet.
- Rate limits: dozens of Figma calls per day succeed with no rate-limit errors.
- Timing: the Code Connect templates were published days earlier.
Separate, transient problem: right after re-authenticating, and in a later VS Code chat, the tool call failed with MCP tool catalog changed before tool "..." could be invoked; the tool came back on the next attempt (VS Code) or the next session (CLI). This looks related to #3125 / #4731 and is not the cause of the empty result above, which is consistent (9 of 9 calls) and has no error.
Environment: macOS (arm64), zsh, Figma user with a Dev seat on an organization plan. The CLI log shows the Figma server negotiating protocol version 2026-07-28.
Related: #4906 shows Figma's OAuth registration applies an allowlist on the client name, so the server does distinguish clients. I don't know whether Code Connect output is gated the same way. Others report get_code_connect_map returning {} on the remote server while the desktop server works (Figma forum: "can't get code connect map info from figma remote mcp server"), but those were resolved by publishing the library, which is already the case here.
Could you check whether the client info / capabilities the Copilot CLI sends on initialize differ in a way that makes Figma's server withhold Code Connect data? I can run further diagnostics or capture logs (--log-level) if useful.
Describe the bug
Copilot CLI never receives Code Connect data from the Figma remote MCP server (
https://mcp.figma.com/mcp).get_code_connect_mapreturns{}, andget_design_contextoutput contains noCodeConnectSnippetelements.Two other MCP clients (VS Code's Copilot Chat and the claude.ai Figma connector), logged in as the same Figma user and configured with the same server URL, get Code Connect data for the same file, node and arguments. Account, seat, login, file and server entry are identical, so this looks specific to the Copilot CLI's MCP client.
Affected version
GitHub Copilot CLI 1.0.90(same result on 1.0.90-7 and 1.0.89)Steps to reproduce the behavior
Run from a directory that is not a git repository (no repo hooks or MCP config involved):
Fetch the Code Connect map of a component that has a published Code Connect template:
Result:
{}Fetch the design context of the same node:
Result: 0 occurrences (plain generated code only).
Make the same call in VS Code (Copilot Chat) and with the claude.ai Figma connector, same Figma user, same file and node.
The Figma server can be added by hand (
https://mcp.figma.com/mcp) or installed from the CLI's MCP marketplace (com.figma.mcp/mcp, the same registry entry VS Code uses); the result is{}either way.Expected behavior
The same Code Connect data the other client receives, e.g. for a component with a React template:
{"<node id>": {"label": "React", "hasTemplate": true, "snippetImports": ["import { TableRowCell } from '...'"], "snippet": "<TableRowCell align=\"right\">Cell</TableRowCell>"}, ...}and
CodeConnectSnippetwrappers inget_design_context(7 of them for this component, one per variant).Additional context
get_code_connect_mapon the component{}get_design_contextCodeConnectSnippetcountwhoamiVS Code is configured with the same URL:
"com.figma.mcp/mcp": {"type": "http", "url": "https://mcp.figma.com/mcp", "gallery": "https://api.mcp.github.com", "version": "1.0.3"}. The registry record contains only that URL, no OAuth or client metadata.Ruled out:
whoamithrough Copilot returns exactly what the other client returns.{}./mcp. The first call afterwards failed withMCP tool catalog changed before tool "figma-get_code_connect_map" could be invoked; the next session returned{}again.codeConnectLabel: "React"explicitly makes no difference.{}(4 of 4 calls) and none of 39get_design_contextresults contained aCodeConnectSnippet.Separate, transient problem: right after re-authenticating, and in a later VS Code chat, the tool call failed with
MCP tool catalog changed before tool "..." could be invoked; the tool came back on the next attempt (VS Code) or the next session (CLI). This looks related to #3125 / #4731 and is not the cause of the empty result above, which is consistent (9 of 9 calls) and has no error.Environment: macOS (arm64), zsh, Figma user with a Dev seat on an organization plan. The CLI log shows the Figma server negotiating protocol version
2026-07-28.Related: #4906 shows Figma's OAuth registration applies an allowlist on the client name, so the server does distinguish clients. I don't know whether Code Connect output is gated the same way. Others report
get_code_connect_mapreturning{}on the remote server while the desktop server works (Figma forum: "can't get code connect map info from figma remote mcp server"), but those were resolved by publishing the library, which is already the case here.Could you check whether the client info / capabilities the Copilot CLI sends on
initializediffer in a way that makes Figma's server withhold Code Connect data? I can run further diagnostics or capture logs (--log-level) if useful.