How this command is triggered — by the user, by Claude, or both
Slash command
/claude-dev-toolkit:setup-mcpFiles this command reads when invoked
The summary Claude sees in its command listing — used to decide when to auto-load this command
# MCP 보안 설정 셋업
이 프로젝트에 Supabase + Shadcn MCP 서버를 안전하게 설정합니다.
시크릿은 `.claude/settings.local.json`에만 저장되고, `.mcp.json`은 환경변수 참조만 포함합니다.
---
## 0단계: 기존 설정 감지
**먼저 확인할 것**: 프로젝트 루트에 `.mcp.json`이 이미 존재하는지 확인하세요.
- **`.mcp.json`이 이미 있고 `${SUPABASE_PROJECT_ID}` 패턴을 사용 중**: 이미 설정 완료. 사용자에게 "MCP 보안 설정이 이미 완료되어 있습니다. 토큰을 변경하려면 `.claude/settings.local.json`의 `env` 필드를 수정하세요." 안내 후 종료.
- **`.mcp.json`이 이미 있지만 하드코딩된 시크릿 포함**: 사용자에게 "기존 `.mcp.json`에 하드코딩된 시크릿이 있습니다. 환경변수 참조로 전환하시겠습니까?" 확인 후 진행.
- **`.mcp.json`이 없음**: 새로 생성. 아래 단계 진행.
---
## 1단계: 필요한 정보 수집
사용자에게 다음 3가지를 AskUserQuestion으로 질문하세요:
1....이 프로젝트에 Supabase + Shadcn MCP 서버를 안전하게 설정합니다.
시크릿은 .claude/settings.local.json에만 저장되고, .mcp.json은 환경변수 참조만 포함합니다.
먼저 확인할 것: 프로젝트 루트에 .mcp.json이 이미 존재하는지 확인하세요.
.mcp.json이 이미 있고 ${SUPABASE_PROJECT_ID} 패턴을 사용 중: 이미 설정 완료. 사용자에게 "MCP 보안 설정이 이미 완료되어 있습니다. 토큰을 변경하려면 .claude/settings.local.json의 env 필드를 수정하세요." 안내 후 종료..mcp.json이 이미 있지만 하드코딩된 시크릿 포함: 사용자에게 "기존 .mcp.json에 하드코딩된 시크릿이 있습니다. 환경변수 참조로 전환하시겠습니까?" 확인 후 진행..mcp.json이 없음: 새로 생성. 아래 단계 진행.사용자에게 다음 3가지를 AskUserQuestion으로 질문하세요:
ryjokmknthcgufxxgfij)
sbp_...)
github_pat_...)
입력값을 받은 후 반드시 검증하세요:
| 필드 | 검증 규칙 | 실패 시 |
|---|---|---|
| Supabase Project Ref | 영문 소문자 + 숫자, 20자 내외 | "Project Ref 형식이 올바르지 않습니다. Supabase 대시보드에서 확인해주세요." |
| Supabase Access Token | sbp_로 시작 | "Access Token은 sbp_로 시작해야 합니다. https://supabase.com/dashboard/account/tokens 에서 확인해주세요." |
| GitHub PAT | github_pat_ 또는 ghp_로 시작 | "GitHub PAT은 github_pat_ 또는 ghp_로 시작해야 합니다." |
검증 실패 시 해당 항목만 다시 질문하세요.
.mcp.json 생성Bash로 OS를 감지하세요:
uname -s 2>/dev/null || echo "Windows"
Windows (MINGW, MSYS, Windows)인 경우:
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp?project_ref=${SUPABASE_PROJECT_ID}",
"headers": {
"Authorization": "Bearer ${SUPABASE_ACCESS_TOKEN}"
}
},
"shadcn-ui": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@jpisnice/shadcn-ui-mcp-server", "--github-api-key", "${GITHUB_PAT}"]
}
}
}
macOS/Linux인 경우:
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp?project_ref=${SUPABASE_PROJECT_ID}",
"headers": {
"Authorization": "Bearer ${SUPABASE_ACCESS_TOKEN}"
}
},
"shadcn-ui": {
"command": "npx",
"args": ["-y", "@jpisnice/shadcn-ui-mcp-server", "--github-api-key", "${GITHUB_PAT}"]
}
}
}
.claude/settings.local.json에 env 필드 추가중요: 기존 파일이 있으면 env 필드만 추가/업데이트하고, 나머지 필드(permissions, enableAllProjectMcpServers 등)는 절대 건드리지 마세요.
{
"env": {
"SUPABASE_PROJECT_ID": "<사용자 입력값>",
"SUPABASE_ACCESS_TOKEN": "<사용자 입력값>",
"GITHUB_PAT": "<사용자 입력값>"
},
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": ["supabase", "shadcn-ui"]
}
env 필드만 추가/병합 (Edit 사용). 기존 permissions, enableAllProjectMcpServers 등은 그대로 보존..gitignore 확인.claude/settings.local.json이 .gitignore에 포함되어 있는지 확인합니다.
git check-ignore .claude/settings.local.json
출력이 없으면 .gitignore에 추가:
.claude/settings.local.json
다음을 확인합니다:
.mcp.json에 sbp_, github_pat_, ghp_ 등 실제 토큰 문자열이 없는지 (Grep).claude/settings.local.json에 env 필드가 올바른지 (Read)git check-ignore .claude/settings.local.json이 출력되는지 (Bash)모든 검증 통과 시:
MCP 보안 설정이 완료되었습니다. Claude Code를 재시작한 후
/mcp명령어로 Supabase와 Shadcn MCP 서버가 정상 연결되었는지 확인하세요.
검증 실패 시 해당 항목을 수정하고 다시 검증하세요.
npx claudepluginhub michaelcho000/claude-dev-toolkit/setup-mcpRegisters the Lanes MCP server via SSE at localhost:5353, verifies connectivity, and reports status.
/setup-mcpGuides interactive MCP server setup wizard: checks prerequisites like uvx, backs up configs, verifies plugin installation, configures optional API keys.
/setup-mcpWalks through configuring @3d-agent/mcp-server in Claude Desktop, Claude Code, or Cursor — detects platform, collects wallet addresses and optional API keys, then writes or displays the exact JSON snippet.