Figma To Code MCP

Figma To Code MCP

Transforms Figma design data into a compact, LLM-friendly format for code generation, reducing size by 99.5% while preserving UI-critical information.

Category
访问服务器

README

<div align="center"> <h1>Figma To Code MCP</h1> <h3>Transform Figma design data into a compact, LLM-friendly format for code generation and UI building.</h3> <a href="https://npmcharts.com/compare/tmegit-figma-to-code-mcp?interval=30"> <img alt="weekly downloads" src="https://img.shields.io/npm/dm/tmegit-figma-to-code-mcp.svg"> </a> <a href="https://github.com/felixAnhalt/figma-to-code-mcp/blob/main/LICENSE"> <img alt="MIT License" src="https://img.shields.io/github/license/felixAnhalt/figma-to-code-mcp" /> </a> <br /> </div>

<br/>

Why This Project?

Figma To Code MCP specializes in extracting only the information LLMs need to build UIs while removing Figma-specific metadata that isn't relevant for code generation. The result:

  • 99.5% size reduction on real Figma files (65 MB → 128 KB)
  • CSS-aligned property names (backgroundColor, flexDirection, etc.) matching LLM training data
  • Complete UI-building data preserved (layout, styling, text, components)
  • Inline styles - no separate dictionaries to parse
  • Omits Figma internals - no bounding boxes, constraints, or prototype data
  • Variable resolution - resolves Figma variables to actual values
  • SVG support - exports vector graphics to disk
  • Pattern collapsing - deduplicates repeating UI patterns

Give Cursor and other AI-powered coding tools access to your Figma files with this Model Context Protocol server.

Available Tools

Tool Description
get_figma_design Fetches CSS-aligned, LLM-optimized design data. Supports SVG export to custom dir.
get_image_fills Retrieves image fill URLs from a Figma file
render_node_images Renders Figma nodes as PNG images
read_vector_svg Reads vector node data as SVG

Required Scopes

Create a Figma personal access token with these scopes:

Scope Purpose
file_content:read Read file nodes, layout, styles
library_content:read Read published components/styles
file_variables:read Read variables (Enterprise only, optional)

Note: Variable resolution requires Enterprise plan. Set resolveVariables: false if not on Enterprise.

How it works

  1. Open your IDE's chat (e.g. agent mode in Cursor).
  2. Paste a link to a Figma file, frame, or group.
  3. Ask Cursor to implement the design.
  4. Cursor fetches CSS-aligned, LLM-optimized design data and generates accurate code.

This MCP server transforms Figma API data into an LLM-friendly format:

  • CSS property names (backgroundColor, flexDirection, fontSize) instead of Figma internals
  • Inline styles directly in nodes (no separate dictionaries)
  • Flexbox primitives for layout (no absolute positioning)
  • Complete UI data (colors, typography, spacing, effects)
  • 99.5% size reduction while preserving all UI-critical information

See V2_CSS_PROPERTY_MAPPING.md for complete property mapping details.

Getting Started

Many code editors and other AI clients use a configuration file to manage MCP servers.

The tmegit-figma-to-code-mcp server can be configured by adding the following to your configuration file.

MacOS / Linux

{
  "mcpServers": {
    "Figma To Code MCP": {
      "command": "npx",
      "args": ["-y", "@tmegit/figma-to-code-mcp", "--figma-api-key=YOUR-KEY", "--stdio"]
    }
  }
}

Windows

{
  "mcpServers": {
    "Figma To Code MCP": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@tmegit/figma-to-code-mcp",
        "--figma-api-key=YOUR-KEY",
        "--stdio"
      ]
    }
  }
}

Or you can set FIGMA_API_KEY and PORT in the env field.

Configuration

The server reads configuration from CLI flags and environment variables. If both are set, the CLI flag wins.

Option CLI Env Default
Figma API key --figma-api-key FIGMA_API_KEY required
Figma OAuth token --figma-oauth-token FIGMA_OAUTH_TOKEN unset
Port --port FIGMA_TO_CODE_MCP_PORT or PORT 3333
Host --host FIGMA_TO_CODE_MCP_HOST 127.0.0.1
Output format --json OUTPUT_FORMAT yaml
Skip image tools --skip-image-downloads SKIP_IMAGE_DOWNLOADS=true false
SVG output dir --svg-output-dir FIGMA_SVG_OUTPUT_DIR temp dir
Prefetch library variables --library-file-keys FIGMA_LIBRARY_VARIABLE_PREFETCH_FILE_KEYS unset
Cache path --library-cache-path FIGMA_MCP_CACHE_PATH temp cache file
Cache TTL n/a FIGMA_MCP_CACHE_TTL_MS 7 days
Force cache refresh n/a FIGMA_MCP_REFRESH_CACHE off

Notes:

  • --library-file-keys and FIGMA_LIBRARY_VARIABLE_PREFETCH_FILE_KEYS are comma-separated Figma library file keys.
  • FIGMA_MCP_CACHE_PATH may point to either a file or a directory. If it is a directory, the cache file is stored as figma-mcp-library-cache.json inside it.
  • The library cache is used only when library file keys are configured.
  • FIGMA_MCP_REFRESH_CACHE forces a re-fetch on startup even if a cache file exists.

Example .env:

FIGMA_API_KEY=your_figma_pat
# prefetch variables (tokens etc) from specific library files on startup to avoid T2 calls during design fetch
FIGMA_LIBRARY_VARIABLE_PREFETCH_FILE_KEYS=abc123,def456
FIGMA_MCP_CACHE_PATH=./cache
FIGMA_MCP_CACHE_TTL_MS=604800000
# Uncomment to force cache refresh on next startup
# FIGMA_MCP_REFRESH_CACHE=1

API Calls & Rate Limits

One execution of get_figma_design makes the following API calls:

Call Endpoint Tier Description
1 GET /v1/files/{fileKey}/nodes T1 Fetch requested nodes (geometry=paths)
2 GET /v1/files/{fileKey}/styles T3 Fetch all styles
3 GET /v1/files/{fileKey}/variables/local T2 Fetch local variables (if resolveVariables=true)
4 GET /v1/components/{key} T3 Resolve component key → library file (up to 3 tries)
5 GET /v1/files/{libFileKey}/components T3 Fetch all components from library
6+ GET /v1/files/{libFileKey}/nodes T1 Fetch component definitions from each library

Amount of T1 calls: 1 + N (N=number of unique library files) Amount of T2 calls: 1 (if resolveVariables=true) Amount of T3 calls: 2 + N (styles + component key resolution + N library components)

For Professional plan with Dev/Full seat: 10 req/min (Tier 1), 25 req/min (Tier 2), 50 req/min (Tier 3).

Star History

<a href="https://star-history.com/#felixAnhalt/figma-to-code-mcp"><img src="https://api.star-history.com/svg?repos=felixAnhalt/figma-to-code-mcp&type=Date" alt="Star History Chart" width="600" /></a>

Acknowledgment

This project was initially inspired by the ideas explored in the original Figma Context MCP by GLips: https://github.com/glips/figma-context-mcp

While the original project provides a Model Context Protocol (MCP) server that simplifies Figma data for use with AI coding agents, this implementation has been substantially redesigned with a different data model, API, and processing approach, and should be considered an independent system.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选