| name | setup-debugger |
| description | Wire the `ait-devtools` debug MCP server (`@apps-in-toss/debugger`) into the
current project's MCP config (project scope, opt-in) โ `.mcp.json` on Claude
Code, `.cursor/mcp.json` on Cursor โ so `/ait:debug` can
run on-device CDP relay attach (environment 3). Idempotent JSON merge โ
preserves other server entries, never renames the `ait-devtools` key.
Run THIS skill instead of hand-writing `.mcp.json` or inventing a server
entry โ even when the request sounds like a plain JSON edit ("MCP ์๋ฒ๋ฅผ
.mcp.json์ ๋ฑ๋กํด์ค", "๋๋ฒ๊ฑฐ ์๋ฒ ์ถ๊ฐํด์ค"): the correct package, args,
and key live here. Installing the `debug-console` package into the app
itself is `inject`, not this. Triggered by `/ait:setup-debugger`, no args.
|
| argument-hint | |
| adapter-note | Host-branched MCP registration โ Claude Code writes project `.mcp.json`, Cursor writes `.cursor/mcp.json` (same entry plus `"type": "stdio"`); step 2 carries the host detection and step 4 the payload. Other targets (Codex etc.) must replace this with that agentโs own MCP registration mechanism, together with debug ยง5. |
setup-debugger skill
๋ชฉ์
/ait:setup-debugger๋ on-device ๋๋ฒ๊น
(/ait:debug ยง5, ํ๊ฒฝ 3)์ด ์ฐ๋
ait-devtools MCP ์๋ฒ๋ฅผ ํ์ฌ ํ๋ก์ ํธ์ MCP ์ค์ ํ์ผ์ ๋ฑ๋กํ๋ค. ์ด
ํ์ผ์ ํธ์คํธ๋ง๋ค ๋ค๋ฅด๋ค โ Claude Code๋ .mcp.json, Cursor๋
.cursor/mcp.json์ ์ด๋ค(ํ๋ณ์ 2๋จ๊ณ).
์ด ์๋ฒ๋ plugin manifest์ ๋ค์ด ์์ง ์๋ค โ ๋๋ฒ๊น
์ ํ๋ก์ ํธ ์ ์ ์์
์ด๊ณ ,
๋ก์ปฌ npx ๋ฐ๋ชฌ์ ๋ชจ๋ ์ธ์
์ ์์ ํ์ฐ๋ฉด idle ๋น์ฉ๊ณผ ๊ณต๊ธ๋ง ํ๋ฉด์ด ์๊ธฐ๋ฏ๋ก
ํ๋ก์ ํธ ๋จ์ opt-in์ด๋ค. ์ด skill์ด ๊ทธ opt-in์ ๋จ์ผ ๊ฒฝ๋ก๋ค.
์๋ฃ๋๋ฉด:
- Claude Code๋ฉด ํ๋ก์ ํธ ๋ฃจํธ
.mcp.json์, Cursor๋ฉด .cursor/mcp.json์
mcpServers."ait-devtools" ํญ๋ชฉ์ด ์๊ธด๋ค.
- Claude Code๋ ์ธ์
์์ ์๋ฒ๋ฅผ ์น์ธยท์ฐ๊ฒฐํ๋ฉด
/mcp ๋ชฉ๋ก์ ait-devtools๊ฐ
๋จ๊ณ , Cursor๋ Cursor์ MCP ๋ชฉ๋ก์์ ๊ฐ์ ํญ๋ชฉ์ ์ผ๊ณ ์น์ธํ๋ค. ์ฐ๊ฒฐ๋๋ฉด
/ait:debug์ start_attach QR attach ๊ฒฝ๋ก(ํ๊ฒฝ 3)๊ฐ ์ด๋ฆฐ๋ค โ ์ด attach
๊ฒฝ๋ก๋ Claude Code์์ ํ์ธ๋ ๊ฒฝ๋ก๋ค.
์์กด
package.json์ด cwd์ ์์ด์ผ ํ๋ค โ MCP ์ค์ ํ์ผ์ ๋ ํธ์คํธ ๋ชจ๋
ํ๋ก์ ํธ ๋ฃจํธ ์ค์ฝํ๋ค. ์์ผ๋ฉด ํ๋ก์ ํธ ๋ฃจํธ๋ก ์ด๋์ ์๋ดํ๊ณ ์ค๋จ.
- npx๊ฐ Release tarball(
@apps-in-toss/debugger)์ ๋ด๋ ค๋ฐ์ ์คํํ๋ฏ๋ก ์ ์ญ ์ค์น๋ ํ์ ์๋ค.
์ด skill์ ์ฝ์ ์ธ์ฆ์ ์๊ตฌํ์ง ์๋๋ค. ๋ก์ปฌ ์ค์ ํ์ผ ํ๋๋ง ๋ง์ง๋ค.
์คํ ์์
1. ํ๋ก์ ํธ ๋ฃจํธ ํ์ธ
ls package.json
์์ผ๋ฉด ์ค๋จ:
package.json์ด ์์ต๋๋ค. ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์ ๋ค์ ์คํํด์ฃผ์ธ์.
์: cd <project-root> && /ait:setup-debugger
2. ํธ์คํธ ํ๋ณ (์ด๋ ํ์ผ์ ์ธ์ง)
1์ฐจ ๊ทผ๊ฑฐ๋ ์์ด์ ํธ ์์ ์ ์๊ธฐ ์ธ์์ด๋ค โ ์ง๊ธ ์ด skill์ ์คํํ๋
์์ด์ ํธ๊ฐ Claude Code์ธ์ง Cursor์ธ์ง๋ ๊ทธ ์์ด์ ํธ ์์ ์ด ๊ฐ์ฅ ์ ํํ ์๋ค.
๋ณด์กฐ ์ ํธ๋ก ํ๋ก์ ํธ ๋ฃจํธ์ ํ์ ์ ํ์ธํ๋ค:
ls -d .cursor .mcp.json .cursor/mcp.json 2>/dev/null
- Claude Code๋ฉด
.mcp.json์ ์ด๋ค(4๋จ๊ณ).
- Cursor๋ฉด
.cursor/mcp.json์ ์ด๋ค โ .cursor/ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ง ์์ผ๋ฉด
๋จผ์ ๋ง๋ ๋ค(mkdir -p .cursor).
- ๋ ๋ค ์๋๋ฉด(Codex ๋ฑ) ์ด skill์ด ์ง์ํ๋ ๋์์ด ์๋๋ค โ ์๋ฌด ํ์ผ๋
์ฐ์ง ์๊ณ ๊ทธ๋ ๊ฒ ์๋ดํ ๋ค ์ค๋จํ๋ค.
- ๋ณด์กฐ ์ ํธ๊ฐ ์๊ธฐ ์ธ์๊ณผ ์ด๊ธ๋๋ฉด(ํ์ ์ด ๋ ๋ค ์๊ฑฐ๋ ๋ ๋ค ์๋๋ฐ ์์ ์
๋ถ๋ช
Claude Code ๋๋ Cursor์ธ ๊ฒฝ์ฐ) ์๊ธฐ ์ธ์์ ๋ฐ๋ฅธ๋ค โ ํ์ผ ํ์ ์
์ฐธ๊ณ ์ผ ๋ฟ ํ์ ๊ทผ๊ฑฐ๊ฐ ์๋๋ค.
3. ๊ธฐ์กด MCP ์ค์ ํ์ผ ํ์ธ (idempotent)
2๋จ๊ณ์์ ์ ํ ํ์ผ์ด ์ด๋ฏธ ์์ผ๋ฉด Read๋ก ์ฝ๋๋ค:
mcpServers."ait-devtools"๊ฐ 4๋จ๊ณ์ ๋์ผํ ํญ๋ชฉ์ผ๋ก ์ด๋ฏธ ์์ผ๋ฉด โ
๋ณ๊ฒฝ ์์ด "์ด๋ฏธ ๋ฐฐ์ ๋จ"์ผ๋ก ๋ณด๊ณ ํ๊ณ 5๋จ๊ณ๋ก ๊ฐ๋ค.
- ๊ฐ์ ํค๊ฐ ๋ค๋ฅธ ๋ด์ฉ์ผ๋ก ์์ผ๋ฉด โ ์กฐ์ฉํ ๋ฎ์ด์ฐ์ง ์๋๋ค. ํ์ฌ ๊ฐ์ ๋ณด์ฌ์ฃผ๊ณ
์ฌ์ฉ์ ๊ฒฐ์ ์ ๋ฐ๋๋ค(์ปค์คํ
๋ฐ์ฒ๋ฅผ ์ฐ๊ณ ์์ ์ ์๋ค).
- ํ์ผ์ด ์์ผ๋ฉด 4๋จ๊ณ์์ ์๋ก ๋ง๋ ๋ค.
4. ait-devtools ํญ๋ชฉ merge
2๋จ๊ณ์์ ์ ํ ํ์ผ์ ์๋ ํญ๋ชฉ์ mergeํ๋ค โ ๊ธฐ์กด์ ๋ค๋ฅธ ์๋ฒ ํญ๋ชฉ์ ๊ทธ๋๋ก
๋ณด์กดํ๊ณ ait-devtools ํค๋ง ์ถ๊ฐํ๋ค. Claude Code(.mcp.json)๋ ์ด ํํ๋ค:
{
"mcpServers": {
"ait-devtools": {
"command": "npx",
"args": ["-y", "-p", "https://github.com/toss/apps-in-toss-harness/releases/download/debugger-v0.2.2/apps-in-toss-debugger-0.2.2.tgz", "debugger"]
}
}
}
Cursor(.cursor/mcp.json)๋ ๊ฐ์ ํญ๋ชฉ์ "type": "stdio"๊ฐ ์ฒซ ํค๋ก ๋ถ๋๋ค:
{
"mcpServers": {
"ait-devtools": {
"type": "stdio",
"command": "npx",
"args": ["-y", "-p", "https://github.com/toss/apps-in-toss-harness/releases/download/debugger-v0.2.2/apps-in-toss-debugger-0.2.2.tgz", "debugger"]
}
}
}
- server key
ait-devtools๋ ๊ฐ๋ช
๊ธ์ง โ eval e2e disallowedTools ๊ฒ์ดํธ์
/ait:debug์ ๋๊ตฌ ์ฐธ์กฐ๊ฐ ์ด ๋ฌธ์์ด์ ๊ฒฐํฉ๋ผ ์๋ค. ์ด ๊ฒฐํฉ์
๋ก์ปฌ eval/e2e/driver.test.ts(repo ๋ฏธํฌํจ โ maintainer-local)๊ฐ ๊ฒ์ฌํ๋ค(์
json ๋ธ๋ก์ ํค๋ฅผ ์ค์ ๋ก ์ฝ์ด STATIC_DISALLOWED_TOOLS์ ๋์กฐ) โ ๊ฐ๋ช
ํ๋ฉด ๊ทธ
๋ก์ปฌ ๊ฒ์ฌ๊ฐ ์คํจํ๋ค.
npx -y -p https://github.com/toss/apps-in-toss-harness/releases/download/debugger-v0.2.2/apps-in-toss-debugger-0.2.2.tgz debugger
ํํ๋ฅผ ์ ์งํ๋ค โ -p ์์ด bare๋ก ์ฐ๋ฉด
ํจํค์ง๊ฐ bin์ 2๊ฐ(debuggerยทdebugger-test) ๊ฒ์ํด npm์ด ์คํํ์ผ์ ์ถ๋ก ํ์ง
๋ชปํ๋ค. ๋จธ์ ์ ๋๊ฒฝ๋ก launcher๋ ๋ฐ์ง ์๋๋ค(๋ค๋ฅธ ๋จธ์ clone์์ ๊นจ์ง๋ค).
- Cursor ํญ๋ชฉ์๋
"type": "stdio"๊ฐ ํ์๋ค โ ์๊ฒฉ ์๋ฒ๊ฐ ์๋๋ผ ๋ก์ปฌ
ํ๋ก์ธ์ค์์ Cursor์ ์๋ฆฌ๋ ํ๋๋ค.
5. ์ธ์
๋ก๋ ์๋ด
.mcp.json์ ํ์ผ์ด ์๊ฒผ๋ค๊ณ ์ฆ์ ๋ก๋๋์ง ์๋๋ค โ Claude Code๊ฐ ํ๋ก์ ํธ MCP
์๋ฒ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ฌ์ฉ์ ์น์ธ์ ์๊ตฌํ๊ณ , ์ด๋ฏธ ์ด๋ฆฐ ์ธ์
์ด๋ฉด ์ฌ์์(๋๋ /mcp
์ฌ์ฐ๊ฒฐ)์ด ํ์ํ ์ ์๋ค. ๋ง๋ฌด๋ฆฌ๋ก ์๋ดํ๋ค:
Claude Code์ฉ:
.mcp.json์ ait-devtools MCP ์๋ฒ๋ฅผ ๋ฑ๋กํ์ต๋๋ค.
- ์ ์ธ์
์ด๋ฉด: ์์ ์ ์๋ฒ ์น์ธ ํ๋กฌํํธ์์ ํ์ฉํด์ฃผ์ธ์.
- ์ด ์ธ์
์์ ๋ฐ๋ก ์ฐ๋ ค๋ฉด: /mcp ๋ก ์๋ฒ ๋ชฉ๋ก์ ์ด์ด ait-devtools ์ฐ๊ฒฐ์ ํ์ธํด์ฃผ์ธ์.
์ฐ๊ฒฐ๋๋ฉด /ait:debug ๊ฐ start_attach QR attach ๊ฒฝ๋ก(ํ๊ฒฝ 3)๋ฅผ ์งํํฉ๋๋ค.
Cursor์ฉ:
.cursor/mcp.json์ ait-devtools MCP ์๋ฒ๋ฅผ ๋ฑ๋กํ์ต๋๋ค.
- ์๋ํฐ๋ฉด: Cursor ์ค์ ์ MCP ์๋ฒ ๋ชฉ๋ก์์ ait-devtools๋ฅผ ์ผ๊ณ ์น์ธํด์ฃผ์ธ์.
- CLI๋ฉด: agent mcp enable ait-devtools ๋ก ์น์ธํ ๋ค, agent mcp list ๋ก ์ฐ๊ฒฐ์ ํ์ธํด์ฃผ์ธ์.
ํฐ์ ๋ถ๋ ํ๊ฒฝ 3 attach(debug ยง5)๋ Claude Code ์ ์ฉ ๋ฉ์ปค๋์ฆ์ ๊ธฐ๋๋ฏ๋ก Cursor์์๋
๋์ํ์ง ์์ต๋๋ค(Codex์ ๊ฐ์ ์ ์ฝ). ๋ธ๋ผ์ฐ์ ํ๊ฒฝ(ํ๊ฒฝ 1) ๋๋ฒ๊น
์ ๊ทธ๋๋ก ์๋๋ค.
๋ง๋ก: "๋ธ๋ผ์ฐ์ ์์ ๋ฏธ๋์ฑ ๋์์ ํ์ธํ๊ณ ์ถ์ด"
๋ค์ ๋จ๊ณ
๋ฐฐ์ ์ด ๋๋๊ณ ์ธ์
์์ ์๋ฒ ์ฐ๊ฒฐ์ด ํ์ธ๋๋ฉด ๋ฐ๋ก ๋๋ฒ๊น
์ผ๋ก ๋์ด๊ฐ๋ค. seam์
์ฌ๋์ ๋ช
๋ น๊ณผ ์์ฐ์ด ๋์น๋ฅผ ํจ๊ป ์ธ์ํ๋ค(ํต์ผ ๊ท์น โ
๋ก์ปฌ docs/design/skill-conventions.md(repo ๋ฏธํฌํจ โ maintainer-local) ยง9) โ ์ฌ๋์ ๋ค์์คํ์ด์ค๊ฐ ๊ทธ๋๋ก ์ค์ง ์๋
์์ด์ ํธ์์๋ ์์ฐ์ด ์ชฝ์ด ์ ๊ท ๊ฒฝ๋ก๋ค:
๋ค์ ๋จ๊ณ (๋ช
๋ น์ ๋ชฐ๋ผ๋ ๋ฉ๋๋ค โ ๋ฐ์ดํ ์ ๋ฌธ์ฅ์ ๊ทธ๋๋ก ๋งํด๋ ๊ฐ์ ๋จ๊ณ๋ก ๊ฐ๋๋ค):
/ait:debug # ํ๊ฒฝ 3(relay-staging QR) attach ์งํ
# ๋ง๋ก: "๋ฏธ๋์ฑ์ด ํฐ์์ ์ด์ํ๊ฒ ๋์ํ๋๋ฐ ๋ผ์ด๋ธ ์ํ๋ฅผ ๋๋ฒ๊น
ํ๊ณ ์ถ์ด"
/ait:debug๊ฐ bootstrap ๋๊ตฌ(start_attach ๋ฑ)๋ฅผ ํ์ธํ๊ณ ํ๊ฒฝ 3(relay-staging
QR) attach๋ฅผ ์งํํ๋ค. attach ํ๋ฉด์ด ์์ง ์์ผ๋ฉด /ait:inject-debug-console
๋ฐฐ์ ์ด ์ ํ๋ผ์ผ ํ๋ค.
Out of scope (์ด skill์ด ํ์ง ์๋ ๊ฒ)
- โ ๋๋ฒ๊น
์คํ โ attachยทQRยท๊ด์ธก์
/ait:debug(ยง5). ์ด skill์ ๊ทธ ์ ์ (์๋ฒ ๋ฑ๋ก)๋ง ์ฑ์ด๋ค.
- โ MCP ์๋ฒ ๊ตฌํยท๊ธฐ๋ โ ์๋ฒ๋
@apps-in-toss/debugger(Release tarball)๊ฐ ์ ๊ณตํ๊ณ ,
๊ธฐ๋์ ํธ์คํธ(Claude CodeยทCursor)๊ฐ ๊ทธ ์ค์ ํ์ผ์ ์ฝ์ด ํ๋ค.
- โ ํ๊ฒฝ 3 attach ํ๋ฉด ์ค์น(
@apps-in-toss/debug-console dependencies) โ /ait:inject-debug-console.
- โ user/global scope MCP ๋ฑ๋ก โ ๋๋ฒ๊น
์ ํ๋ก์ ํธ ์ ์ ๋ผ ํ๋ก์ ํธ scope ํ์ผ๋ง
(
.mcp.json/.cursor/mcp.json).
ํ์ง ๋ง์์ผ ํ ๊ฒ
- โ server key
ait-devtools๋ฅผ ๊ฐ๋ช
ํ๊ฑฐ๋ ๋ค๋ฅธ ํค๋ก ์ค๋ณต ๋ฑ๋ก.
- โ ๊ธฐ์กด
.mcp.json์ ๋ค๋ฅธ ์๋ฒ ํญ๋ชฉ์ ์ญ์ ยท์์ .
- โ
args์์ -p ์๋ต(bare npx <Release tarball URL> debugger) โ bin ์ถ๋ก ์คํจ๋ก
MCP ๋ฑ๋ก์ด ์กฐ์ฉํ ๊นจ์ง๋ค.
- โ ๋จธ์ ์ ๋๊ฒฝ๋ก launcher(
node /Users/โฆ/dist/cli.js ๋ฅ) โ ๋จธ์ ์ข
์.
- โ ์ํฌ๋ฆฟ/ํ ํฐ ๊ฐ์
.mcp.json์ด๋ ๋ก๊ทธ์ ๊ธฐ๋ก โ ์ด ์๋ฒ๋ ์ธ์ยทenv ์ํฌ๋ฆฟ์ด ํ์ ์๋ค.
- โ ํธ์คํธ ํ๋ณ ์์ด ๋ ํ์ผ์ ๋ค ์ฐ๊ฑฐ๋ ํ์ชฝ์ ๊ฐ์ผ๋ก ๊ณ ๋ฅด๋ ๊ฒ (2๋จ๊ณ ํ๋ณ์ ๋ฐ๋ฅธ๋ค).
- โ Cursor ํญ๋ชฉ์์
"type": "stdio" ๋๋ฝ โ ๋ฑ๋ก์ด ์กฐ์ฉํ ๋ฌด์๋๋ค.
์ฐธ๊ณ
- ์ง skill:
debug (์ด ๋ฐฐ์ ์ ์๋นํ๋ on-device ๋๋ฒ๊น
), inject
(debug-console facet โ ํ๊ฒฝ 3 attach ํ๋ฉด ์ค์น).
- MCP ๋ฐ๋ชฌ ํจํค์ง:
@apps-in-toss/debugger(debuggerยทdebugger-test bin):
https://github.com/toss/apps-in-toss-harness/tree/main/packages/debugger
- on-device CDP relay ๋๋ฒ๊น
๊ตฌ์กฐยท์ง์
๊ฒฝ๋ก๋ docs MCP(
searchDocumentation/
getPage)๋ก ์กฐํํ๋ค.