MCP server enabling AI assistants to interact with Figma designs via natural language commands
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Model Context Protocol (MCP) server that exposes Figma REST API capabilities to AI assistants (Cursor, Claude, custom agents). Runs as a long-running web server on the Apify platform (standby / container URL) or locally via apify run.
Recommended for solo use. Set figmaAccessToken in Actor input (or FIGMA_ACCESS_TOKEN in env).
X-Figma-Token/oauth/* routes return an error).Use when you omit figmaAccessToken and provide a Figma OAuth app:
| Input | Purpose |
|---|---|
oauthClientId | From Figma β Developers β Apps |
oauthClientSecret | Same app |
oauthRedirectUri | Exact redirect URL registered on the app, e.g. https://<your-run>.runs.apify.net/oauth/callback |
oauthScopes | Optional; comma-separated scopes. Must be a subset of the appβs configured scopes. Defaults include file_content:read, file_content:write, file_comments:read, file_comments:write. |
Flow
GET https://<container-url>/oauth/authorize in a browser (normal browser β not an embedded WebView; Figma requirement)./oauth/callback; tokens are stored in the runβs default key-value store (FIGMA_OAUTH_SESSION) and refreshed when near expiry.Token exchange uses Figmaβs documented endpoints (https://api.figma.com/v1/oauth/token and .../oauth/refresh). Codes expire quickly β complete the redirect promptly.
In Apify Console, open the Actor, set input (at minimum figmaAccessToken), start with web server / long-running as required by your template, then use the Container URL from the run.
Deploy reference: apify push builds and publishes; see Apify CLI.
| Parameter | Type | Default | Description |
|---|---|---|---|
figmaAccessToken | string | β | PAT (recommended). If set, used for all Figma API calls. |
port | integer | 8080 | HTTP listen port (Apify may override via web_server_port). |
oauthClientId | string | β | OAuth app client ID (only if not using PAT). |
oauthClientSecret | string | β | OAuth app secret (secret input). |
oauthRedirectUri | string | β | Must match Figma app redirect URI exactly. |
oauthScopes | string | β | Optional scope override (comma-separated). |
maxConcurrentRequests | integer | 10 | Reserved / future use. |
enableCaching | boolean | true | Cache GET responses from Figma. |
Local / CLI input file example (apify run):
| Method | Path | Description |
|---|---|---|
GET | / | Service info and endpoint list |
GET | /health | Liveness; includes auth_mode: pat | oauth | pending_oauth, figma_authenticated |
POST | /mcp | MCP JSON-RPC 2.0 (primary transport for this server) |
GET | /oauth/authorize | Start OAuth (browser); disabled if PAT is set |
GET | /oauth/callback | OAuth redirect handler |
Apify MCP path: .actor/actor.json sets webServerMcpPath to /mcp. Your MCP client URL is typically:
https://<container-id>.runs.apify.net/mcp
(Use the Container URL from the run page + /mcp.)
~/.cursor/mcp.json (paths differ on Windows/Linux β see Cursor docs).Example (remote HTTP MCP β adjust to your Cursor versionβs expected shape):
Notes
env.APIFY_TOKEN in mcp.json is not passed to this Node process; it does not replace Figma auth. Use figmaAccessToken (or OAuth) in Actor input.mcp.json and restart Cursor after a new run.curl https://.../health.Use your clientβs supported way to attach a remote MCP URL (e.g. mcp-remote pointing at https://.../mcp). Paths and query params depend on the client version.
Or run the entry with Node if you inject env / input yourself:
Check health (port from logs or input):
Sample MCP initialize:
Includes (names may vary slightly in code): file analysis (analyze_file, get_file_structure, β¦), components (list_components, β¦), export (export_node, β¦), comments (get_comments, create_comment, β¦), design modification helpers, plus resources (figma://file/..., etc.) and prompts for common tasks.
ISC
/oauth/authorize and /oauth/callback; session persisted in default KV (FIGMA_OAUTH_SESSION).oauthRedirectUri, oauthScopes.auth_mode, figma_authenticated./mcp JSON-RPC.References: Apify Actors Β· Figma REST API Β· Model Context Protocol
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/figma-mcp-server-2)<a href="https://allmcps.com/mcp/figma-mcp-server-2"><img src="https://allmcps.com/api/badge/figma-mcp-server-2?style=directory" alt="Figma MCP Server on AllMCPs" /></a>