Files
WhiteMan_Unity2D/fix-mcp-key.ps1

51 lines
1.9 KiB
PowerShell

# Claude Code 를 완전히 종료한 뒤 일반 PowerShell 창에서 실행하세요.
# .claude.json 의 대/소문자 중복 프로젝트 키를 소문자 하나로 통일하고
# UnityMCP 서버 설정을 보존합니다.
$path = Join-Path $env:USERPROFILE ".claude.json"
$upper = "C:/repos/UnityProject/WhiteMan_Unity2D"
$lower = "c:/repos/UnityProject/WhiteMan_Unity2D"
# 백업
Copy-Item $path "$path.bak" -Force
Write-Host "백업 생성: $path.bak"
$json = Get-Content $path -Raw -Encoding UTF8 | ConvertFrom-Json
$projects = $json.projects
$unityMcp = $null
if ($projects.PSObject.Properties.Name -contains $upper) {
$unityMcp = $projects.$upper.mcpServers.UnityMCP
}
if ($null -eq $unityMcp -and ($projects.PSObject.Properties.Name -contains $lower)) {
$unityMcp = $projects.$lower.mcpServers.UnityMCP
}
if ($null -eq $unityMcp) {
Write-Warning "UnityMCP 설정을 찾지 못했습니다. 중단합니다."
return
}
# 소문자 키가 없으면 대문자 항목을 그대로 옮겨 사용
if (-not ($projects.PSObject.Properties.Name -contains $lower)) {
$projects | Add-Member -NotePropertyName $lower -NotePropertyValue $projects.$upper
}
# 소문자 키에 UnityMCP 보장
if ($null -eq $projects.$lower.mcpServers) {
$projects.$lower | Add-Member -NotePropertyName "mcpServers" -NotePropertyValue ([pscustomobject]@{}) -Force
}
$projects.$lower.mcpServers | Add-Member -NotePropertyName "UnityMCP" -NotePropertyValue $unityMcp -Force
# 대문자 중복 항목 제거
if ($projects.PSObject.Properties.Name -contains $upper) {
$projects.PSObject.Properties.Remove($upper)
}
# UTF-8 (BOM 없음) 으로 저장
$out = $json | ConvertTo-Json -Depth 100
[System.IO.File]::WriteAllText($path, $out, (New-Object System.Text.UTF8Encoding($false)))
Write-Host "완료. 대문자 키 제거 + 소문자 키에 UnityMCP 통일됨."
Write-Host "이제 Claude Code 를 다시 실행하세요."