ClaudeがWindowsのUNCパスバグを自らデバッグし、自社のMCPファイルシステムサーバーを修正

開発者が、Windows上のMCP Filesystem Server(デスクトップ拡張機能バージョン)のバグをデバッグして修正するために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 Desktopを完全に終了して再起動します。Claudeは再起動後にMCPツールを使用して修正を自身でテストし、サブディレクトリの一覧表示とテストファイルの書き込みで機能を確認しました。
注意:このパッチは拡張機能が自動更新されると上書きされます。修正は@modelcontextprotocol/server-filesystemで上流に実装されるべきです。関連するGitHubイシュー:#1838、#470。
📖 Read the full source: r/ClaudeAI
👀 See Also

Pu.sh: HNから得た400行のシェルスクリプトコーディングエージェントハーネス
Pu.shは、400行のシェル(sh, curl, awk)で書かれたポータブルなコーディングエージェントハーネスで、Anthropic + OpenAI、7つのツール、REPL、チェックポイント/レジューム、パイプモードをサポートし、90のAPI不要のテストを備えています。

推論ガード:ローカルLLM推論のためのプロキシレベルループ検出
vLLMプロキシの背後でQwen3.6 MoEを実行している開発者が、一般的な信頼性の問題に遭遇しました。それは、モデルが推論ブロック内で自身を繰り返し、トークンを消費し、エージェントを停止させる暴走推論ループです。180トークン/秒で動作する場合、20〜30秒のループでもGPU時間を浪費し、クライアントリクエストをブロックします。彼らはプロキシ層に常駐し、クライアントに到達する前にストリーミング出力に対して決定論的チェックを実施する軽量ガードを構築しました。

パンゴリン:ZTNAの代替としてのオープンソースのアイデンティティベースVPN
Pangolinは、アイデンティティベースのリモートアクセスに特化したオープンソースVPNであり、Cloudflare ZTNA、Zscaler、Twingateに代わる選択肢を提供します。

Kubeez MCPサーバーがClaudeを70以上のAIメディアモデルに接続します
Kubeezは、Claudeを画像、動画、音楽、音声生成のための70以上のAIモデルに接続するMCPサーバーをリリースしました。このサーバーはOAuth認証をサポートし、非同期生成を提供し、Claudeがステータスをポーリングして完了時にCDN URLを返します。