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

✍️ OpenClawRadar📅 公開日: March 18, 2026🔗 Source
ClaudeがWindowsのUNCパスバグを自らデバッグし、自社のMCPファイルシステムサーバーを修正
Ad

開発者が、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.jslib.jspath-validation.js)が調査されました。

根本原因

path-validation.js内の関数isPathWithinAllowedDirectories()は、以下のコードでサブディレクトリの所属をチェックしていました:

return normalizedPath.startsWith(normalizedDir + path.sep);

UNC共有ルートはファイルシステムのルート(C:\のような)であり、正規化後も末尾のバックスラッシュを保持します:\\server\share\。これにより二重の末尾バックスラッシュ(\\server\share\\)が生成され、実際のパスと一致しなくなります。コードにはC:\のようなドライブルートの特別な処理がありましたが、UNCルートの処理はありませんでした。

Ad

修正方法

問題のある行を以下に置き換えます:

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

Ad

👀 See Also

クロード・スルース:Claude AIのための56タスク調査ワークフロー
Tools

クロード・スルース:Claude AIのための56タスク調査ワークフロー

Claude Sleuthは、Claude AI向けの構造化された調査ワークフローで、6つのフェーズと56のタスクを備え、Cloudflare D1による永続的な状態保存と、ISO 8601タイムスタンプ、POLEエンティティレコード、ICD 203確率表現を含む標準化された出力規約を特徴としています。

OpenClawRadar
iai-mcp: セッションをまたいだ持続的なOpenClawメモリのためのローカルデーモン
Tools

iai-mcp: セッションをまたいだ持続的なOpenClawメモリのためのローカルデーモン

iai-mcpは、すべてのOpenClawの会話をキャプチャし、ローカルのニューラル埋め込みとAES-256暗号化を用いて3つのメモリ階層に保存し、新しいセッションで関連するコンテキストをフィードバックするオープンソースのデーモンです。逐語的再現率>99%、検索<100ms、セッション開始時のトークンコスト<3k。

OpenClawRadar
Snip: オープンソースツールがYAMLフィルターでClaude Codeのトークン使用量を削減
Tools

Snip: オープンソースツールがYAMLフィルターでClaude Codeのトークン使用量を削減

SnipはGoで書かれたオープンソースツールで、Claude Codeのトークン使用量を60〜90%削減します。これは、シェルコマンドの出力がコンテキストウィンドウに到達する前にフィルタリングすることで実現します。rtk(Rust Token Killer)に触発されていますが、異なるアプローチを取っています:フィルターはコンパイルされたコードではなく、データ(YAMLファイル)です。

OpenClawRadar
オープンクロー・エージェントのためのアイデンティティと評判レイヤー
Tools

オープンクロー・エージェントのためのアイデンティティと評判レイヤー

開発者チームは、マルチステップのエージェントワークフローにおけるアイデンティティ消失の問題を解決するためにMCP-IとIdentiClawを構築し、さらに評判レジストリとしてknowthat.aiを開発しました。彼らはMCP-I仕様を分散型アイデンティティ財団に寄贈しました。

OpenClawRadar