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

# Configuration

> Reference for every Framelink MCP for Figma server option: CLI flags, environment variables, and defaults.

Every server option can be set with a CLI flag, an environment variable, or left at its default. Precedence is CLI flag, then environment variable, then default. Environment variables can come from your shell or from a `.env` file, which the server reads from its working directory at startup; pass `--env` to load a different file. Values in the `.env` file override variables already set in the shell.

For step-by-step setup of credentials, see [Authentication](/authentication). The [`fetch` command](/fetch) accepts a subset of these options.

## Authentication

How the server authenticates to the Figma API. Stdio mode and the `fetch` command exit at startup unless one of the first two is set. See [Authentication](/authentication) for how to choose and set up a method.

<ResponseField name="--figma-api-key" type="string">
  Env: `FIGMA_API_KEY`

  A Figma personal access token. Sent to Figma in the `X-Figma-Token` header.
</ResponseField>

<ResponseField name="--figma-oauth-token" type="string">
  Env: `FIGMA_OAUTH_TOKEN`

  A Figma OAuth access token. Sent to Figma as `Authorization: Bearer`. If both this and a personal access token are set, the OAuth token is used.
</ResponseField>

### Per-request token

HTTP mode only. A token sent by the MCP client on an individual request overrides the server's own credentials for that request. See [Per-request tokens in HTTP mode](/authentication#per-request-tokens-in-http-mode).

<ResponseField name="X-Figma-Token" type="header">
  A Figma personal access token for this request. Takes precedence over `Authorization`.
</ResponseField>

<ResponseField name="Authorization" type="header">
  A Figma OAuth token for this request, in the form `Bearer YOUR-KEY`.
</ResponseField>

## Transport

<ResponseField name="--stdio" type="boolean" default="false">
  Run over stdin/stdout instead of HTTP. Use this when your MCP client launches the server as a subprocess, which is how most editor configs work. Without it, the server starts an HTTP server; see [HTTP server](/http-server).
</ResponseField>

<ResponseField name="--port" type="number" default="3333">
  Env: `FRAMELINK_PORT` (`PORT` is also accepted)

  Port for the HTTP server. Ignored in stdio mode.
</ResponseField>

<ResponseField name="--host" type="string" default="127.0.0.1">
  Env: `FRAMELINK_HOST`

  Address the HTTP server binds to. Ignored in stdio mode.
</ResponseField>

## Output

<ResponseField name="--format" type="tree | yaml | json" default="tree">
  Env: `OUTPUT_FORMAT`

  Format of the design data returned by `get_figma_data`. `tree` is the most compact and is built for LLMs; use `yaml` or `json` only if something needs to parse the output. Any other value stops the server at startup. The `fetch` command defaults to `yaml` instead.
</ResponseField>

<ResponseField name="--json" type="boolean" default="false">
  Alias for `--format=json`. If both are passed, `--format` wins.
</ResponseField>

## Images

<ResponseField name="--image-dir" type="string" default="current working directory">
  Env: `IMAGE_DIR`

  Base directory for `download_figma_images`. The tool only writes files inside it, and its description tells the agent this path. Relative paths resolve against the server's working directory. In stdio mode, set this explicitly: clients often launch the server outside your project, and the server prints a warning when it is unset and image downloads are on.
</ResponseField>

<ResponseField name="--skip-image-downloads" type="boolean" default="false">
  Env: `SKIP_IMAGE_DOWNLOADS` (`true` or `false`)

  Don't register the `download_figma_images` tool.
</ResponseField>

## Network

<ResponseField name="--proxy" type="string">
  Env: `FIGMA_PROXY`

  Proxy URL for outbound requests to Figma, such as `http://proxy.example.com:8080`. When unset, the server uses the standard `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` variables if any are present. Pass `none` to ignore those variables and connect directly:

  ```bash theme={null}
  npx figma-developer-mcp --figma-api-key=figd_xxxxxx --proxy=none --stdio
  ```

  See [Network proxy and connection errors](/troubleshooting#network-proxy-and-connection-errors).
</ResponseField>

## Telemetry

<ResponseField name="--no-telemetry" type="boolean" default="false">
  Env: `FRAMELINK_TELEMETRY=off`, or `DO_NOT_TRACK` set to any non-empty value other than `0`

  Turn off anonymous usage telemetry. When on, the server sends one event per tool call describing timing, response shape, and errors, with Figma credentials scrubbed.
</ResponseField>

## Files

<ResponseField name="--env" type="string" default="./.env">
  Path to the `.env` file to load. Relative paths resolve against the server's working directory.
</ResponseField>

## Information

<ResponseField name="--help" type="boolean">
  Print all options and exit.
</ResponseField>

<ResponseField name="--version" type="boolean">
  Print the server version and exit.
</ResponseField>

## Environment variables

| Variable | Flag |
| - | - |
| `FIGMA_API_KEY` | `--figma-api-key` |
| `FIGMA_OAUTH_TOKEN` | `--figma-oauth-token` |
| `FRAMELINK_PORT`, `PORT` | `--port` |
| `FRAMELINK_HOST` | `--host` |
| `OUTPUT_FORMAT` | `--format` |
| `IMAGE_DIR` | `--image-dir` |
| `SKIP_IMAGE_DOWNLOADS` | `--skip-image-downloads` |
| `FIGMA_PROXY` | `--proxy` |
| `FRAMELINK_TELEMETRY`, `DO_NOT_TRACK` | `--no-telemetry` |
| `HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY` | none; used when `--proxy` is unset |

### Example .env file

```bash theme={null}
FIGMA_API_KEY=figd_xxxxxxxxxxxxxxxxxxxxxx
FRAMELINK_PORT=3333
FRAMELINK_HOST=127.0.0.1
OUTPUT_FORMAT=tree
IMAGE_DIR=/path/to/your/project
SKIP_IMAGE_DOWNLOADS=false
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.