Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@tmegit/figma-developer-mcpclaude mcp add figma-context-mcp -e 'FIGMA_API_KEY=<your figma_api_key>' -- npx -y @tmegit/figma-developer-mcp@0.13.0 --stdio
{
"mcpServers": {
"figma-context-mcp": {
"command": "npx",
"args": [
"-y",
"@tmegit/figma-developer-mcp@0.13.0",
"--stdio"
],
"env": {
"FIGMA_API_KEY": "<your figma_api_key>"
}
}
}
}
Variables d'environnement
FIGMA_API_KEYobligatoire secret Your Figma Personal Access Token, learn more here: https://www.figma.com/developers/api#access-tokens
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
Figma To Code MCP
Transform Figma design data into a compact, LLM-friendly format for code generation and UI building.
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: falseif not on Enterprise.
How it works
- Open your IDE's chat (e.g. agent mode in Cursor).
- Paste a link to a Figma file, frame, or group.
- Ask Cursor to implement the design.
- 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.
This server requires Node.js 18 or later.
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-keysandFIGMA_LIBRARY_VARIABLE_PREFETCH_FILE_KEYSare comma-separated Figma library file keys.FIGMA_MCP_CACHE_PATHmay point to either a file or a directory. If it is a directory, the cache file is stored asfigma-mcp-library-cache.jsoninside it.- The library cache is used only when library file keys are configured.
FIGMA_MCP_REFRESH_CACHEforces 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
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.
Questions fréquentes
Qu'est-ce que io.github.felixAnhalt/Figma-Context-MCP ?
LLM-optimized Figma MCP server.
Comment installer io.github.felixAnhalt/Figma-Context-MCP ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add figma-context-mcp -e 'FIGMA_API_KEY=<your figma_api_key>' -- npx -y @tmegit/figma-developer-mcp@0.13.0 --stdio. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.felixAnhalt/Figma-Context-MCP ?
Oui. Il attend FIGMA_API_KEY, à renseigner dans sa configuration.
io.github.felixAnhalt/Figma-Context-MCP est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.felixAnhalt/Figma-Context-MCP ?
Il est publié par felixAnhalt. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.