Search

์‹ค์Šต

04. ์‹ค์Šต โ€” ๊ณต์‹ Figma MCP

๋ชฉํ‘œ

๊ณต์‹ Figma MCP Server๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์‹ค์ œ Figma ํŒŒ์ผ์—์„œ ์ปดํฌ๋„ŒํŠธ 1๊ฐœ๋ฅผ React ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ์ €์žฅํ•œ๋‹ค.

์ค€๋น„๋ฌผ

โ€ข
Figma Desktop App (Professional ์ด์ƒ ํ”Œ๋žœ)
โ€ข
VS Code + GitHub Copilot (๋˜๋Š” Claude Desktop / Cursor)
โ€ข
์‹ค์Šต์šฉ Figma ํŒŒ์ผ (Figma Community์—์„œ ๋ฌด๋ฃŒ ๋””์ž์ธ ์‹œ์Šคํ…œ ๋ณต์ œ ๊ถŒ์žฅ)
โ€ข
Node.js 18+ (์„ ํƒ: ๊ฒฐ๊ณผ ์ฝ”๋“œ ์‹คํ–‰์šฉ)

์‹ค์Šต 1๋‹จ๊ณ„ โ€” MCP Server ํ™œ์„ฑํ™”

1.
Figma Desktop App ์‹คํ–‰
2.
Preferences โ†’ Enable Dev Mode MCP Server ON
3.
ํ™œ์„ฑํ™” ํ™•์ธ (์ƒ๋‹จ ์•Œ๋ฆผ)
์ฒดํฌ: http://127.0.0.1:3845/sse ๊ฐ€ ์‘๋‹ตํ•˜๋Š”์ง€ ๋ธŒ๋ผ์šฐ์ €๋กœ ํ™•์ธ (๋˜๋Š” ๋ฌด์‹œ)

์‹ค์Šต 2๋‹จ๊ณ„ โ€” VS Code MCP ๋“ฑ๋ก

1.
Ctrl+Shift+P โ†’ >MCP: Add Server
2.
HTTP ์„ ํƒ
3.
URL: http://127.0.0.1:3845/sse
4.
์ด๋ฆ„: figma
์ฒดํฌ: Copilot ์ฑ„ํŒ… ๋„๊ตฌ ํŒจ๋„์— figma MCP ๋„๊ตฌ๋“ค ํ‘œ์‹œ

์‹ค์Šต 3๋‹จ๊ณ„ โ€” ์‹ค์Šต ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

cd E:/์‹ค์Šตํด๋” npm create vite@latest figma-mcp-practice -- --template react-ts cd figma-mcp-practice npm install npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p
PowerShell
๋ณต์‚ฌ
tailwind.config.js:
export default { content: ['./index.html', './src/**/*.{ts,tsx}'], theme: { extend: {} }, plugins: [], }
JavaScript
๋ณต์‚ฌ
src/index.css ์ƒ๋‹จ์—:
@tailwind base; @tailwind components; @tailwind utilities;
CSS
๋ณต์‚ฌ

์‹ค์Šต 4๋‹จ๊ณ„ โ€” Figma ์ปดํฌ๋„ŒํŠธ ๋ณ€ํ™˜

1.
Figma Desktop App์—์„œ Card ์ปดํฌ๋„ŒํŠธ 1๊ฐœ ์„ ํƒ
2.
VS Code Copilot ์ฑ„ํŒ…:
ํ˜„์žฌ Figma์—์„œ ์„ ํƒ๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ React + TypeScript + Tailwind๋กœ src/components/Card.tsx์— ๋งŒ๋“ค์–ด์ค˜. Props๋Š” ์ถ”๋ก ํ•ด์„œ ๋งŒ๋“ค์–ด.
Plain Text
๋ณต์‚ฌ
3.
Copilot์ด MCP ํ˜ธ์ถœ โ†’ ์ฝ”๋“œ ์ž๋™ ์ƒ์„ฑ/์ €์žฅ
์ฒดํฌ: src/components/Card.tsx ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ

