LogoSkills

pixel-loop:setup

One-time setup: install + register Figma, Maestro, and Dart MCP servers for Claude Code.

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/pixel-loop:setup
Categorycocode-flutter
Complexitysimple

/pixel-loop setup โ€” ํ”ฝ์…€ ๋ฃจํ”„ ์ฒ˜์Œ ํ•œ ๋ฒˆ ์ค€๋น„ํ•˜๊ธฐ#

ํ•œ๋งˆ๋””๋กœ#

๋””์ž์ธ(Figma)๊ณผ ์‹ค์ œ ์•ฑ ํ™”๋ฉด์„ ํ”ฝ์…€ ๋‹จ์œ„๋กœ ๋งž์ถ”๋Š” ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—, ํ•„์š”ํ•œ ๋„๊ตฌ 3์ข…์„ ํ•œ ๋ฒˆ์— ์„ค์น˜ํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋Š” ์ดˆ๊ธฐ ์„ธํŒ… ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ƒˆ ์ž‘์—…์‹ค์— ๋“ค์–ด๊ฐ€์„œ ์ฑ…์ƒ, ๋ชจ๋‹ˆํ„ฐ, ์ „ํ™”์„ ์„ ํ•œ๊บผ๋ฒˆ์— ๊น”์•„๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•„์š”. ํ•œ ๋ฒˆ๋งŒ ํ•ด๋‘๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • ํ”ฝ์…€ ํผํŽ™ํŠธ ๋ฃจํ”„(๋””์ž์ธ๊ณผ ์•ฑ ํ™”๋ฉด์„ ๋˜‘๊ฐ™์ด ๋งž์ถ”๋Š” ์ž‘์—…)๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ
  • ์ƒˆ ์ปดํ“จํ„ฐยท์ƒˆ ์ž‘์—… ํ™˜๊ฒฝ์—์„œ ๋„๊ตฌ๊ฐ€ ์•„์ง ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ

๐Ÿ‘‰ ์ด๋ฏธ ํ•œ ๋ฒˆ ํ•ด๋’€์–ด๋„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค(์ค‘๋ณต ์„ค์น˜๋˜์ง€ ์•Š์Œ). ๋„๊ตฌ ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๋•Œ ๋‹ค์‹œ ๋งž์ถ”๋Š” ์šฉ๋„๋กœ๋„ ์”๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

Claude Code์— ์„ธ ๊ฐ€์ง€ ๋„๊ตฌ(MCP ์„œ๋ฒ„)๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์—ฐ๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค.

  • Figma MCP โ€” ๋””์ž์ธ ํŒŒ์ผ์„ ์ฝ์–ด์˜ค๋Š” ํ†ต๋กœ
  • Maestro MCP โ€” ์‹ค์ œ ์•ฑ ํ™”๋ฉด์„ ์กฐ์ž‘ยทํ™•์ธํ•˜๋Š” ๋„๊ตฌ
  • Dart MCP โ€” ์‹คํ–‰ ์ค‘์ธ Flutter ์•ฑ๊ณผ ๋Œ€ํ™”ํ•˜๋Š” ์—ฐ๊ฒฐ์„ 

๋งˆ๋ฌด๋ฆฌ๋˜๋ฉด ์ด ์„ธ ํ•ญ๋ชฉ์ด Claude Code ์ „์—ญ ์„ค์ •(~/.claude.json ๋˜๋Š” ์ž‘์—…๊ณต๊ฐ„์˜ .mcp.json)์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์—๋„ plugins/cc-flutter-pixel-loop/.mcp.json์ด ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์–ด, ์ €์žฅ์†Œ๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š” ๋ˆ„๊ตฌ๋‚˜ ๊ฐ™์€ ์—ฐ๊ฒฐ์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

# 1) Figma ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜
claude plugin install figma@claude-plugins-official

# 2) Maestro ์„ค์น˜ + ๋“ฑ๋ก
curl -Ls  " https://get.maestro.mobile.dev "   | bash
claude mcp add maestro -- maestro mcp

# 3) Dart MCP ๋“ฑ๋ก
claude mcp add dart -- dart mcp-server

# 4) ์ž˜ ๋ถ™์—ˆ๋Š”์ง€ ์ตœ์ข… ํ™•์ธ
claude mcp list

