| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Invoke | /pixel-loop:setup |
| Category | cocode-flutter |
| Complexity | simple |
/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๋ก ๋ณด์ด๋ฉด ์ค๋น ์๋ฃ์
๋๋ค. ๋๊ธด ํญ๋ชฉ์ด ์์ผ๋ฉด ํด๋น ๋จ๊ณ๋ง ๋ค์ ์คํํ์ธ์.
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
- Figma ์ฐ๊ฒฐ โ Figma ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๊ณ , ๋ธ๋ผ์ฐ์ ๋ก๊ทธ์ธ์ผ๋ก ๋์์ธ ์ฝ๊ธฐ ๊ถํ์ ๋ฐ์์ต๋๋ค.
- Maestro ์ฐ๊ฒฐ โ Maestro ๋๊ตฌ๋ฅผ ๋ด๋ ค๋ฐ์ ์ค์นํ๊ณ , Claude Code์ ํ๋ฉด ์กฐ์ ๋๊ตฌ๋ก ๋ฑ๋กํฉ๋๋ค.
- Dart ์ฐ๊ฒฐ โ ์คํ ์ค์ธ Flutter ์ฑ๊ณผ ์ด์ด์ฃผ๋ Dart ๋๊ตฌ๋ฅผ ๋ฑ๋กํ๊ณ , ์ฑ์ด ์๋ ค์ค ์ฐ๊ฒฐ ์ฃผ์๋ก ์ฐ๊ฒฐํฉ๋๋ค.
- ์ต์ข ์ ๊ฒ โ ์ธ ๋๊ตฌ๊ฐ ๋ชจ๋ ์ ์ ์ฐ๊ฒฐ๋๋์ง ํ๋์ ํ์ธํ๊ณ , ๋๊ธด ๊ฒ ์์ผ๋ฉด ๊ทธ ๋ถ๋ถ๋ง ๋ค์ ๋ง์ถฅ๋๋ค.
์ฐธ๊ณ : ์น(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-officialThen authenticate:
- In a Claude Code session, run
/mcp. - Select the
figmaserver. - Complete the OAuth flow (browser opens automatically).
- Confirm with:
claude mcp list | grep figmaโ should printfigma: 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 mcp3. Dart MCP#
Requires Dart SDK 3.9 or later (bundled with current Flutter stable).
# Register
claude mcp add dart -- dart mcp-serverThe Dart MCP connects to a running Flutter app via Dart Tooling Daemon (DTD). Start the app like this:
flutter run --print-dtdThe console prints a line:
The Dart Tooling Daemon is listening on ws://127.0.0.1:54321/abc123tokenProvide 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 โ connectedIf 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 testonce 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.