figma-mcp-proxy
by dgehriger
README.md
# figma-mcp-proxy
A small, read-only MCP compatibility proxy for Figma's REST API. It is intended for MCP clients that cannot complete the official Figma remote MCP OAuth flow.
This is **not** the official Figma MCP server. It returns raw Figma REST API data and does not provide Figma's generated framework code, design-system search, or write-to-canvas tools.
## Requirements
- Node.js 18.18 or newer
- A Figma personal access token with the minimum read scopes needed for your files
Create a token in Figma account settings and keep it private. Each user supplies their own token; this project never contains or hosts tokens.
## Run with npx
Until the package is published to the npm registry, run the public GitHub package directly:
```text
npx --yes --package=github:dgehriger/figma-mcp-proxy -- figma-mcp-proxy
```
Set `FIGMA_ACCESS_TOKEN` in the environment used by your MCP client, then configure the server:
```json
{
"mcpServers": {
"figma": {
"type": "local",
"command": "npx",
"args": [
"--yes",
"--package=github:dgehriger/figma-mcp-proxy",
"--",
"figma-mcp-proxy"
],
"env": {
"FIGMA_ACCESS_TOKEN": "${env:FIGMA_ACCESS_TOKEN}"
}
}
}
}
```
For GitHub Copilot Desktop, the file is `%USERPROFILE%\\.copilot\\mcp-config.json`. Set the token in the parent process environment before starting Copilot, or replace the environment reference with a locally managed secret mechanism supported by your installation. Do not commit the token to a config file.
## Available tools
- `get_design_context` — read a file or selected node from a Figma URL or file key
- `get_file` — read a file document
- `get_file_nodes` — read selected nodes
- `get_images` — request rendered image URLs
- `get_comments` — read file comments
- `get_current_user` — verify the configured token
## Agent guidance
The server sends a generalized Figma inspection workflow in the MCP
initialization instructions, so an agent does not need a separate Figma skill
to use this proxy correctly. The workflow teaches the agent to:
- request a direct design URL or file key and clarify the inspection goal;
- discover pages with shallow `get_file` calls before expanding a node tree;
- inspect targeted pages, sections, and frames with `get_file_nodes`;
- identify concrete `FRAME` nodes before requesting context or images;
- report node IDs, evidence, ordering, and access limitations; and
- avoid requesting credentials through chat.
Clients that support MCP prompts can invoke `figma_inspection_workflow` with a
goal and optional file URL or node ID. The same guidance is available as the
`figma://workflow/inspection` resource.
The guidance is intentionally generic. It does not assume a particular Figma
team, project naming scheme, browser session, or organization.
## Development
```text
npm install
npm test
npm run check
```
The package is intentionally read-only. The official Figma remote MCP server remains the better option when a client can complete its OAuth flow.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues