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

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 dansclaude_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.js→lib.js→path-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.
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
👀 See Also

certctl : Plateforme de gestion du cycle de vie des certificats auto-hébergée, offrant 78 points d'API pour l'automatisation par agents IA.
certctl est une plateforme de gestion du cycle de vie des certificats auto-hébergée, développée en Go et TypeScript, qui expose 78 points d'API REST pour la gestion des certificats. La plateforme est indépendante des émetteurs et des cibles, avec un serveur MCP prévu pour exposer toutes les fonctionnalités en tant qu'outils MCP natifs.

Stagent : Couche opérationnelle open-source pour le SDK Agent Claude avec gouvernance locale et orchestration de flux de travail
Stagent est un espace de coordination open-source, local-first, construit sur le SDK Agent Claude et l'API Claude, qui fournit l'orchestration des workflows, des garde-fous budgétaires et une gouvernance avec intervention humaine pour les agents IA. Il comprend 15 interfaces produit, 6 modèles de workflow, plus de 52 profils d'agents réutilisables, et fonctionne entièrement en local avec SQLite.

Le Plugin Claude Compact Guard Utilise le Nouveau Crochet PostCompact pour Préserver le Contexte
Un développeur a publié claude-compact-guard, un plugin qui sauvegarde automatiquement le contexte critique avant que la commande /compact de Claude ne le détruise, puis réinjecte tout après. Il utilise le nouveau crochet PostCompact d'Anthropic publié il y a 4 jours.

Compteur de Jetons Claude Mis à Jour avec Fonction de Comparaison de Modèles
L'outil Claude Token Counter de Simon Willison prend désormais en charge la comparaison des nombres de tokens entre différents modèles Claude. La mise à jour révèle qu'Opus 4.7 utilise 1,0 à 1,35 fois plus de tokens qu'Opus 4.6 en raison d'un tokeniseur mis à jour, ce qui pourrait augmenter les coûts d'environ 40 % malgré un tarif identique.