Skip to main content
Glama

Figma MCP Server

by MinhazTopaz

Figma MCP Server

A powerful MCP (Model Context Protocol) server that connects AI applications to the Figma API, enabling seamless access to Figma designs, automatic HTML/CSS generation, and screenshot capture.

๐Ÿš€ Features

Available MCP Tools

Tool

Description

Use Case

getFile

Fetch complete Figma file data

Get entire file structure and metadata

getNode

Fetch specific node from a file

Access individual components or frames

analyzeDesign

Extract and analyze design properties

Understand component structure and styling

generateCSS

Generate CSS from Figma nodes

Convert Figma styles to CSS code

generateHTML

Generate HTML structure

Create semantic HTML from designs

generateFullDesign

Generate complete HTML/CSS file

Convert entire designs to working code

getImage

Capture screenshots/renders

Export designs as PNG, JPG, SVG, or PDF

What You Can Do

  • ๐Ÿ“Š Extract Design Data - Access complete design specifications

  • ๐ŸŽจ Generate CSS - Convert Figma styles to production-ready CSS

  • ๐Ÿ—๏ธ Create HTML - Generate semantic HTML structure from designs

  • ๐Ÿ“ธ Capture Screenshots - Export designs as images in multiple formats

  • ๐Ÿ” Analyze Components - Understand design properties and hierarchy

  • โšก Automate Workflows - Integrate with AI tools like Claude Desktop

๐Ÿ“‹ Prerequisites

  • Node.js v17 or higher

  • Figma Personal Access Token (not a file access token)

๐Ÿ› ๏ธ Installation

1. Clone and Install

git clone <your-repo-url> cd figma-mcp npm install

2. Configure Figma Token

Create a .env file in the root directory:

FIGMA_TOKEN=your_personal_access_token_here

Getting Your Token:

  1. Go to Figma Account Settings

  2. Scroll to "Personal access tokens"

  3. Click "Create a new personal access token"

  4. Copy the token and add it to .env

โš ๏ธ Important: Use a Personal Access Token, not a file-specific token.

3. Build the Project

npm run build

๐ŸŽฏ Usage

With Claude Desktop

Add to your Claude config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "figma": { "command": "node", "args": ["C:\\path\\to\\figma-mcp\\build\\index.js"] } } }

With VS Code MCP

Add to .vscode/mcp.json:

{ "servers": { "figma-mcp-server": { "type": "stdio", "command": "npm", "args": ["start"] } } }

๐Ÿ“– Tool Usage Examples

Understanding Figma URLs

For a URL like:

https://www.figma.com/design/YwUqmarhRx74Gb4zePtEUx/My-Design?node-id=8384-4
  • File Key: YwUqmarhRx74Gb4zePtEUx

  • Node ID: 8384-4 (or 8384:4 - both formats work)

1. Analyze Design Structure

Use analyzeDesign with: - fileKey: YwUqmarhRx74Gb4zePtEUx - nodeId: 8384-4

Returns detailed design properties including:

  • Component hierarchy

  • Colors and fills

  • Typography settings

  • Dimensions and positioning

2. Generate CSS Styles

Use generateCSS with: - fileKey: YwUqmarhRx74Gb4zePtEUx - nodeId: 8384-4 - className: .my-component (optional)

Generates production-ready CSS with:

  • Colors (rgba format)

  • Typography (font-family, size, weight)

  • Layout (width, height, padding)

  • Effects (shadows, borders, border-radius)

3. Generate HTML Structure

Use generateHTML with: - fileKey: YwUqmarhRx74Gb4zePtEUx - nodeId: 8384-4

Creates semantic HTML structure matching your Figma hierarchy.

4. Generate Complete HTML/CSS Page

Use generateFullDesign with: - fileKey: YwUqmarhRx74Gb4zePtEUx - nodeId: 8384-4

Generates a complete HTML file with:

  • Inline CSS styles

  • Semantic HTML structure

  • Responsive reset styles

  • Proper typography and spacing

5. Capture Screenshots/Images

