Figma Complete
БесплатноНе проверенExports Figma designs as ready-to-use HTML/CSS and validates pixel-perfect accuracy with image comparison and visual regression testing.
Описание
Exports Figma designs as ready-to-use HTML/CSS and validates pixel-perfect accuracy with image comparison and visual regression testing.
README
By Nour Shamrok
Figma to Code MCP + Pixel Perfect Validation
Export Figma designs as ready-to-use HTML/CSS + Validate pixel-perfect accuracy ✨
📖 Table of Contents
- Overview
- Features
- Installation
- Quick Start
- Usage
- Examples
- API Reference
- Pixel Perfect Validation
- GitHub Actions CI/CD
- Troubleshooting
- Contributing
- License
🎯 Overview
Figma MCP Complete solves the biggest problem in design-to-code workflows:
The Problem ❌
Figma MCP (existing):
→ Returns only JSON metadata
→ Claude guesses colors, fonts, spacing
→ Needs manual fixes
→ 30 minutes per component ⏱️
Result: Frustration, mistakes, wasted time 😫
The Solution ✅
Figma MCP Better (this project):
→ Returns Screenshot + CSS + HTML + JSON
→ Claude knows exactly what to build
→ Ready-to-use code
→ 30 seconds per component ⚡
Result: Perfect accuracy, zero iterations 🎉
✨ Features
🎨 Figma MCP Better
- ✅ Screenshot Export - Visual reference for accuracy
- ✅ CSS Generation - Production-ready styles
- ✅ HTML Code - Copy-paste ready components
- ✅ Design Tokens - Automated design system extraction
- ✅ High DPI Support - 2x resolution for Retina displays
✅ Pixel Perfect Validator
- ✅ Image Comparison - Pixel-by-pixel accuracy checking
- ✅ Visual Regression Testing - Percy.io integration
- ✅ Heatmap Generation - See exact differences
- ✅ Responsive Testing - Mobile, Tablet, Desktop
- ✅ CI/CD Integration - GitHub Actions workflow
📊 Color & Typography Verification
- ✅ RGB to Hex conversion
- ✅ Font accuracy checking
- ✅ Spacing validation (padding, margin, gap)
- ✅ Shadow & effects verification
- ✅ Border radius matching
🚀 Installation
Prerequisites
Step 1: Download & Extract
# Download figma-mcp-complete.zip
# Extract to your desired location
cd figma-mcp-complete
Step 2: Install Dependencies
# Install Node packages
npm install --save-dev playwright
# Install Python packages
pip install opencv-python numpy pillow
# Optional: For Percy.io validation
npm install --save-dev @percy/cli
Step 3: Setup Environment
Create .env file:
cat > .env << 'EOF'
FIGMA_TOKEN=figd_xxxxxxxxxxxxx
SIMULATOR_PORT=3000
PERCY_TOKEN=percy_xxxxxxxxxxxxx # Optional
EOF
Get your Figma Token: https://www.figma.com/developers/api#access-tokens
Step 4: Verify Installation
# Test the setup
node figma-mcp-comparison.js
# Output should show comparison of old vs new MCP ✅
⚡ Quick Start
Export Figma Design to HTML/CSS
# Set your Figma token
export FIGMA_TOKEN="figd_xxxxxxxxxxxxx"
# Export frame from Figma
node figma-mcp-better.js FILE_ID NODE_ID "Component Name"
# Results saved to:
# figma-export/
# ├── index.html ← Copy-paste this!
# ├── style.css ← Or this!
# ├── data.json ← Or everything here
# └── tokens.json ← Design system
Get Figma IDs
- Open your Figma file:
https://www.figma.com/file/YOUR_FILE_ID/... - Copy the
FILE_IDfrom URL - Right-click on a frame → Copy link → Extract
NODE_ID
Example:
URL: https://www.figma.com/file/abc123def456/MyDesign?node-id=789:123
FILE_ID: abc123def456
NODE_ID: 789:123
Validate Design Accuracy
# Start your simulator/app
npm run start:simulator &
# Capture simulator screenshots
npm run capture:simulator
# Compare with Figma
npm run pixel-perfect
# Results:
# ✅ Similarity: 99.8%
# ✅ All colors match
# ✅ Typography verified
# ✅ Pixel Perfect!
📚 Usage
Basic Workflow
# 1. Export from Figma
export FIGMA_TOKEN="..."
node figma-mcp-better.js FILE NODE "Button"
# 2. Get HTML/CSS
cat figma-export/index.html
# <button style="background-color: #FF5722; ...">
# 3. Copy to your project
# Done! ✨
Advanced: Export Multiple Frames
// export-all.js
const BetterFigmaMCP = require('./figma-mcp-better');
const mcp = new BetterFigmaMCP(process.env.FIGMA_TOKEN);
const frames = [
{ id: '123:45', name: 'Login Button' },
{ id: '123:46', name: 'Signup Form' },
{ id: '123:47', name: 'Dashboard Header' }
];
(async () => {
for (const frame of frames) {
const result = await mcp.exportFrame(FILE_ID, frame.id, frame.name);
await mcp.saveExport(result, `./exports/${frame.name}`);
console.log(`✅ Exported: ${frame.name}`);
}
})();
Run:
node export-all.js
Integration with Claude AI
// Use with Claude API
const BetterFigmaMCP = require('./figma-mcp-better');
const figmaData = await mcp.exportFrame(fileId, nodeId);
// Claude now gets:
// - figmaData.screenshot → Visual reference
// - figmaData.css → Styling
// - figmaData.html → Code
// - figmaData.designTokens → System
// Result: Claude writes perfect code! 🎯
📋 Examples
Example 1: Button Component
export FIGMA_TOKEN="figd_xxx"
node figma-mcp-better.js abc123 "456:789" "Primary Button"
Output: figma-export/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Primary Button</title>
<style>
.container {
background-color: #FF5722;
color: #FFFFFF;
font-size: 16px;
font-family: Inter;
font-weight: 700;
padding: 12px 24px;
border-radius: 8px;
box-shadow: 4px 4px 8px rgba(0,0,0,0.3);
}
</style>
</head>
<body>
<button class="container">Click me</button>
</body>
</html>
Example 2: Design System Extraction
node figma-mcp-better.js abc123 "def:456" "Design System"
Output: figma-export/tokens.json
{
"colors": {
"primary": "#FF5722",
"secondary": "#2196F3",
"text": "#212121"
},
"typography": {
"heading": {
"fontFamily": "Montserrat",
"fontSize": 32,
"fontWeight": 700,
"lineHeight": 1.2
},
"body": {
"fontFamily": "Open Sans",
"fontSize": 16,
"fontWeight": 400,
"lineHeight": 1.5
}
},
"spacing": {
"xs": "4px",
"sm": "8px",
"md": "16px",
"lg": "24px"
}
}
Example 3: Pixel Perfect Validation
npm run pixel-perfect
Output:
🎨 Comparing 5 screens...
1. login-mobile: 99.8% ✅
2. dashboard-mobile: 99.5% ✅
3. profile-mobile: 99.9% ✅
4. settings-mobile: 99.2% ✅
5. onboarding-mobile: 99.7% ✅
============================================================
PIXEL PERFECT VALIDATION RESULTS
============================================================
Average Similarity: 99.62%
Threshold: 99.0%
Screens Checked: 5
✅ ALL SCREENS PASSED PIXEL PERFECT VALIDATION!
🔌 API Reference
BetterFigmaMCP Class
Constructor
const mcp = new BetterFigmaMCP(figmaToken);
Methods
exportFrame(fileId, nodeId, frameName)
Export a single frame.
const result = await mcp.exportFrame(
'abc123def456',
'789:123',
'Login Button'
);
// Returns:
{
name: 'Login Button',
screenshot: 'https://...',
css: { ... },
html: '<button>...</button>',
designTokens: { ... },
json: { ... }
}
saveExport(data, outputDir)
Save export to files.
await mcp.saveExport(result, './exports');
// Creates:
// ./exports/index.html
// ./exports/style.css
// ./exports/data.json
// ./exports/tokens.json
extractCSS(node)
Extract CSS from Figma node.
const css = mcp.extractCSS(figmaNode);
// Returns: { backgroundColor, fontSize, ... }
extractDesignTokens(file)
Extract design system tokens.
const tokens = mcp.extractDesignTokens(figmaFile);
// Returns: { colors, typography, spacing, shadows }
✅ Pixel Perfect Validation
How It Works
1. Export Figma screenshot → figma-baseline/
2. Capture simulator screenshot → simulator-screenshots/
3. Compare pixel-by-pixel → reports/
4. Generate heatmap of differences
Run Validation
# Capture simulator
npm run capture:simulator
# Compare with Figma
npm run pixel-check
# Or full validation
npm run pixel-perfect
Thresholds
| Similarity | Status | Action |
|---|---|---|
| 99%+ | ✅ PASS | Merge! |
| 95-99% | ⚠️ REVIEW | Check heatmap |
| <95% | ❌ FAIL | Fix design |
View Heatmap
Differences appear in reports/heatmap_*.png:
- 🔴 Red = Large differences
- 🟡 Yellow = Small differences
- 🔵 Blue/Green = Identical
🚀 GitHub Actions CI/CD
Automatic Validation on Push
The project includes GitHub Actions workflow that:
- ✅ Validates on every push
- ✅ Checks pixel-perfect accuracy
- ✅ Blocks merge if validation fails
- ✅ Comments on PRs with results
Setup GitHub Actions
# Copy workflow file
.github/workflows/pixel-perfect.yml
# Commit to GitHub
git add .github/
git commit -m "Add pixel perfect CI/CD"
git push
# Set branch protection
GitHub → Settings → Branches
→ Require status checks to pass
→ Select "Pixel Perfect Validation"
Require Pixel Perfect
Now you cannot merge without passing validation! 🔒
PR created
↓
GitHub Actions runs
↓
Pixel Perfect test passes?
↓
❌ No → PR blocked 🚫
↓
✅ Yes → Can merge ✅
🐛 Troubleshooting
Installation Issues
"npm: command not found"
# Install Node.js
https://nodejs.org/
# Verify:
node --version
npm --version
"python3: command not found"
# Install Python
https://python.org/downloads
# Verify:
python3 --version
"ModuleNotFoundError: No module named 'cv2'"
# Reinstall Python packages
pip install --upgrade opencv-python numpy pillow
Runtime Issues
"FIGMA_TOKEN not set"
# Set token
export FIGMA_TOKEN="figd_xxxxxxxxxxxxx"
# Or create .env file
echo "FIGMA_TOKEN=figd_xxxxxxxxxxxxx" > .env
"Node FILE_ID NODE_ID not found"
# Get correct IDs from Figma URL
# https://www.figma.com/file/YOUR_FILE_ID/...?node-id=YOUR_NODE_ID
# Verify they're correct
echo $FIGMA_TOKEN
"Screenshots don't match"
# Check DPI consistency
# Ensure both screenshots are 2x scale (Retina)
# Manually verify
open figma-export/index.html
open reports/heatmap_*.png
Performance
Slow export?
# Reduce resolution
node figma-mcp-better.js FILE NODE --scale=1
Memory issues?
# Process one frame at a time
# Or increase Node memory
node --max-old-space-size=4096 figma-mcp-better.js
📊 Comparison: Old vs New
| Feature | Old Figma MCP | Figma MCP Complete |
|---|---|---|
| Screenshot | ❌ | ✅ |
| CSS | ❌ | ✅ |
| HTML | ❌ | ✅ |
| Design Tokens | ❌ | ✅ |
| Color Format | RGB(0-1) 😩 | #HEX 😊 |
| Font Size | Just number | px (web standard) |
| Ready to Use | ❌ 30 min | ✅ 30 sec |
| Claude Accuracy | 60% | 99%+ |
| Iterations Needed | Many | Zero |
🤝 Contributing
Contributions welcome!
# Fork & clone
git clone https://github.com/YOUR_FORK/figma-mcp-complete.git
cd figma-mcp-complete
# Create branch
git checkout -b feature/amazing-feature
# Make changes
# Test thoroughly
npm test
# Push & create PR
git push origin feature/amazing-feature
Development
# Run tests
npm test
# Lint code
npm run lint
# Build docs
npm run docs
📝 License
MIT License - See LICENSE file
🙏 Acknowledgments
- Built with ❤️ for designers and developers
- Inspired by real design-to-code workflow problems
- Thanks to Figma & Anthropic communities
📞 Support
Documentation
Issues & Questions
- 🐛 GitHub Issues
- 💬 Discussions
- 📧 Email: [email protected]
Community
⭐ If you find this useful, please star! ⭐
Star this repo to show support ✨
Share with your team 👥
Contribute improvements 🚀
🎯 Roadmap
- Web UI for exports
- Figma plugin integration
- Multiple design system formats
- Real-time validation
- Browser extension
- Cloud storage integration
📈 Stats
✅ Lines of code: 5000+
✅ Supported Figma nodes: 15+
✅ Export formats: 5+ (HTML, CSS, JSON, etc)
✅ Validation accuracy: 99%+
✅ Performance: <30s per component
Made with ❤️ for better design-to-code workflows
Created by Nour Shamrok 🚀
Установка Figma Complete
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/shamroknour057-commits/mcp-completeFAQ
Figma Complete MCP бесплатный?
Да, Figma Complete MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Figma Complete?
Нет, Figma Complete работает без API-ключей и переменных окружения.
Figma Complete — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Figma Complete в Claude Desktop, Claude Code или Cursor?
Открой Figma Complete на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
автор: jangjo123Compare Figma Complete with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
