@manansiingh/figma-react-mcp-server
README.md
# @manansiingh/figma-react-mcp-server
> **Enterprise-grade Figma-to-React MCP Server** — converts Figma designs into production-ready React components with design token extraction, widget registry integration, and micro-frontend (MFE) module generation.
[](https://www.npmjs.com/package/@manansiingh/figma-react-mcp-server)
[](https://registry.modelcontextprotocol.io)
## Why This Server?
There are several Figma MCP servers out there. Here's what makes this one different:
| Feature | Other Figma MCPs | This Server |
|---|---|---|
| Basic component generation | ✅ | ✅ |
| **Design token extraction** (colors, spacing, typography → reusable token file) | ❌ | ✅ |
| **Registry-driven output** (components self-register into a widget registry) | ❌ | ✅ |
| **MFE-aware generation** (independently deployable micro-frontend modules) | ❌ | ✅ |
| Auto Layout → Flexbox mapping | Partial | ✅ Full |
This server was built from real-world experience building enterprise design systems and micro-frontend dashboards at scale, not just weekend prototypes.
## What It Does
### 1. Design Token Extraction
Instead of hardcoding colors and spacing into individual components, this server extracts Figma's design tokens into a standalone `tokens.ts` file:
```ts
// Auto-generated design tokens from Figma
export const tokens = {
colors: {
primary: '#6366F1',
background: '#F8FAFC',
text: '#0F172A',
},
spacing: {
sm: '8px',
md: '16px',
lg: '24px',
},
typography: {
heading: { fontFamily: 'Inter', fontSize: '24px', fontWeight: 700 },
body: { fontFamily: 'Inter', fontSize: '16px', fontWeight: 400 },
},
};
```
### 2. Widget Registry Output
Generated components automatically export a registry entry, making them plug-and-play in dashboard frameworks:
```ts
// Auto-generated registry entry
export const widgetManifest = {
id: 'figma-card-widget',
name: 'Card Widget',
component: CardWidget,
category: 'display',
version: '1.0.0',
};
```
### 3. Micro-Frontend Module Generation
Components are generated as independently deployable MFE modules with their own entry point, not just standalone `.tsx` files:
```ts
// Auto-generated MFE bootstrap
import { CardWidget } from './CardWidget';
import { tokens } from './tokens';
export default {
mount: (container: HTMLElement) => {
// Render into the provided container
},
unmount: (container: HTMLElement) => {
// Cleanup
},
};
```
## Quick Start
### Requirements
- A **Figma Personal Access Token** (Settings → Personal Access Tokens)
- A **Figma File Key** (from the URL: `figma.com/file/<FILE_KEY>/...`)
- A **Node ID** (from the URL when selecting a frame: `?node-id=1:2`)
### Add to Your MCP Client
Add this to your MCP client config (Claude Desktop, Cursor, Windsurf, etc.):
```json
{
"mcpServers": {
"figma-to-react": {
"command": "npx",
"args": ["-y", "@manansiingh/figma-react-mcp-server"]
}
}
}
```
### Usage
Once configured, simply prompt your AI agent:
> "Use the figma-to-react tool to convert Node '123:4' in file 'abcxyz' into a React component with design tokens extracted. My Figma token is 'figd_XXX'."
## Available MCP Tools
| Tool | Description |
|---|---|
| `generate_react_component` | Converts a Figma node into a production React component with inline styles derived from Auto Layout, fills, strokes, typography, and border radius. |
| `extract_design_tokens` | Pulls all color, spacing, and typography tokens from a Figma file into a reusable `tokens.ts` format. |
| `generate_mfe_module` | Generates a self-contained micro-frontend module with mount/unmount lifecycle hooks. |
## How It Works
1. Fetches the exact node tree from the Figma REST API
2. Recursively parses geometry, auto-layout constraints, fills, strokes, and text styles
3. Maps Figma's `layoutMode` → CSS Flexbox (`display: flex`, `flexDirection`, `justifyContent`, `alignItems`, `gap`)
4. Extracts design tokens into a separate reusable file
5. Wraps output in registry-compatible and MFE-compatible formats
6. Returns clean, production-ready React JSX via MCP tool response
## Tech Stack
- [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk) (stdio transport)
- [Figma REST API](https://www.figma.com/developers/api)
- TypeScript, Node.js (ES2022)
## License
MIT
TDQS
A3.7/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct output: React component, design tokens, and micro-frontend module. There is no overlap in purpose, so agents can easily select the correct tool.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern: generate_react_component, extract_design_tokens, generate_mfe_module. The naming is uniform and predictable.
Tool Count5/5
With 3 tools, the server is tightly scoped to its purpose of Figma-to-code conversion. Each tool covers a distinct and necessary capability without bloat.
Completeness4/5
The set covers the core workflows: component generation, token extraction, and MFE creation. Minor omissions like asset export or project scaffolding exist, but agents can likely accomplish most tasks with these tools.
Maintenance
ActivityInactive
ResponsivenessNo issues