figma/use_figma hangs in interactive Codex and cancels in codex exec

Open 💬 1 comment Opened Apr 8, 2026 by jronaldi0509

Summary
Codex can reach the Figma MCP server well enough for whoami and get_metadata, but use_figma is still broken on the same authenticated file.

There are two observed failure modes:

  • nested codex exec returns user cancelled MCP tool call
  • interactive Codex dispatches use_figma, then hangs for several minutes and only surfaces the same cancellation after manual interruption

Environment

  • Codex CLI: 0.118.0
  • Model: gpt-5.4
  • OS: Linux x86_64 (WSL2)
  • Approval mode: never
  • Active Codex MCP config: URL-only OAuth for https://mcp.figma.com/mcp
  • Figma seat/plan: Full seat on Pro

Minimal repro

  1. Confirm Figma MCP is registered and logged in:

codex mcp get figma

  1. Run the tracked repro helper:

python3 scripts/codex_figma_use_figma_repro.py --mode exec --file-key 5ilg4oRfpF04a2SUZsHXSK

  1. For the interactive variant, run the same prompt through the TUI:

codex --no-alt-screen -C <repo> "<prompt>"

The repro prompt forces the figma and figma-use skills into scope and asks Codex to make exactly one read-only use_figma call that returns only pageCount and ordered pageNames. It explicitly forbids fallback calls like whoami and get_metadata.

Expected
use_figma should either:

  • return JSON with pageCount and pageNames, or
  • fail with a concrete Figma-side error such as auth or file permission

Actual
Nested codex exec

  • returns: user cancelled MCP tool call

Interactive Codex

  • dispatches mcp__figma__use_figma
  • then emits no completion for about 6 minutes 48 seconds
  • after manual interruption, the session records:
  • mcp_tool_call_end ... result.Err = "user cancelled MCP tool call"
  • function_call_output = [{"type":"text","text":"user cancelled MCP tool call"}]

What is already ruled out

  • Figma auth is broadly working enough for other tools
  • figma/whoami succeeds
  • figma/get_metadata succeeds against the same file key
  • the failing call includes skillNames: "figma-use"
  • prompt complexity is not the issue; the repro is a trivial read-only script against figma.root.children

Concrete interactive evidence

  • Session id: 019d6c41-37ad-7150-9e64-c251f5b6730e
  • Tool call id: call_Uxki8nSQa34Gmacq1cG5toVd
  • Tool dispatch timestamp: 2026-04-08T08:42:35.057Z
  • Tool end timestamp: 2026-04-08T08:49:23.162Z

Relevant session excerpt

{"timestamp":"2026-04-08T08:42:35.057Z","type":"response_item","payload":{"type":"function_call","name":"mcp__figma__use_figma","call_id":"call_Uxki8nSQa34Gmacq1cG5toVd"}}
{"timestamp":"2026-04-08T08:49:23.162Z","type":"event_msg","payload":{"type":"mcp_tool_call_end","call_id":"call_Uxki8nSQa34Gmacq1cG5toVd","result":{"Err":"user cancelled MCP tool call"}}}
{"timestamp":"2026-04-08T08:49:23.162Z","type":"response_item","payload":{"type":"function_call_output","call_id":"call_Uxki8nSQa34Gmacq1cG5toVd","output":"[{\"type\":\"text\",\"text\":\"user cancelled MCP tool call\"}]"}}

Why this looks like a Codex-side issue

  • the same authenticated file works with other Figma MCP tools
  • use_figma is reached and dispatched, so this is not a simple tool discovery problem
  • the failure mode differs by Codex surface:
  • exec fast-cancels
  • interactive TUI stalls, then resolves to the same cancellation only after interruption

If helpful, I can provide the full local JSONL session transcript and the exact repro helper script body.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