์‹ค์Šต 5๋‹จ๊ณ„ โ€” ๋””์ž์ธ ํ† ํฐ ์ถ”์ถœ

ํ”„๋กฌํ”„ํŠธ:
์„ ํƒ๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ƒ‰์ƒ/๊ฐ„๊ฒฉ Variable์„ src/design-system/tokens.ts ๋กœ ์ถ”์ถœํ•ด์ค˜. ๊ทธ๋ฆฌ๊ณ  Card.tsx ๊ฐ€ hex ๋Œ€์‹  ํ† ํฐ์„ importํ•ด์„œ ์“ฐ๋„๋ก ๋ฆฌํŒฉํ† ๋งํ•ด์ค˜.
Plain Text
๋ณต์‚ฌ
์ฒดํฌ:
โ€ข
tokens.ts ์ƒ์„ฑ
โ€ข
Card.tsx์˜ Tailwind ํด๋ž˜์Šค๊ฐ€ ํ† ํฐ ๊ธฐ๋ฐ˜(bg-[var(--color-primary)] ๋“ฑ)์œผ๋กœ ๋ณ€๊ฒฝ

์‹ค์Šต 6๋‹จ๊ณ„ โ€” ์‹คํ–‰ ๋ฐ ๊ฒ€์ฆ

src/App.tsx์—์„œ Card import ํ›„ ๋ Œ๋”:
import { Card } from './components/Card' export default function App() { return ( <div className="p-8"> <Card title="Hello" description="Figma MCP ์‹ค์Šต" /> </div> ) }
TypeScript
๋ณต์‚ฌ
npm run dev
PowerShell
๋ณต์‚ฌ
๋ธŒ๋ผ์šฐ์ € ์—ด์–ด ๋””์ž์ธ๊ณผ ์‹œ๊ฐ์ ์œผ๋กœ ๋น„๊ต.
์ฒดํฌ: Figma ๋””์ž์ธ๊ณผ ์‹ค์ œ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ์˜ ์ผ์น˜์œจ ํ‰๊ฐ€

์‹ค์Šต 7๋‹จ๊ณ„ โ€” ํŽ˜์ด์ง€ ๋‹จ์œ„ ๋ณ€ํ™˜ ๋„์ „

โ€ข
Figma์—์„œ ํŽ˜์ด์ง€ ์ „์ฒด(Frame) ์„ ํƒ
โ€ข
ํ”„๋กฌํ”„ํŠธ:
์„ ํƒํ•œ ํŽ˜์ด์ง€๋ฅผ src/pages/Dashboard.tsx ๋กœ ๋งŒ๋“ค์–ด์ค˜. ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ถ„์€ ์ปดํฌ๋„ŒํŠธ๋กœ ์ถ”์ถœ.
Plain Text
๋ณต์‚ฌ
โ€ข
๊ฒฐ๊ณผ๋ฅผ ๋ผ์šฐํ„ฐ ๋“ฑ์— ์—ฐ๊ฒฐํ•ด ๋™์ž‘ ํ™•์ธ

ํšŒ๊ณ  ์ฒดํฌ๋ฆฌ์ŠคํŠธ

MCP ๋„๊ตฌ๊ฐ€ ์ •์ƒ ํ˜ธ์ถœ๋˜์—ˆ๋Š”๊ฐ€?
๋””์ž์ธ ํ† ํฐ์ด ์ฝ”๋“œ์— ๋ฐ˜์˜๋˜์—ˆ๋Š”๊ฐ€?
Figma ๋””์ž์ธ๊ณผ ์ฝ”๋“œ ๊ฒฐ๊ณผ์˜ ์‹œ๊ฐ์  ์ฐจ์ด๋Š” ์–ด๋””์„œ ๋ฐœ์ƒํ–ˆ๋Š”๊ฐ€?
์–ด๋–ค ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋” ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๊ฐ€?
Code Connect๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ๋‚˜์•„์งˆ ๋ถ€๋ถ„์€?