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

MCP + Cadre de compétences : Guider les agents IA pour des flux de travail efficaces en science des données
Tools

MCP + Cadre de compétences : Guider les agents IA pour des flux de travail efficaces en science des données

Une approche pratique utilisant le serveur MCP et un framework de compétences pour guider les agents Claude/GPT vers des workflows de science des données efficaces et conscients de la plateforme — évitant le code lourd côté client et les mouvements de données inutiles.

OpenClawRadar
Meta Ads MCP OAuth fonctionne, mais la plupart des comptes publicitaires ne sont pas encore activés
Tools

Meta Ads MCP OAuth fonctionne, mais la plupart des comptes publicitaires ne sont pas encore activés

Le flux OAuth de Meta Ads MCP fonctionne et charge 29 outils, mais ads_get_ad_accounts renvoie is_ads_mcp_enabled: false avec un message indiquant que la fonctionnalité est déployée progressivement.

OpenClawRadar
Homme des cavernes : Une Compétence de Code Claude Qui Réduit de 75 % les Tokens en Utilisant un Discours de Style Homme des Cavernes
Tools

Homme des cavernes : Une Compétence de Code Claude Qui Réduit de 75 % les Tokens en Utilisant un Discours de Style Homme des Cavernes

Caveman est une compétence Claude Code qui réduit l'utilisation de tokens d'environ 75 % en faisant répondre Claude dans un style concis, semblable à celui d'un homme des cavernes, tout en conservant une précision technique complète. Il est installé via npx ou le marché des plugins Claude.

OpenClawRadar
Open Source Claude Code Skills pour un Contenu de Réseaux Sociaux Personnalisé
Tools

Open Source Claude Code Skills pour un Contenu de Réseaux Sociaux Personnalisé

Un développeur a mis en open source 13 compétences Claude Code qui aident Claude à rédiger du contenu pour les réseaux sociaux avec votre propre voix. Les compétences incluent des outils de définition du contexte, de stratégie, de création et d'analyse pour LinkedIn, Twitter/X, Threads et Bluesky.

OpenClawRadar