Claude débogue et corrige son propre bug de serveur de système de fichiers MCP pour les chemins UNC sous Windows

✍️ OpenClawRadar📅 Publié: March 18, 2026🔗 Source
Claude débogue et corrige son propre bug de serveur de système de fichiers MCP pour les chemins UNC sous Windows
Ad

Un développeur a documenté l'utilisation de Claude Opus pour déboguer et corriger un bug dans le MCP Filesystem Server (version Extension Bureau) sous Windows. Le problème affectait les chemins de partage réseau UNC (par exemple, \\serveur\partage\).

Le Problème

Lors de l'utilisation d'un partage UNC comme répertoire autorisé, list_directory sur la racine du partage fonctionnait, mais toute opération sur les sous-répertoires ou fichiers échouait avec une erreur "Accès refusé - chemin en dehors des répertoires autorisés". L'écriture de fichiers à la racine échouait également, malgré le fait que le partage était entièrement accessible depuis l'Explorateur Windows et les lecteurs mappés.

Le Processus de Débogage

Claude a aidé à identifier que :

  • La configuration de la version Extension Bureau est stockée dans %APPDATA%\Claude\Claude Extensions Settings\ant.dir.ant.anthropic.filesystem.json, et non dans claude_desktop_config.json.
  • Basculer vers une lettre de lecteur mappé ne fonctionnait pas car Node.js fs.realpath() résout les lecteurs mappés en chemins UNC lors du démarrage du serveur.
  • Les fichiers sources du serveur (index.jslib.jspath-validation.js) ont été examinés pour trouver la cause racine.

Cause Racine

Dans path-validation.js, la fonction isPathWithinAllowedDirectories() vérifie l'appartenance des sous-répertoires avec :

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

Les racines de partage UNC sont des racines de système de fichiers (comme C:\) et conservent leur barre oblique inverse de fin après normalisation : \\serveur\partage\. Cela crée une double barre oblique inverse de fin (\\serveur\partage\\) qui ne correspond jamais aux chemins réels. Le code avait une gestion spéciale pour les racines de lecteur comme C:\ mais pas pour les racines UNC.

Ad

La Correction

Remplacer la ligne problématique par :

const dirWithSep = normalizedDir.endsWith(path.sep) ? normalizedDir : normalizedDir + path.sep;
return normalizedPath.startsWith(dirWithSep);

Appliquer le correctif avec cette commande PowerShell en une ligne :

$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)

Ensuite, quittez complètement et redémarrez Claude Desktop. Claude a testé lui-même le correctif en utilisant les outils MCP après le redémarrage - listant les sous-répertoires et écrivant un fichier test pour confirmer la fonctionnalité.

Note : Ce correctif sera écrasé si l'extension se met à jour automatiquement. La correction devrait être implémentée en amont dans @modelcontextprotocol/server-filesystem. Problèmes GitHub associés : #1838, #470.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also

W2A — un protocole ouvert pour les capteurs d'agents : donner aux agents locaux une perception en temps réel
Tools

W2A — un protocole ouvert pour les capteurs d'agents : donner aux agents locaux une perception en temps réel

W2A (World2Agent) est un protocole ouvert standardisant la couche de perception pour les agents IA — auto-hébergeable, SDK TypeScript, Apache 2.0. Il permet aux agents de recevoir des signaux en temps réel de capteurs sans scripts ponctuels.

OpenClawRadar
Serveur MCP pour la Recherche Sémantique dans les Vaults Obsidian
Tools

Serveur MCP pour la Recherche Sémantique dans les Vaults Obsidian

Un développeur a créé un serveur MCP qui indexe les coffres Obsidian dans Qdrant avec des embeddings locaux, permettant une recherche sémantique au lieu d'une correspondance par mots-clés. Il segmente le markdown par titres, utilise les embeddings BAAI/bge-small-en-v1.5, et fonctionne avec Claude Code, Cursor, Windsurf, ou tout client MCP.

OpenClawRadar
Exploration du sandbox-exec de macOS pour une exécution sécurisée des applications
Tools

Exploration du sandbox-exec de macOS pour une exécution sécurisée des applications

sandbox-exec est un utilitaire en ligne de commande intégré à macOS qui permet d'exécuter des applications dans un environnement restreint. Découvrez comment l'utiliser avec des profils de bac à sable personnalisés.

OpenClawRadar
Claude Cowork contre OpenClaw : Où le récit du remplacement tient et où il se brise
Tools

Claude Cowork contre OpenClaw : Où le récit du remplacement tient et où il se brise

Claude Cowork propose des sessions de bureau persistantes avec une faible friction, tandis qu'OpenClaw conserve ses avantages en matière d'automatisation au niveau système, d'écosystèmes de compétences et de contrôle des flux de travail.

OpenClawRadar