Use getImage with: - fileKey: YwUqmarhRx74Gb4zePtEUx - nodeId: 8384-4 - format: png (or jpg, svg, pdf) - scale: 2 (optional, 0.01 to 4)

Format Guide:

  • PNG - Best for UI designs with transparency (recommended)

  • JPG - Smaller file size, no transparency

  • SVG - Vector format, scalable

  • PDF - Print-ready documents

Scale Options:

  • 1 - Original size (default)

  • 2 - Retina/HiDPI displays (recommended)

  • 3-4 - Very high resolution (print quality)

  • 0.01-0.99 - Thumbnails/previews

Returns a temporary download URL (valid ~30 minutes).

๐Ÿงช Testing Tools

Run test scripts from the tests/ directory:

Test HTML/CSS Generation

npx tsx tests/test-tool.ts

Generates output.html with complete HTML/CSS from a Figma design.

Test Image Capture

npx tsx tests/test-image.ts

Downloads a screenshot as figma-screenshot-{nodeId}.png

Test Token Validation

npx tsx tests/test-token.ts

Validates your Figma API token and permissions.

๐Ÿ—๏ธ Project Structure

figma-mcp/ โ”œโ”€โ”€ src/ โ”‚ โ””โ”€โ”€ index.ts # Main MCP server implementation โ”œโ”€โ”€ tests/ โ”‚ โ”œโ”€โ”€ test-tool.ts # HTML/CSS generation test โ”‚ โ”œโ”€โ”€ test-image.ts # Image capture test โ”‚ โ””โ”€โ”€ test-token.ts # Token validation test โ”œโ”€โ”€ docs/ โ”‚ โ”œโ”€โ”€ TROUBLESHOOTING.md # Common issues and solutions โ”‚ โ”œโ”€โ”€ CSS-IMPROVEMENTS.md # CSS generation details โ”‚ โ””โ”€โ”€ IMAGE-FEATURE.md # Screenshot feature guide โ”œโ”€โ”€ build/ # Compiled JavaScript output โ”œโ”€โ”€ .env # Environment variables (not in git) โ”œโ”€โ”€ .gitignore โ”œโ”€โ”€ package.json โ”œโ”€โ”€ tsconfig.json โ””โ”€โ”€ README.md

๐Ÿ”ง Development

Build Commands

# Build once npm run build # Build and watch for changes npm run build -- --watch # Start the server npm start

Supported Figma Properties

Layout:

  • Width, height, positioning

  • Padding and margins

  • Border radius

Typography:

  • Font family, size, weight

  • Line height, text alignment

  • Text content

Colors:

  • Fill colors (solid, gradients)

  • Stroke/border colors

  • Opacity/transparency

Effects:

  • Drop shadows

  • Box shadows

  • Border styles

๐Ÿ“š Documentation

๐Ÿ› Troubleshooting

"Invalid token" Error

โœ… Solution: Use a Personal Access Token, not a file access token

  • Go to Figma Settings โ†’ Personal access tokens

  • Create a new token with full API access

  • Update your .env file

Node Not Found

โœ… Solution: Check node ID format

  • Both 8384-4 and 8384:4 work

  • Get node ID from Figma URL or inspect panel

Class Names Not Working

โœ… Solution: Already fixed in latest version

  • Class names are normalized (colons โ†’ dashes)

  • CSS selectors are valid

See docs/TROUBLESHOOTING.md for more solutions.

๐Ÿ”’ Security

  • โš ๏ธ Never commit - Contains your Figma token

  • โœ… Use environment variables for all secrets

  • ๐Ÿ” For production, follow MCP Authorization Best Practices

๐ŸŒŸ Use Cases

  1. Design-to-Code - Convert Figma designs to HTML/CSS automatically

  2. Design Systems - Extract component styles for documentation

  3. Asset Export - Batch export design elements as images

  4. Design Review - Capture screenshots for presentations

  5. AI Integration - Connect Figma to AI tools via MCP

  6. Automation - Build workflows with Figma data

๐Ÿ“– References

๐Ÿ“„ License

MIT


Made with โค๏ธ for the design-to-code community

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MinhazTopaz/figma-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server