Skip to main content
Question

Remote MCP server OAuth client registration issue

  • October 1, 2025
  • 7 replies
  • 819 views

Kevin Gallardo

Hello, I am trying to run through the MCP OAuth protocol to register a client on the Figma remote MCP server, running into an issue when calling the registration endpoint.

After discovering the registration endpoint via the /.well_known/oauth-authorization-server call, I call the registration endpoint via:

curl -sS -v -X POST "$REG_ENDPOINT" -H "Content-Type: application/json" -d '{
    "redirect_uris": ["http://127.0.0.1:53195/callback"],
    "grant_types": ["authorization_code","refresh_token"],
    "response_types": ["code"],
    "token_endpoint_auth_method": "none"
  }'

 

I get back from this a “Forbidden” response and without this response I can’t continue the OAuth protocol.

Does client registration have limitations to prevent it from working on different domains and url callbacks at the moment? I am doing this in a context outside of Claude, Cursor, etc..

7 replies

adamstilla
  • New Member
  • October 6, 2025

Same problem.


Tom Reem
Figmate
  • Figmate
  • October 6, 2025

Hey ​@Kevin Gallardo and ​@adamstilla — welcome to Figma Forum, and thanks for surfacing this! 🙌🏻

I checked in with our product team and confirmed that this functionality isn't currently available outside of our approved MCP clients. You can view the full list of supported integrations here: Connect Figma to top MCP clients.

We're always iterating based on feedback and will continue updating that resource as new clients become available. If you have more thoughts on what an ideal configuration might look like, please feel free to share. I'll make sure that insight reaches our product team. 💯


Vanaraj
  • New Member
  • October 7, 2025

Hi ​@Tom Reem 

I was reviewing the Figma MCP server guide, and it mentions that the MCP Client can be requested by submitting details through the https://form.asana.com/?k=kBG-ejRQTdY8x_H6a4vM3Q&d=10497086658021 form.

Could you kindly confirm if this is the correct process to obtain access to the MCP Client?


Tom Reem
Figmate
  • Figmate
  • October 8, 2025

Hey ​@Vanaraj — great question! Yes, that's the correct way to request access. Just a quick note that submitting the form doesn't guarantee approval at this stage. Since the feature is still in beta, the team is gradually expanding access as they continue testing and refining.

We'll keep the Guide to the Figma MCP server updated and share any new details as soon as they're available.

In the meantime, don't hesitate to reach out if other questions come up. We'll keep the feedback loop open.


Advait Bansode

I’m not sure what the reason would be for whitelisting clients in this particular method. The industry wide norm is to let any MCP client connect to your MCP server, it’s also the reason why this is an open protocol.

 

I have seen no other MCP server provider do this other than Figma, and I hope you change course as well and open the MCP server to any client with proper authorisation in place.


Paul Warren
  • New Member
  • November 18, 2025

Any chance you could support mcp inspector (https://modelcontextprotocol.io/docs/tools/inspector).  mcp inspector is very useful for debugging but at the moment it is a forbidden client.


Sergey Yamshchikov

Hello there. Cursor seems to be supported but Cursor Agent (CLI interface) is not. Why is it so?

 

I’m getting this error:

 

Error (unhandledRejection): HTTP 403: Invalid OAuth error response: SyntaxError: Unexpected token 'F', "Forbidden" is not valid JSON. Raw body: Forbidden
ServerError: HTTP 403: Invalid OAuth error response: SyntaxError: Unexpected token 'F', "Forbidden" is not valid JSON. Raw body: Forbidden
at parseErrorResponse (/opt/homebrew/Caskroom/cursor-cli/2025.11.06-8fe8a63/dist-package/index.js:152218:16)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async registerClient (/opt/homebrew/Caskroom/cursor-cli/2025.11.06-8fe8a63/dist-package/index.js:152786:15)
at async authInternal (/opt/homebrew/Caskroom/cursor-cli/2025.11.06-8fe8a63/dist-package/index.js:152278:33)
at async auth (/opt/homebrew/Caskroom/cursor-cli/2025.11.06-8fe8a63/dist-package/index.js:152230:16)
at async StreamableHTTPClientTransport.send (/opt/homebrew/Caskroom/cursor-cli/2025.11.06-8fe8a63/dist-package/index.js:153404:36)