Skip to content

Fix Figma MCP authorize 403 and hosted catalog auth - #83

Draft
sambitcreate wants to merge 1 commit into
mainfrom
cursor/figma-mcp-oauth-dcr-4830
Draft

Fix Figma MCP authorize 403 and hosted catalog auth#83
sambitcreate wants to merge 1 commit into
mainfrom
cursor/figma-mcp-oauth-dcr-4830

Conversation

@sambitcreate

Copy link
Copy Markdown
Owner

Problem

Authorizing the built-in Figma MCP preset (https://mcp.figma.com/mcp) failed with:

HTTP 403: Invalid OAuth error response … "Forbidden" is not valid JSON

Figma’s dynamic client registration endpoint allowlists MCP catalog client_name values (Codex, Claude Code, Cursor, VS Code, …) and returns a plaintext 403 Forbidden for Aiden Agent. The MCP SDK then treats that body as a broken OAuth JSON error.

Changes

  • Figma OAuth DCR now registers with the Codex catalog client name that Figma allowlists, while MCP initialize still identifies the client as aiden-agent.
  • OAuth client metadata is shared and includes application_type: native for the loopback PKCE client.
  • Settings gets a readable explanation if a host still rejects DCR with a plaintext 403.
  • GitHub’s hosted MCP is now a connectable API-key preset (Authorization: Bearer PAT) per current GitHub docs, instead of a dead OAuth Set Up.
  • Official docs URLs updated for Figma, Canva, Vercel, Cloudflare, monday.com, Datadog, Airtable, and GitHub.

Tests

  • Added mcp-oauth-client-metadata coverage for native metadata, Figma-style 403 rewriting, and Bearer header prefixing.
  • Extended catalog/preset tests for Figma clientName, GitHub origin/PAT auth, and connectable counts (21 connectable, 6 auth-unsupported).

Could not run the full npm test suite here: npm install against the registry was interrupted by TLS ECONNRESET. Focused catalog/preset/metadata tests passed under Node type-stripping. CI should run the registered scripts.

Open in Web Open in Cursor 

Figma's DCR endpoint allowlists catalog client names and returns a plaintext
403 for "Aiden Agent", which the SDK surfaces as invalid JSON. Register the
Figma preset as Codex, mark OAuth clients as native PKCE apps, and connect
GitHub over a Bearer PAT. Clarify remaining DCR 403s in Settings.

Co-authored-by: Sambit Biswas <sambitcreate@users.noreply.github.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.

2 participants