Figma๋Š” ์„ค์น˜ ํ›„ Claude Code ์•ˆ์—์„œ /mcp๋ฅผ ์‹คํ–‰ํ•ด figma ์„œ๋ฒ„๋ฅผ ๊ณ ๋ฅด๊ณ , ์ž๋™์œผ๋กœ ์—ด๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๊ทธ์ธ(OAuth)์„ ๋งˆ์น˜๋ฉด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. Dart๋Š” ์•ฑ์„ flutter run --print-dtd๋กœ ์‹คํ–‰ํ•  ๋•Œ ์ฝ˜์†”์— ์ฐํžˆ๋Š” ์—ฐ๊ฒฐ ์ฃผ์†Œ(ws://...)๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ claude mcp list์—์„œ ์„ธ ์„œ๋ฒ„๊ฐ€ ๋ชจ๋‘ connected๋กœ ๋ณด์ด๋ฉด ์ค€๋น„ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค. ๋Š๊ธด ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ๋‹จ๊ณ„๋งŒ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

  1. Figma ์—ฐ๊ฒฐ โ€” Figma ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ € ๋กœ๊ทธ์ธ์œผ๋กœ ๋””์ž์ธ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  2. Maestro ์—ฐ๊ฒฐ โ€” Maestro ๋„๊ตฌ๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ์„ค์น˜ํ•˜๊ณ , Claude Code์— ํ™”๋ฉด ์กฐ์ž‘ ๋„๊ตฌ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  3. Dart ์—ฐ๊ฒฐ โ€” ์‹คํ–‰ ์ค‘์ธ Flutter ์•ฑ๊ณผ ์ด์–ด์ฃผ๋Š” Dart ๋„๊ตฌ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ์•ฑ์ด ์•Œ๋ ค์ค€ ์—ฐ๊ฒฐ ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  4. ์ตœ์ข… ์ ๊ฒ€ โ€” ์„ธ ๋„๊ตฌ๊ฐ€ ๋ชจ๋‘ ์ •์ƒ ์—ฐ๊ฒฐ๋๋Š”์ง€ ํ•œ๋ˆˆ์— ํ™•์ธํ•˜๊ณ , ๋Š๊ธด ๊ฒŒ ์žˆ์œผ๋ฉด ๊ทธ ๋ถ€๋ถ„๋งŒ ๋‹ค์‹œ ๋งž์ถฅ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์›น(Flutter web)์—์„œ๋Š” Maestro๊ฐ€ ์•ˆ์ •์ ์ด์ง€ ์•Š์•„, ์ด ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋Œ€์ฒด ๊ฒฝ๋กœ๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. iOSยทAndroid ์‹ค์ œ ๊ธฐ๊ธฐ๋ฅผ ์“ธ ๋•Œ๋Š” ๊ธฐ๊ธฐ์™€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ๊ฑฐ๋‚˜ USB ๋””๋ฒ„๊น…์ด ์ผœ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Steps#

1. Figma MCP#

# Install the official Figma plugin for Claude Code
claude plugin install figma@claude-plugins-official

Then authenticate:

  1. In a Claude Code session, run /mcp.
  2. Select the figma server.
  3. Complete the OAuth flow (browser opens automatically).
  4. Confirm with: claude mcp list | grep figma โ†’ should print figma: connected.

2. Maestro MCP#

# Maestro CLI (bundles the MCP server)
curl -Ls  " https://get.maestro.mobile.dev "   | bash

# Verify
maestro --version

# Register as an MCP for Claude Code
claude mcp add maestro -- maestro mcp

3. Dart MCP#

Requires Dart SDK 3.9 or later (bundled with current Flutter stable).

# Register
claude mcp add dart -- dart mcp-server

The Dart MCP connects to a running Flutter app via Dart Tooling Daemon (DTD). Start the app like this:

flutter run --print-dtd

The console prints a line:

The Dart Tooling Daemon is listening on ws://127.0.0.1:54321/abc123token

Provide this URI when Dart MCP prompts for dtdUri, or paste the full flutter run output into the Claude Code session โ€” the agent extracts the URI automatically.

Tip: From the Claude Code prompt, the ! prefix runs a shell command in-session and feeds its stdout into the conversation:

>   ! flutter run --print-dtd
 >  

4. Sanity Check#

claude mcp list
# expected (subset):
# figma   โœ“ connected
# maestro โœ“ connected
# dart    โœ“ connected

If any server shows disconnected, re-run the corresponding step above.

Platform Notes#

  • Flutter web: Maestro web is not stable. The pixel-loop skill bails out on web targets and instructs the user to use the Playwright fallback in cc-flutter-dev:figma:analyze.
  • iOS physical device: Maestro requires the device and the host to be on the same network and the WebDriverAgent helper to be installed (maestro test once will provision it).
  • Android physical device: USB debugging enabled; the device must appear in adb devices.

Where these end up#

After setup, three MCP entries appear in your global Claude Code config (~/.claude.json or workspace .mcp.json). The cocode/skills repo also ships a per-plugin plugins/cc-flutter-pixel-loop/.mcp.json so the same wiring is available to anyone cloning the repo.