Skip to content

feat(oauth-proxy): add Figma MCP support#3111

Open
JonasJesus42 wants to merge 2 commits intomainfrom
JonasJesus42/figma-mcp-support
Open

feat(oauth-proxy): add Figma MCP support#3111
JonasJesus42 wants to merge 2 commits intomainfrom
JonasJesus42/figma-mcp-support

Conversation

@JonasJesus42
Copy link
Copy Markdown
Contributor

@JonasJesus42 JonasJesus42 commented Apr 13, 2026

Summary

  • Add Figma-specific handling in the OAuth proxy register endpoint: injects X-Figma-Token header from connection PAT, rewrites client_name to "Claude Code (figma)", and ensures scope: "mcp:connect" in the registration body
  • Add provider hint for Figma in the connection creation form (auto-detects *.figma.com URLs, shows PAT field with link to Figma developer settings)
  • Add Figma PAT label/placeholder/description in the connection edit sidebar
  • Add actionable 403 error message when Figma registration fails

Test plan

  • Create a Figma MCP connection with URL https://mcp.figma.com/mcp
  • Verify provider hint shows "Figma PAT" field with link to Figma settings
  • Paste Figma PAT and authenticate — registration succeeds (200)
  • OAuth flow completes and token is persisted
  • bun run fmt, bun run lint, bun run check pass
  • bun test passes (1534 pass, 32 skip)

🤖 Generated with Claude Code


Summary by cubic

Adds Figma MCP support with PAT-based registration in the OAuth proxy and UI hints to add a Figma PAT, enabling reliable connection to mcp.figma.com.

  • New Features
    • OAuth proxy: injects X-Figma-Token on register, rewrites client_name to "Claude Code (figma)", always ensures scope: "mcp:connect", and returns a clear 403 when the PAT is missing/invalid (via isFigmaConnection).
    • UI: auto-detects *.figma.com URLs, shows a Figma provider hint with a Figma PAT field (figd_…) and link to PAT settings; updates sidebar label, placeholder, and help text.

Written for commit e50f17c. Summary will update on new commits.

Figma Dynamic Client Registration requires an X-Figma-Token header and
specific client_name/scope values. This adds provider-specific handling
in the OAuth proxy to inject the PAT and rewrite the registration body,
plus UI hints for Figma connections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Benchmark

Should we run the Virtual MCP strategy benchmark for this PR?

React with 👍 to run the benchmark.

Reaction Action
👍 Run quick benchmark (10 & 128 tools)

Benchmark will run on the next push after you react.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 13, 2026

Release Options

Suggested: Minor (2.262.0) — based on feat: prefix

React with an emoji to override the release type:

Reaction Type Next Version
👍 Prerelease 2.261.1-alpha.1
🎉 Patch 2.261.1
❤️ Minor 2.262.0
🚀 Major 3.0.0

Current version: 2.261.0

Note: If multiple reactions exist, the smallest bump wins. If no reactions, the suggested bump is used (default: patch).

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/mesh/src/api/app.ts">

<violation number="1" location="apps/mesh/src/api/app.ts:745">
P1: `scope` is defaulted, not ensured. Existing non-empty scopes that omit `mcp:connect` will bypass this logic and can break Figma registration.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread apps/mesh/src/api/app.ts Outdated
…a register

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant