클로드는 윈도우에서 자체 MCP 파일시스템 서버의 UNC 경로 버그를 디버깅하고 수정합니다

개발자가 Windows에서 MCP 파일시스템 서버(데스크톱 확장 버전)의 버그를 디버깅하고 수정하기 위해 Claude Opus를 사용한 과정을 문서화했습니다. 이 문제는 UNC 네트워크 공유 경로(예: \\server\share\)에 영향을 미쳤습니다.
문제점
UNC 공유를 허용된 디렉터리로 사용할 때, 공유 루트에서의 list_directory는 작동했지만, 하위 디렉터리나 파일에 대한 모든 작업이 "접근 거부 - 허용된 디렉터리 외부 경로" 오류로 실패했습니다. Windows 탐색기와 매핑된 드라이브에서는 공유에 완전히 접근할 수 있었음에도 불구하고, 루트에 파일 쓰기도 실패했습니다.
디버깅 과정
Claude는 다음과 같은 사항을 파악하는 데 도움을 주었습니다:
- 데스크톱 확장 버전의 구성은
claude_desktop_config.json이 아닌%APPDATA%\Claude\Claude Extensions Settings\ant.dir.ant.anthropic.filesystem.json에 저장됩니다. - 매핑된 드라이브 문자로 전환하는 것은 작동하지 않았는데, Node.js
fs.realpath()가 서버 시작 시 매핑된 드라이브를 다시 UNC 경로로 해석하기 때문입니다. - 근본 원인을 찾기 위해 서버 소스 파일(
index.js→lib.js→path-validation.js)을 검토했습니다.
근본 원인
path-validation.js에서, isPathWithinAllowedDirectories() 함수는 하위 디렉터리 소속을 다음과 같이 확인합니다:
return normalizedPath.startsWith(normalizedDir + path.sep);UNC 공유 루트는 파일시스템 루트(예: C:\)와 같으며, 정규화 후에도 후행 백슬래시를 유지합니다: \\server\share\. 이로 인해 이중 후행 백슬래시(\\server\share\\)가 생성되어 실제 경로와 절대 일치하지 않습니다. 코드에는 C:\와 같은 드라이브 루트에 대한 특별 처리가 있었지만, UNC 루트에는 없었습니다.
수정 방법
문제가 있는 줄을 다음으로 교체합니다:
const dirWithSep = normalizedDir.endsWith(path.sep) ? normalizedDir : normalizedDir + path.sep;
return normalizedPath.startsWith(dirWithSep);이 PowerShell 한 줄 명령어로 패치를 적용합니다:
$file = "$env:APPDATA\Claude\Claude Extensions\ant.dir.ant.anthropic.filesystem\node_modules\@modelcontextprotocol\server-filesystem\dist\path-validation.js"
Copy-Item $file "$HOME\Desktop\path-validation.js.backup"
$content = Get-Content $file -Raw
$content = $content.Replace(
'return normalizedPath.startsWith(normalizedDir + path.sep);',
'const dirWithSep = normalizedDir.endsWith(path.sep) ? normalizedDir : normalizedDir + path.sep; return normalizedPath.startsWith(dirWithSep);'
)
[System.IO.File]::WriteAllText($file, $content)그런 다음 Claude 데스크톱을 완전히 종료하고 다시 시작합니다. Claude는 재시작 후 MCP 도구를 사용하여 수정 사항을 직접 테스트했습니다—하위 디렉터리 목록을 확인하고 테스트 파일을 작성하여 기능을 확인했습니다.
참고: 이 패치는 확장이 자동 업데이트되면 덮어쓰여질 것입니다. 수정 사항은 @modelcontextprotocol/server-filesystem에서 상위 수준으로 구현되어야 합니다. 관련 GitHub 이슈: #1838, #470.
📖 전체 소스 읽기: r/ClaudeAI
👀 See Also

프로덕션 AI IDE에서 Ollama를 지원하는 다중 제공자 LLM 폴백 체인
Resonant Genesis AI IDE는 Groq, OpenAI, Anthropic, Gemini와 함께 로컬 LLM 지원을 1급 제공자로 통합하여 30개 이상의 마이크로서비스에서 공유된 UnifiedLLMClient 라이브러리와 자동 폴백 체인을 사용합니다.

에이전트 컨텍스트 엔진: 34.2% 정확도 향상과 함께하는 자동화된 에이전트 개선 루프
오픈소스 도구가 추적 분석부터 수정 구현까지 에이전트 개선 루프 전체를 자동화하여, Tau-2 벤치에서 한 번의 반복으로 34.2% 정확도 향상을 달성했습니다. 이 시스템은 REPL 환경에서 Claude Code를 사용하여 실패를 분석하고 프롬프트 수정 또는 코드 수정 중 선택합니다.

cstat: Claude Code를 위한 2ms 성능의 네이티브 Rust 상태 표시줄
cstat은 네이티브 Rust 바이너리로, 24개의 서브프로세스 생성 제거를 통해 claude-hud의 62ms 상태 표시줄을 2ms 구현으로 대체합니다. 모델 정보, 속도 제한, git 상태, 컨텍스트 창 사용량, 활성 도구, 서브에이전트 및 작업 진행 상황을 표시합니다.

Skillware는 Claude API 에이전트 루프에서 결정론적 토큰 압축을 위해 prompt_rewriter를 추가합니다.
Skillware는 Claude API로 보내기 전에 프롬프트를 50-80% 압축하는 새로운 prompt_rewriter 스킬을 통합하여, 에이전트 루프에서 비용을 줄이면서 결정론적 압축을 통해 안정적인 동작을 유지합니다.