Figma MCP Server

io.github.oabolade由 GitHub 帳號 oabolade 發布v2.1.0更新於 Oct 25, 2026

MCP server enabling AI assistants to interact with Figma designs via natural language commands

發布方自己的服務:Figma MCP Server

已驗證STDIO僅桌面開發者工具媒體與設計

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓 AI 助理透過 Figma REST API 分析檔案、列出元件、匯出素材並管理留言。

可以做什麼
分析 Figma 檔案:結構、中繼資料、樣式和限深樹,以及專案與團隊清單和中繼資料。列出元件並檢視其詳細資料與使用情形。將節點匯出為 PNG、SVG、PDF 或 JPG。讀取並建立設計留言。提供 MCP 資源與提示詞以引導工作流程,並包含設計修改輔助工具。
適用情境
適合讓助理檢視 Figma 設計、取得元件清單、匯出素材,或不必離開對話就能讀取和張貼設計留言。適用於使用 Figma 帳號的個人設計師與開發者。
執行需求
以 Node.js 程序(Node.js 20 或更新版本)透過 stdio 在本機執行,或作為 Apify 上的長時間執行 Web 伺服器(雲端需要 Apify 帳號)。需要 FIGMA_ACCESS_TOKEN 中的 Figma 個人存取權杖,或改用 Figma OAuth 應用程式(用戶端 ID、密鑰和完全相符的重新導向 URI)。需要連線至 Figma API 的網路存取。
安裝前請注意
需要 Figma 個人存取權杖,這是可存取你 Figma 帳號的憑證,請勿放入共用設定。OAuth 模式會將工作階段權杖存入該次執行的鍵值儲存,且每次執行僅支援一個工作階段。此伺服器可建立留言和修改設計,會變更 Figma 中的資料。Apify 容器 URL 依每次執行產生,執行結束後即失效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Figma MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Figma MCP Server (Apify Actor)

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.

Features

  • File analysis — structure, metadata, styles, depth-limited trees
  • Components — list, details, usage
  • Assets — export nodes (PNG, SVG, PDF, JPG)
  • Comments — read and create
  • Projects / teams — listings and metadata
  • MCP resources & prompts for guided workflows

Authentication

Personal Access Token (default)

Recommended for solo use. Set figmaAccessToken in Actor input (or FIGMA_ACCESS_TOKEN in env).

OAuth 2.0 (optional — team / shared files)

Use when you omit figmaAccessToken and provide a Figma OAuth app:

InputPurpose
oauthClientIdFrom Figma → Developers → Apps
oauthClientSecretSame app
oauthRedirectUriExact redirect URL registered on the app, e.g. https://<your-run>.runs.apify.net/oauth/callback
oauthScopesOptional; 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

  1. Start the Actor with OAuth fields filled and no PAT.
  2. Open GET https://<container-url>/oauth/authorize in a browser (normal browser — not an embedded WebView; Figma requirement).
  3. After consent, Figma redirects to /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.

Requirements

  • Node.js ≥ 20
  • Apify account (for cloud)
  • Figma PAT and/or OAuth app

Quick start (Apify Cloud)

bash
npm installapify loginapify push

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.

Configuration (input)

ParameterTypeDefaultDescription
figmaAccessTokenstring—PAT (recommended). If set, used for all Figma API calls.
portinteger8080HTTP listen port (Apify may override via web_server_port).
oauthClientIdstring—OAuth app client ID (only if not using PAT).
oauthClientSecretstring—OAuth app secret (secret input).
oauthRedirectUristring—Must match Figma app redirect URI exactly.
oauthScopesstring—Optional scope override (comma-separated).
maxConcurrentRequestsinteger10Reserved / future use.
enableCachingbooleantrueCache GET responses from Figma.

Local / CLI input file example (apify run):

json
{  "figmaAccessToken": "figd_...",  "port": 8080}

HTTP API

MethodPathDescription
GET/Service info and endpoint list
GET/healthLiveness; includes auth_mode: pat | oauth | pending_oauth, figma_authenticated
POST/mcpMCP JSON-RPC 2.0 (primary transport for this server)
GET/oauth/authorizeStart OAuth (browser); disabled if PAT is set
GET/oauth/callbackOAuth 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 IDE

  1. Deploy and start the Actor; copy the run Container URL (while status is RUNNING).
  2. Edit ~/.cursor/mcp.json (paths differ on Windows/Linux — see Cursor docs).

Example (remote HTTP MCP — adjust to your Cursor version’s expected shape):

json
{  "mcpServers": {    "figma-mcp-standby": {      "url": "https://YOUR_RUN_ID.runs.apify.net/mcp"    }  }}

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.
  • Container URLs are per run and stop working when the run ends; update mcp.json and restart Cursor after a new run.
  • If connection fails, use Cursor → Output → MCP and curl https://.../health.

Claude Desktop / other clients

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.

Local development

bash
npm installapify run

Or run the entry with Node if you inject env / input yourself:

bash
export FIGMA_ACCESS_TOKEN="figd_..."node src/main.js

Check health (port from logs or input):

bash
curl -s http://localhost:8080/health | jq .

Sample MCP initialize:

bash
curl -s -X POST http://localhost:8080/mcp \  -H "Content-Type: application/json" \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

Project structure

figma_mcp_actor/├── .actor/│   ├── actor.json           # Apify Actor metadata (incl. webServerMcpPath: /mcp)│   ├── input_schema.json│   ├── output_schema.json│   └── dataset_schema.json├── src/│   ├── main.js              # Express app, /mcp, /oauth/*, Apify bootstrap│   ├── figma/│   │   ├── auth.js          # PAT + OAuth token exchange, refresh, KV hook│   │   └── client.js        # Figma REST wrapper│   ├── oauth/│   │   └── persist.js       # Apify KV: FIGMA_OAUTH_SESSION│   ├── mcp/                 # Protocol, handlers, server│   ├── tools/│   ├── resources/│   └── prompts/├── Dockerfile├── package.json└── README.md

MCP tools (overview)

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.

Limitations

  • REST vs Plugin API — deep design writes may need the Plugin API; this Actor uses REST where supported.
  • Ephemeral Apify URLs — each run has a new base URL unless you use a stable hosting pattern.
  • OAuth — single stored session per run (KV); not multi-user concurrent OAuth in one process.

Scripts

bash
npm run lintnpm run lint:fixnpm run format

License

ISC

Changelog

0.2

  • Optional OAuth 2.0 (Figma authorization code + refresh); PAT remains default when set.
  • /oauth/authorize and /oauth/callback; session persisted in default KV (FIGMA_OAUTH_SESSION).
  • Input: oauthRedirectUri, oauthScopes.
  • Health JSON: auth_mode, figma_authenticated.

0.1 / 0.0.1

  • Initial MCP + Figma REST integration, PAT, long-running server, /mcp JSON-RPC.

References: Apify Actors · Figma REST API · Model Context Protocol

來源:README.md,提交 5497202

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Figma 整合