Skip to main content
Glama
GSNadarajan

figma-mcp-server

by GSNadarajan

Figma MCP Server

FastAPI-based MCP server that exposes Figma design tools for Claude Desktop. Convert designs to code, extract variables, get screenshots, and more.

Deploy to Render

Features

  • šŸŽØ 7 Figma tools (screenshots, design context, variables, metadata, etc.)

  • šŸ”„ Automatic rate limit handling with retry logic

  • šŸš€ Ready for Render, Railway, or Fly.io deployment

  • šŸ“” Server-Sent Events (SSE) for Claude Desktop

  • šŸ”§ CORS support for browser clients

Related MCP server: Claude Talk to Figma MCP

Connect with Claude Desktop

Edit claude_desktop_config.json:

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

{
  "mcpServers": {
    "figma": {
      "url": "https://your-app.onrender.com/figma/sse",
      "type": "sse"
    }
  }
}

Restart Claude Desktop and test:

List available Figma MCP tools

Local Development

# Setup
python3 -m venv mcp-venv
source mcp-venv/bin/activate
pip install -r requirements.txt

# Configure
echo 'FIGMA_ACCESS_TOKEN=your-token-here' > .env

# Run
uvicorn main:app --reload --port 8002

Server: http://localhost:8002

API Routes

GET  /                    # Server info
GET  /health              # Health check
POST /figma/messages      # MCP protocol
GET  /figma/sse          # Server-Sent Events
POST /save-code           # Save generated code

Available Tools

  1. get_screenshot - Export designs as images

  2. get_design_context - Extract UI context for code generation

  3. get_metadata - Get node metadata

  4. get_variable_defs - Access design variables

  5. get_figjam - Process FigJam boards

  6. get_code_connect_map - Map components to code

  7. whoami - Verify authentication

Usage with Claude

Ask Claude to use your Figma designs:

Generate React code from this Figma file:
https://www.figma.com/file/ABC123/My-Design

Claude will use the MCP server to fetch design data and generate code.

Rate Limits

Figma API limits: ~25-50 requests/min (free tier)

The server handles this automatically:

  • Detects 429 errors

  • Retries with exponential backoff (2s → 4s → 8s)

  • Respects Retry-After headers

Deployment Options

  • Free tier: 750 hours/month

  • Auto-deploy from Git

  • Built-in HTTPS

  • Config: render.yaml āœ…

Railway

  • Usage-based pricing (~$5/month)

  • Fast deployments

  • Config: railway.json āœ…

Fly.io

  • Global edge deployment

  • Free tier available

  • Config: Dockerfile āœ…

Tech Stack

  • FastAPI - Web framework

  • httpx - Async HTTP

  • Pydantic - Data validation

  • Uvicorn - ASGI server

Troubleshooting

429 Rate Limit Errors:

  • Wait 60 seconds between requests

  • Server auto-retries with backoff

Claude Connection Failed:

  • Verify URL ends with /figma/sse

  • Check server is running

  • Restart Claude Desktop

Invalid API Key:

Project Structure

figma-mcp-server/
ā”œā”€ā”€ main.py              # FastAPI MCP server (all-in-one)
ā”œā”€ā”€ requirements.txt     # Python dependencies
ā”œā”€ā”€ .env                 # Environment variables (not in git)
ā”œā”€ā”€ .gitignore          # Git ignore rules
ā”œā”€ā”€ Dockerfile          # Docker deployment config
└── render.yaml         # Render deployment config

Why single-file?

  • Simpler deployment (one file to read)

  • Easier for LLMs to understand context

  • Common pattern for MCP servers

  • FastAPI works great in monolithic style for small services


Built for design-to-code workflows with Nattu šŸš€

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers