> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runlayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Figma

> Connect Figma's remote MCP server through Runlayer with a customer-registered OAuth app

<Info>
  **Hosted by a third party.** This MCP server is built and hosted by the
  vendor, not Runlayer. This guide covers connecting it through Runlayer for
  governance, policies, and audit.
</Info>

Connect your AI assistant to [Figma](https://www.figma.com) to read design context, screenshots, and metadata from Figma files, and (where your plan enables it) write designs back. This is a **remote MCP server** hosted by Figma — Runlayer proxies requests to `https://mcp.figma.com/mcp` using **Streamable HTTP** transport, authenticating each user with their own Figma account.

## Why Figma needs a registered OAuth app

Figma limits which OAuth clients can connect to its remote MCP server: only pre-registered client IDs are accepted, and Figma's Dynamic Client Registration endpoint is closed. Register a Figma OAuth app in your own workspace, then reach out to your Figma account manager to get its client ID approved for MCP access.

## Setup

<Steps>
  <Step title="Create a Figma OAuth app">
    1. Follow Figma's [OAuth apps guide](https://developers.figma.com/docs/rest-api/oauth-apps/) to create a new app in your Figma workspace
    2. Set the redirect URI to your Runlayer callback:
       ```
       https://<your-runlayer-domain>/oauth/callback
       ```
       This is your Runlayer `APP_URL` followed by `/oauth/callback` — the same origin your users open Runlayer at. The value must match exactly (scheme, host, path, no trailing slash).
    3. Copy the **Client ID** and **Client Secret**
  </Step>

  <Step title="Get the app approved by Figma">
    1. Contact your Figma account manager and ask them to pre-register your OAuth client for MCP access. Share the **Client ID** (never the secret) and request the `mcp:connect` scope
    2. Figma configures the client on their side and will tell you when it is approved; they may ask you to republish the app afterwards
    3. Until this step is done, Figma's consent screen rejects the client even though the app exists
  </Step>

  <Step title="Add the Figma connector in Runlayer">
    1. In Runlayer, go to **My connectors**, find **Figma**, and click **Add connector**
    2. Under **Registration**, keep **Pre-registered Client** selected
    3. Paste the **Client ID** and **Client Secret** from your Figma app
    4. Leave **OAuth Scopes** as `mcp:connect`
    5. Save the connector
  </Step>

  <Step title="Connect as a user">
    1. Each user opens the Figma connector in Runlayer and clicks **Connect**
    2. They complete Figma's consent screen with their own Figma account
    3. Tools are then available in any MCP client connected through Runlayer
  </Step>
</Steps>

## Troubleshooting

<Accordion title="Manual OAuth client setup required">
  The connector has no client ID or secret configured. Open the connector settings, choose **Pre-registered Client** under **Registration**, and paste the credentials from your Figma OAuth app.
</Accordion>

<Accordion title="403 from api.figma.com/v1/oauth/mcp/register">
  Expected. Figma's Dynamic Client Registration endpoint rejects every client, regardless of name. Use a pre-registered Figma OAuth app as described above instead of DCR.
</Accordion>

<Accordion title="Figma consent screen says the app is not approved">
  Figma has not yet approved your client ID for MCP access. Follow up with your Figma account manager; approval is a manual step on Figma's side and the app works only after they confirm it.
</Accordion>

<Accordion title="redirect_uri mismatch">
  The redirect URI on your Figma OAuth app must exactly match `https://<your-runlayer-domain>/oauth/callback`. Check for a trailing slash, a different subdomain, or `http` instead of `https`.
</Accordion>
