فوری جواب: فیگما MCP سرور Claude Code اور Cursor جیسے AI ایجنٹس کو فیگما کے REST API سے جوڑتا ہے۔ ڈیزائن ٹوکنز اور ویریئنٹس JSON میں لے کر ایجنٹس 98.4 فیصد بصری یکسانیت کے ساتھ ری ایکٹ اور ٹیل ونڈ کوڈ بناتے ہیں، جس سے UI ڈویلپمنٹ کا وقت 72 فیصد کم ہو جاتا ہے۔
1. تعارف: ڈیزائن ٹو کوڈ آٹومیشن میں پیراڈائم شفٹ
جدید سافٹ ویئر انجینئرنگ میں، UI/UX ڈیزائن اور فرنٹ اینڈ عمل درآمد کے درمیان رابطہ تاریخی طور پر سب سے زیادہ وقت طلب اور پیچیدہ رکاوٹ رہا ہے۔ فگما جیسے جدید ٹولز میں ڈیزائن سسٹمز کے پختہ ہونے کے باوجود، ڈویلپرز ریڈ لائنز کی دستی جانچ، پکسل مارجنز کی پیمائش، ہیکس ڈیسیمل کلر کوڈز کو CSS ویری ایبلز میں منتقل کرنے، اور نیسٹڈ آٹو لے آؤٹ فریمز کو flexbox یا CSS grid میں تبدیل کرنے پر ان گنت گھنٹے صرف کرتے رہے ہیں۔
خودکار "ڈیزائن سے کوڈ" کی پچھلی نسلیں بنیادی خامیوں کا شکار تھیں:
- سخت AST ایکسپورٹرز پر مبنی کمپائلرز ایسا ناقابلِ انتظام کوڈ بناتے تھے جو غیر لچکدار مطلق کوآرڈینیٹس (absolute coordinates) اور فکسڈ ڈائمینشنز سے بھرا ہوتا تھا۔
- ملٹی موڈل وژن LLMs (جیسے GPT-4V یا Claude 3.5 Sonnet جو راسٹر PNG اسکرین شاٹس کا تجزیہ کرتے ہیں) بنیادی ساختی درستگی سے محروم تھیں:
- امیج کمپریشن اور رینڈرنگ شفٹس کی وجہ سے رنگوں کی قدریں تبدیل ہو جاتی تھیں۔
- اسپیسنگ کا پیمانہ ڈیزائن سسٹم ٹوکنز کے ساتھ ہم آہنگ نہیں رہتا تھا (مثلاً معیاری
p-4یاvar(--space-md)کے بجائےp-[18px]کا بننا)۔ - کمپوننٹ ویریئنٹس (hover، disabled، اور responsive بریک پوائنٹس) کے لیے درجنوں دستی پرامپٹس کی ضرورت پڑتی تھی۔
- فونٹ میٹرکس، لائن ہائٹس اور لیٹر اسپیسنگ کا یا تو اندازہ لگانا پڑتا تھا یا دستی طور پر درست کرنا پڑتا تھا۔
انتھروپک کے اوپن سورس کردہ ماڈل کانٹیکسٹ پروٹوکول (MCP) نے اس عمل کو یکسر بدل کر رکھ دیا ہے۔ ایک مخصوص Figma MCP سرور تعینات کر کے، فرنٹ اینڈ انجینئرنگ ٹیمیں Claude Code، Cursor IDE، اور کسٹم آرکیسٹریٹرز جیسے AI کوڈنگ ایجنٹس کو فگما کے کینوس گراف تک براہ راست اور معنی خیز رسائی فراہم کرتی ہیں۔ دھندلے پکسلز سے اندازے لگانے کے بجائے، ایجنٹ براہ راست فگما کے کلاؤڈ ڈیٹا بیس سے ویکٹر میتھمیٹکس، آٹو لے آؤٹ کنسٹرینٹس، پبلش شدہ ویری ایبلز اور ٹائپوگرافی ٹوکنز حاصل کرتا ہے۔
یہ تکنیکی گائیڈ فگما MCP سرور کی سیٹ اپ، ڈیزائن ٹوکنز کے اخراج، کمپوننٹ ویریئنٹ ٹریز کی پارسنگ، پروڈکشن گریڈ TypeScript/Tailwind کمپوننٹس کی تیاری، اور خودکار بصری تصدیقی لوپس چلانے کے لیے ایک مکمل نفاذی روڈ میپ پیش کرتی ہے۔
2. آرکیٹیکچر: فگما MCP کس طرح کینوس پریمیٹیوز کو LLMs سے جوڑتا ہے
فگما MCP آرکیٹیکچر فگما کے کلاؤڈ REST API / پلگ ان انجن اور LLM کلائنٹ ہوسٹ ماحول کے زیر استعمال JSON-RPC 2.0 انٹرفیس کے درمیان بطور پروٹوکول ٹرانسلیٹر کام کرتا ہے۔
+----------------------------------------------------------------------------------------------------+
| HOST AGENT RUNTIME |
| (Claude Code CLI, Cursor IDE, Windsurf, Custom Swarm) |
| |
| +--------------------------+ +-----------------------------+ |
| | Developer / Task Loop | | Model Context Window | |
| | "Implement #Button node" | | (System Prompt + MCP Tools) | |
| +------------+-------------+ +--------------^--------------+ |
| | | |
| | Dispatches JSON-RPC Tool Call: figma_get_node | Receives Payload |
| v | (Clean AST JSON) |
| +---------------------------------------------------------------------------+--------------+ |
| | MCP CLIENT SUBSYSTEM | |
| | - Handshake & Tool Capability Negotiation | |
| | - Secret Management & Injection (FIGMA_PERSONAL_ACCESS_TOKEN) | |
| | - Node Traversal Budgeting & Subtree Trimming | |
| +---------------------------------------------+--------------------------------------------+ |
+--------------------------------------------------|-------------------------------------------------+
| Transport: stdio / SSE / Docker
v
+----------------------------------------------------------------------------------------------------+
| FIGMA MCP SERVER DAEMON |
| (@modelcontextprotocol/server-figma or Custom Container) |
| |
| +-------------------------+ +--------------------------+ +-----------------------------+ |
| | Design Token Extractor | | Component Node Inspector | | Image & Asset Exporter | |
| | - GET /v1/files/:k/vars| | - GET /v1/files/:k/nodes | | - GET /v1/images/:key | |
| | - Modes (Light/Dark) | | - Auto Layout -> Flexbox | | - Vector SVG Extraction | |
| | - DTCG Token Transform | | - Variant Matrix Parser | | - PNG Reference Render | |
| +------------+------------+ +------------+-------------+ +--------------+--------------+ |
| | | | |
| +-----------------------------+--------------------------------+ |
| | HTTPS (X-Figma-Token) |
+-----------------------------------------------|----------------------------------------------------+
v
+----------------------------------------------------------------------------------------------------+
| FIGMA CLOUD REST ENGINE |
| (api.figma.com/v1 - Canvas Data Graph) |
+----------------------------------------------------------------------------------------------------+
مواصلاتی موڈز: stdio بمقابلہ sse
- لوکل سب پروسیس (
stdio): Claude Code یا Cursor استعمال کرنے والے ڈویلپر ورک اسٹیشنز کے لیے پہلے سے طے شدہ ماڈل۔ ہوسٹ ایپلی کیشن مقامی طور پر فگما MCP Node.js یا Go پروسیس کو شروع کرتی ہے اور اسٹینڈرڈ ان پٹ/آؤٹ پٹ کے ذریعے رابطہ کرتی ہے۔ یہ ماڈل انتہائی کم لیٹنسی (< 15 ms IPC) فراہم کرتا ہے اور حساس ڈیزائن ٹوکنز کو بیرونی نیٹ ورک کے خطرات سے محفوظ رکھتا ہے۔ - ریموٹ سرور (
sse): مرکزی CI/CD پائپ لائنز، اسٹیجنگ ماحول اور ٹیم کے خودکار ایجنٹ گروپس کے لیے موزوں۔ فگما MCP سرور Docker یا Kubernetes میں کنٹینرائزڈ ڈیمن کے طور پر چلتا ہے اور TLS پر Server-Sent Events (SSE) اینڈ پوائنٹس فراہم کرتا ہے۔
3. بنیادی MCP ٹولز اور فگما REST API میپنگ
فگما MCP سرور JSON-RPC ٹولز کا ایک جامع مجموعہ فراہم کرتا ہے جو فگما کے REST v1 اینڈ پوائنٹس کے ساتھ براہ راست مطابقت رکھتا ہے، ساتھ ہی ٹوکن کی بچت کے لیے فلٹرز کا اطلاق کرتا ہے:
| MCP ٹول کا نام | ٹارگٹ فگما اینڈ پوائنٹ | ڈیزائن ٹو کوڈ پائپ لائن میں بنیادی کام |
|---|---|---|
figma_get_file |
GET /v1/files/{file_key} |
دستاویز کے ٹاپ لیول ڈھانچے، صفحات، اور کینوس میٹا ڈیٹا کو حاصل کرتا ہے۔ |
figma_get_node |
GET /v1/files/{file_key}/nodes |
نوڈ آئی ڈی (1:234) کے ذریعے مطلوبہ سب ٹری حاصل کرتا ہے، بشمول آٹو لے آؤٹ، اسٹائلز اور فلز۔ |
figma_get_variables |
GET /v1/files/{file_key}/variables/local |
بنیادی ڈیزائن ٹوکنز، کلر موڈز (لائٹ/ڈارک)، اور اسپیسنگ اسکیلز نکالتا ہے۔ |
figma_get_components |
GET /v1/files/{file_key}/components |
پبلش کردہ کمپوننٹ لائبریری میٹا ڈیٹا، ویریئنٹ ڈیفینیشنز اور پروپ اسکیماز کی فہرست دیتا ہے۔ |
figma_export_image |
GET /v1/images/{file_key} |
خودکار پکسل ریگریشن ٹیسٹنگ کے لیے ویکٹر SVGs یا راسٹر PNG حوالہ جات رینڈر کرتا ہے۔ |
figma_post_comment |
POST /v1/files/{file_key}/comments |
ایجنٹس کو تصدیقی نتائج، PR لنکس، اور ٹوکن آڈٹ فریمز پر واپس پوسٹ کرنے کی اجازت دیتا ہے۔ |
ٹوکن آپٹیمائزیشن فلٹر
ایک پیچیدہ فگما فائل کے مکمل درخت کو براہ راست نکالنے سے 500,000 سے زیادہ JSON ٹوکنز خرچ ہو سکتے ہیں، جس سے LLM کی کانٹیکسٹ ونڈو ختم ہو سکتی ہے۔ پروڈکشن ریڈی فگما MCP سرورز جدید AST فلٹرنگ کا استعمال کرتے ہیں:
- غیر ضروری ویکٹر پاتھ کنٹرول پوائنٹس کو ہٹانا جب ویکٹر ایکسپورٹ کی ضرورت نہ ہو۔
- پوشیدہ نوڈز کو نکال دینا (
visible: false)۔ - ساکت مارک اپ کے اخراج کے دوران خالی پروٹوٹائپ تعاملات اور ٹرانزیشن اینیمیشنز کو صاف کرنا۔
- RGBA فلوٹ ویلیوز (
r: 0.1215, g: 0.4431...) کو معیاری 8 عددی ہیکس یا CSS کلر فنکشنز (oklch,hsl) میں تبدیل کرنا۔
4. سیٹ اپ اور کنفیگریشن: Claude Code اور Cursor IDE
4.1 اسناد (Credentials) کا حصول
- اپنے فگما اکاؤنٹ میں لاگ ان کریں اور Settings > Security > Personal Access Tokens پر جائیں۔
- Generate new token پر کلک کریں۔
- مطلوبہ اجازتیں منتخب کریں:
file_variables:read(ڈیزائن ٹوکنز API کے لیے درکار)files:read(نوڈ ٹریز اور آٹو لے آؤٹ کے معائنے کے لیے درکار)file_comments:write(اختیاری، فگما پر PR تصدیقی اسٹیٹس بھیجنے کے لیے)
- اپنے لوکل انوائرمنٹ میں ٹوکن ایکسپورٹ کریں:
export FIGMA_PERSONAL_ACCESS_TOKEN="figd_a8f93b9c82410a7b92f98..."
4.2 Claude Code CLI کی کنفیگریشن
claude mcp add کمانڈ کے ذریعے آفیشل یا کمیونٹی فگما MCP سرور شامل کریں:
# Adding via npm package (stdio transport)
claude mcp add figma -- bunx -y @modelcontextprotocol/server-figma --env FIGMA_PERSONAL_ACCESS_TOKEN="$FIGMA_PERSONAL_ACCESS_TOKEN"
اپنے فعال MCP کنکشنز کی تصدیق کریں:
claude mcp list
# Output:
# Name: figma
# Status: Connected
# Tools: figma_get_file, figma_get_node, figma_get_variables, figma_export_image...
یا دستی طور پر سرور کو ~/.claude.json میں رجسٹر کریں:
{
"mcpServers": {
"figma": {
"command": "bunx",
"args": ["-y", "@modelcontextprotocol/server-figma"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "figd_a8f93b9c82410a7b92f98..."
}
}
}
}
4.3 Cursor IDE کی کنفیگریشن
اپنے پروجیکٹ کے روٹ فولڈر میں .cursor/mcp.json فائل ترتیب دیں:
{
"mcpServers": {
"figma": {
"command": "node",
"args": ["/usr/local/lib/node_modules/@modelcontextprotocol/server-figma/dist/index.js"],
"env": {
"FIGMA_PERSONAL_ACCESS_TOKEN": "figd_a8f93b9c82410a7b92f98..."
}
}
}
}
5. ڈیزائن ٹوکنز کا اخراج: فگما ویری ایبلز سے Tailwind v4 اور CSS تک
ڈیزائن ٹوکنز کسی بھی پائیدار فرنٹ اینڈ کی ایٹمی بنیاد ہوتے ہیں۔ جب فگما میں ویری ایبلز تبدیل ہوتے ہیں تو دستی منتقلی اکثر غلطیوں کا سبب بنتی ہے۔ فگما MCP کی مدد سے ایجنٹ لوکل اور پبلش شدہ ویری ایبلز نکال کر انہیں براہ راست W3C Design Tokens Community Group (DTCG) فارمیٹ، CSS کسٹم پراپرٹیز، اور ٹیل ونڈ کنفیگریشنز میں تبدیل کرتا ہے۔
5.1 فگما ویری ایبلز کی جانچ بذریعہ MCP
ایجنٹ figma_get_variables کال بھیجتا ہے:
{
"file_key": "xK82nLs9P2bQW981zM"
}
MCP سرور منظم کلیکشن میٹا ڈیٹا واپس کرتا ہے جس میں موڈز (جیسے Light، Dark، اور High-Contrast) اور ویری ایبل میپنگز شامل ہوتی ہیں:
{
"meta": {
"variableCollections": {
"VariableCollectionId:10:2": {
"name": "Color System",
"modes": [
{ "modeId": "10:0", "name": "Light" },
{ "modeId": "10:1", "name": "Dark" }
],
"defaultModeId": "10:0"
}
},
"variables": {
"VariableID:10:15": {
"name": "brand/primary/surface",
"resolvedType": "COLOR",
"valuesByMode": {
"10:0": { "r": 0.0588, "g": 0.4078, "b": 0.9411, "a": 1.0 },
"10:1": { "r": 0.2352, "g": 0.5450, "b": 0.9882, "a": 1.0 }
}
},
"VariableID:10:22": {
"name": "spacing/space-md",
"resolvedType": "FLOAT",
"valuesByMode": {
"10:0": 16.0,
"10:1": 16.0
}
}
}
}
}
5.2 CSS کسٹم پراپرٹیز کی خودکار تیاری
ایجنٹ نارملائزڈ ٹوکن ڈکشنری کو براہ راست tokens.css میں لکھتا ہے:
/* Generated by Claude Code via Figma MCP Server */
:root {
/* Spacing Scale */
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
/* Typography Scale */
--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-lg: 1.125rem; /* 18px */
/* Light Theme Colors */
--color-brand-primary-surface: #0f68f0;
--color-brand-primary-hover: #0d56c7;
--color-text-primary: #111827;
--color-text-muted: #6b7280;
--color-border-subtle: #e5e7eb;
}
[data-theme="dark"] {
/* Dark Theme Colors */
--color-brand-primary-surface: #3c8bfd;
--color-brand-primary-hover: #5da0fe;
--color-text-primary: #f9fafb;
--color-text-muted: #9ca3af;
--color-border-subtle: #374151;
}
5.3 Tailwind CSS v4 تھیم انٹیگریشن
Tailwind CSS v4 میں، تھیم ٹوکنز کو globals.css میں @theme ڈائریکٹو کے ذریعے براہ راست مربوط کیا جاتا ہے:
@import "tailwindcss";
@theme {
--color-brand-primary: var(--color-brand-primary-surface);
--color-brand-hover: var(--color-brand-primary-hover);
--color-text-main: var(--color-text-primary);
--color-text-muted: var(--color-text-muted);
--spacing-md: var(--space-md);
--spacing-lg: var(--space-lg);
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
}
6. کمپوننٹ ویریئنٹ انسپیکشن اور آٹو لے آؤٹ ٹرانسپائیلیشن
فگما MCP کی سب سے بڑی طاقت فگما کے لے آؤٹ انجن کا گہرا ساختی تجزیہ ہے۔ رینڈر شدہ پکسلز دیکھنے کے بجائے، ایجنٹ آٹو لے آؤٹ نوڈ کی خصوصیات کا معائنہ کرتا ہے اور انہیں جدید CSS Flexbox اور Grid میں تبدیل کرتا ہے۔
6.1 آٹو لے آؤٹ سے فلیکس باکس ٹرانسلیشن میٹرکس
| فگما آٹو لے آؤٹ پراپرٹی | خام JSON قدر | CSS Flexbox کے مساوی | Tailwind CSS یوٹیلیٹی |
|---|---|---|---|
layoutMode |
"HORIZONTAL" |
display: flex; flex-direction: row; |
flex flex-row |
layoutMode |
"VERTICAL" |
display: flex; flex-direction: column; |
flex flex-col |
primaryAxisAlignItems |
"MIN" |
justify-content: flex-start; |
justify-start |
primaryAxisAlignItems |
"CENTER" |
justify-content: center; |
justify-center |
primaryAxisAlignItems |
"SPACE_BETWEEN" |
justify-content: space-between; |
justify-between |
counterAxisAlignItems |
"CENTER" |
align-items: center; |
items-center |
layoutGrow |
1 |
flex-grow: 1; flex-basis: 0; |
flex-1 |
layoutAlign |
"STRETCH" |
align-self: stretch; width: 100%; |
self-stretch w-full |
layoutSizingHorizontal |
"HUG" |
width: fit-content; |
w-fit |
layoutSizingHorizontal |
"FILL" |
width: 100%; min-width: 0; |
w-full |
layoutSizingHorizontal |
"FIXED" |
width: {node.absoluteBoundingBox.width}px; |
w-[...px] |
itemSpacing |
12 |
gap: 12px; |
gap-3 |
paddingTop / paddingBottom |
8 |
padding-top: 8px; padding-bottom: 8px; |
py-2 |
paddingLeft / paddingRight |
16 |
padding-left: 16px; padding-right: 16px; |
px-4 |
6.2 کمپوننٹ ویریئنٹ اسٹیٹ میٹرکس کی پارسنگ
جب کسی کمپوننٹ سیٹ (جیسے Button) کی تفصیلات طلب کی جاتی ہیں، تو فگما متعدد ویریئنٹس مہیا کرتا ہے۔ MCP ایجنٹ پیرنٹ نوڈ کو کال کرتا ہے:
{
"file_key": "xK82nLs9P2bQW981zM",
"node_id": "452:1200"
}
سرور کمپوننٹ سیٹ کی جامع تعریف فراہم کرتا ہے، جس میں تمام جہتیں واضح ہوتی ہیں:
Size:["sm", "md", "lg"]Variant:["primary", "secondary", "ghost", "destructive"]State:["default", "hover", "focused", "disabled"]HasIcon:[true, false]
ان ویریئنٹ نوڈز کے باہمی فرق کا تجزیہ کر کے، ایجنٹ بغیر الگ الگ پرامپٹس دیے تمام حالات کا مکمل کنفیگریشن ٹیبل خودکار طور پر تیار کر لیتا ہے۔
7. کوڈ کی تیاری: پروڈکشن گریڈ React اور Tailwind کمپوننٹس
ڈیزائن ٹوکنز کے اخراج اور آٹو لے آؤٹ پراپرٹیز کی میپنگ کے بعد، کوڈنگ ایجنٹ صاف، ٹائپ سیف اور ایکسیسیبل ری ایکٹ کوڈ تیار کرتا ہے۔
7.1 پروڈکشن کمپوننٹ: Button.tsx
ایجنٹ clsx اور tailwind-merge (یا cva - Class Variance Authority) کا استعمال کرتے ہوئے ایک اعلیٰ کارکردگی والا کمپوننٹ تیار کرتا ہے:
import React, { forwardRef } from "react";
import { cva, type VariantProps } from "class-variance-authority";
import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";
const buttonVariants = cva(
"inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 select-none",
{
variants: {
variant: {
primary:
"bg-[var(--color-brand-primary-surface)] text-white hover:bg-[var(--color-brand-primary-hover)] focus-visible:ring-[var(--color-brand-primary-surface)] shadow-sm",
secondary:
"bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:hover:bg-gray-700",
ghost:
"bg-transparent text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800",
destructive:
"bg-red-600 text-white hover:bg-red-700 focus-visible:ring-red-600 shadow-sm",
},
size: {
sm: "h-8 px-3 text-xs rounded-md gap-1.5",
md: "h-10 px-4 text-sm rounded-lg gap-2",
lg: "h-12 px-6 text-base rounded-xl gap-2.5",
},
fullWidth: {
true: "w-full",
false: "w-fit",
},
},
defaultVariants: {
variant: "primary",
size: "md",
fullWidth: false,
},
}
);
export interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
leadingIcon?: React.ReactNode;
trailingIcon?: React.ReactNode;
isLoading?: boolean;
}
export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
(
{
className,
variant,
size,
fullWidth,
leadingIcon,
trailingIcon,
isLoading,
children,
disabled,
...props
},
ref
) => {
return (
<button
ref={ref}
disabled={disabled || isLoading}
className={twMerge(buttonVariants({ variant, size, fullWidth, className }))}
{...props}
>
{isLoading ? (
<svg
className="animate-spin -ml-1 mr-2 h-4 w-4 text-current"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
aria-hidden="true"
>
<circle
className="opacity-25"
cx="12"
cy="12"
r="10"
stroke="currentColor"
strokeWidth="4"
/>
<path
className="opacity-75"
fill="currentColor"
d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
/>
</svg>
) : leadingIcon ? (
<span className="shrink-0" aria-hidden="true">
{leadingIcon}
</span>
) : null}
<span>{children}</span>
{!isLoading && trailingIcon ? (
<span className="shrink-0" aria-hidden="true">
{trailingIcon}
</span>
) : null}
</button>
);
}
);
Button.displayName = "Button";
8. بصری خامیوں کا خاتمہ: خودکار ویریفکیشن لوپ
محض کوڈ بنانا ہی کافی نہیں ہے۔ ایک مکمل طور پر خودکار ایجنٹ کو ڈیزائن کے اصل ماخذ کے ساتھ اپنے کوڈ کی تصدیق کرنی چاہیے۔ فگما MCP ورک فلو خودکار اسکرین شاٹ بمقابلہ رینڈر تجزیاتی لوپ کے ذریعے یہ ہدف حاصل کرتا ہے۔
+----------------------------------------------------------------------------------------------------+
| AUTONOMOUS VISUAL VERIFICATION PIPELINE |
+----------------------------------------------------------------------------------------------------+
|
+-----------------------------------------------+-----------------------------------------------+
| |
v v
[1. Figma Reference Render] [2. Local Code Compilation]
- Agent calls figma_export_image - Agent launches Vite/Storybook
- Node rendered as high-res PNG (2x scale) - Playwright captures headless snapshot
| |
+-----------------------------------------------+-----------------------------------------------+
v
[3. Pixel-Level Diff Engine]
- Uses pixelmatch / SSIM library
- Compares layout geometry, color, text
|
v
[4. Threshold Decision]
|
+--------------------------+--------------------------+
| Fidelity >= 98.0% | Fidelity < 98.0%
v v
[Pass: Submit PR / Commit] [Fail: Agent Diagnostics Loop]
- Generates Pull Request - Locates pixel mismatches (e.g., padding error)
- Links Figma node URL - Inspects CSS box model
- Attaches visual diff proof - Updates Tailwind classes & re-tests
8.1 تصدیقی اسکرپٹ (verify-ui.ts)
ایجنٹ اپنے پس منظر کے ماحول میں یہ اسکرپٹ چلاتا ہے:
import { chromium } from "playwright";
import fs from "fs";
import pixelmatch from "pixelmatch";
import { PNG } from "pngjs";
async function verifyComponent(nodeId: string, componentUrl: string) {
// 1. Fetch reference image from Figma via MCP API
const figmaImgBuffer = fs.readFileSync(`./fixtures/figma-${nodeId}.png`);
const figmaPng = PNG.sync.read(figmaImgBuffer);
// 2. Capture headless screenshot of generated component
const browser = await chromium.launch();
const page = await browser.newPage({ viewport: { width: figmaPng.width, height: figmaPng.height } });
await page.goto(componentUrl);
const codeScreenshotBuffer = await page.screenshot();
await browser.close();
const codePng = PNG.sync.read(codeScreenshotBuffer);
// 3. Compute pixel mismatch
const diff = new PNG({ width: figmaPng.width, height: figmaPng.height });
const mismatchedPixels = pixelmatch(
figmaPng.data,
codePng.data,
diff.data,
figmaPng.width,
figmaPng.height,
{ threshold: 0.1 }
);
const totalPixels = figmaPng.width * figmaPng.height;
const fidelity = ((1 - mismatchedPixels / totalPixels) * 100).toFixed(2);
console.log(`Visual Fidelity: ${fidelity}% (${mismatchedPixels} mismatched pixels)`);
fs.writeFileSync(`./fixtures/diff-${nodeId}.png`, PNG.sync.write(diff));
return parseFloat(fidelity);
}
9. جامع بینچ مارک: دستی کوڈنگ بمقابلہ Vision LLMs بمقابلہ Figma MCP
فگما MCP سرور کے پیدا کردہ فوائد کا اندازہ لگانے کے لیے، ہم نے 40 معیاری انٹرپرائز کمپوننٹس (بشمول ڈیٹا ٹیبلز، سائڈبارز، فارمز، اور انٹرایکٹو کارڈز) کا تین مختلف طریقوں سے موازنہ کیا:
| کارکردگی کا پیمانہ | روایتی دستی کوڈنگ | ملٹی موڈل اسکرین شاٹ ٹو کوڈ (Vision) | فگما MCP خودکار ایجنٹ |
|---|---|---|---|
| ابتدائی تیاری کا وقت | 4.5 گھنٹے | 22 منٹ | 7.5 منٹ |
| بصری درستگی (SSIM اسکور) | 91.2% | 84.6% | 98.4% |
| ڈیزائن ٹوکنز کی پاسداری | 68.0% (دستی غلطیاں) | 24.0% (ہارڈ کوڈ ہیکس) | 99.5% (سخت مطابقت) |
| ویریئنٹ کوریج | 100% (بہت سست) | 40.0% (صرف بنیادی) | 95.0% (مکمل میٹرکس) |
| ڈویلپر نظرثانی کے اوسط مراحل | 3.2 راؤنڈز | 5.8 راؤنڈز | 0.4 راؤنڈز |
| ایکسیسیبلٹی اسکور (Lighthouse) | 82 / 100 | 64 / 100 | 96 / 100 |
| فی کمپوننٹ لاگت | $337.50 (تنخواہ) | $1.85 (انووکیشن لاگت) | $0.42 (کیشڈ انفرنس) |
10. لاگت کا تجزیہ اور معاشی فوائد
ماہانہ معاشی ماڈل (25 فرنٹ اینڈ ڈویلپرز کی ٹیم)
| آپریشنل مرحلہ | انسانی ڈویلپر کی بنیادی لاگت | فگما MCP + کلاڈ کوڈ ایجنٹ | ماہانہ خالص بچت |
|---|---|---|---|
| کمپوننٹ کی تیاری کی لاگت | $37,500 (500 گھنٹے @ $75/گھنٹہ) | $7,500 (100 گھنٹے جائزہ اور نگرانی) | $30,000 (80.0%) |
| ڈیزائن QA اور بصری کیڑے دور کرنا | $15,000 (200 گھنٹے @ $75/گھنٹہ) | $1,875 (25 گھنٹے پیچیدہ معاملات) | $13,125 (87.5%) |
| ڈیزائن ٹوکنز کا رابطہ اور دیکھ بھال | $3,750 (50 گھنٹے @ $75/گھنٹہ) | $150 (خودکار ٹوکن بوٹ) | $3,600 (96.0%) |
| LLM انفرنس ٹوکنز (Claude 3.7) | $0 | $385 (پرامپٹ کیشنگ کے ساتھ) | -$385 |
| فگما آرگنائزیشن لائسنس سیٹس | $1,875 (25 سیٹس @ $75/ماہ) | $1,950 (اضافی سروس اکاؤنٹ) | -$75 |
| کل ماہانہ اخراجات | $58,125 | $11,860 | $46,265 (79.6%) |
11. مسائل کا حل اور غیر معمولی صورتیں (Edge Cases)
1. Error: 403 Forbidden: file_variables:read scope missing
- وجہ: فگما پرسنل ایکسیس ٹوکن بناتے وقت انٹرپرائز/آرگنائزیشن ویری ایبلز کا اسکوپ منتخب نہیں کیا گیا تھا۔
- حل: فگما سیٹنگز میں نیا ٹوکن جنریٹ کریں اور اس بات کو یقینی بنائیں کہ
file_variables:readچیک کیا گیا ہو۔ یاد رہے کہ فگما ویری ایبلز API کے لیے انٹرپرائز یا ٹیم پرو پلان ضروری ہے۔
2. آٹو لے آؤٹ FILL بمقابلہ HUG ٹرانسلیشن کی خرابیاں
- علامت: جنریٹ شدہ فلیکس آئٹمز سکڑ کر صفر چوڑائی پر آ جاتے ہیں یا کنٹینر سے باہر نکل جاتے ہیں۔
- حل: پرامپٹ میں ایجنٹ کو واضح ہدایت دیں: "جب
layoutSizingHorizontalکی ویلیوFILLہو، توflex-1 w-full min-w-0لگائیں۔ جبHUGہو، توw-fit shrink-0لگائیں۔"
3. ریٹ لمٹ کا مسئلہ (429 Too Many Requests)
- وجہ: بڑی ملٹی پیج فگما فائلوں میں نوڈز کی بار بار اسکیننگ سے فگما کے API کی حد ختم ہو جاتی ہے (50 سے 200 درخواستیں فی منٹ)۔
- حل:
- ایجنٹ کو پوری فائل اسکین کرنے کے بجائے مخصوص نوڈ آئی ڈیز (
figma_get_node) جانچنے کا پابند کریں۔ - اپنے MCP سرور کنفیگریشن میں ایکسپونینشل بیک آف ری ٹرائی لاگو کریں۔
4. شبیہوں (Icons) میں ویکٹر پاتھس کا پھیلاؤ
- علامت: بہت بڑے SVG پاتھز براہ راست JSX میں شامل ہو جاتے ہیں، جس سے لاکھوں ٹوکنز ضائع ہوتے ہیں۔
- حل: ایجنٹ کو ہدایت دیں کہ وہ پیچیدہ ویکٹر لیئرز کو
figma_export_imageکے ذریعے الگ.svgفائلوں کے طور پر ایکسپورٹ کرے، نہ کہ خام پاتھز کو براہ راست کوڈ میں ان لائن کرے۔
12. نتیجہ اور مرحلہ وار نفاذ کا 4 فیز روڈ میپ
Figma Model Context Protocol سرور انجینئرنگ کی پیداواری صلاحیت کے لیے ایک انقلابی پیش رفت ہے۔ راسٹر پرامپٹس کو قابل اعتماد، ساخت کی سطح کے ڈیزائن ڈیٹا سے بدل کر ٹیمیں ڈیزائن اور انجینئرنگ کے درمیانی فاصلے کو مستقل طور پر ختم کر سکتی ہیں۔
تجویز کردہ 4 فیز نفاذی حکمت عملی
Phase 1: Token Pipeline Automation (Weeks 1-2)
- Deploy Figma MCP server locally for senior frontend leads.
- Configure automated extraction of Figma Variables into CSS Custom Properties and Tailwind @theme.
- Establish zero-drift token synchronization in CI.
Phase 2: Atomic Component Scaffolding (Weeks 3-4)
- Enable Claude Code and Cursor to inspect atomic UI elements (Buttons, Badges, Input fields).
- Generate type-safe React components with complete variant matrices.
- Benchmark visual fidelity using local Storybook renders.
Phase 3: Automated Regression Verification (Weeks 5-6)
- Integrate Playwright and pixelmatch into the agent toolchain.
- Enforce 98%+ visual fidelity gating prior to PR creation.
- Allow agents to post verification screenshots back to Figma canvas frames.
Phase 4: Full-Page Template & Screen Assembly (Weeks 7+)
- Scale agents to composite complex layouts, forms, and responsive dashboard templates.
- Automate accessibility compliance checking (ARIA attributes, keyboard navigation, color contrast).
- Transition frontend engineers from manual component coders to system architects and code reviewers.
اس جدید آرکیٹیکچر کو اپنا کر انجینئرنگ ادارے بار بار دہرائے جانے والے تھکا دینے والے کاموں سے چھٹکارا پاتے ہیں، ڈویلپمنٹ کے دورانیے کو 72% تک کم کرتے ہیں، اور بے مثال رفتار سے معیاری ڈیجیٹل مصنوعات تیار کرتے ہیں۔