Claude Depura y Corrige Su Propio Error de Ruta UNC del Servidor de Sistema de Archivos MCP en Windows

Un desarrollador documentó el uso de Claude Opus para depurar y corregir un error en el MCP Filesystem Server (versión de extensión de escritorio) en Windows. El problema afectaba a las rutas de recursos compartidos UNC (por ejemplo, \\servidor\recurso\).
El Problema
Al usar un recurso compartido UNC como directorio permitido, list_directory en la raíz del recurso funcionaba, pero cualquier operación en subdirectorios o archivos fallaba con un error "Acceso denegado - ruta fuera de los directorios permitidos". Escribir archivos en la raíz también fallaba, a pesar de que el recurso era completamente accesible desde el Explorador de Windows y las unidades mapeadas.
El Proceso de Depuración
Claude ayudó a identificar que:
- La configuración para la versión de extensión de escritorio se almacena en
%APPDATA%\Claude\Claude Extensions Settings\ant.dir.ant.anthropic.filesystem.json, no enclaude_desktop_config.json. - Cambiar a una letra de unidad mapeada no funcionaba porque Node.js
fs.realpath()resuelve las unidades mapeadas de vuelta a rutas UNC durante el inicio del servidor. - Se examinaron los archivos fuente del servidor (
index.js→lib.js→path-validation.js) para encontrar la causa raíz.
Causa Raíz
En path-validation.js, la función isPathWithinAllowedDirectories() verifica la pertenencia de subdirectorios con:
return normalizedPath.startsWith(normalizedDir + path.sep);Las raíces de recursos compartidos UNC son raíces del sistema de archivos (como C:\) y conservan su barra invertida final después de la normalización: \\servidor\recurso\. Esto crea una doble barra invertida final (\\servidor\recurso\\) que nunca coincide con las rutas reales. El código tenía manejo especial para raíces de unidad como C:\ pero no para raíces UNC.
La Solución
Reemplazar la línea problemática con:
const dirWithSep = normalizedDir.endsWith(path.sep) ? normalizedDir : normalizedDir + path.sep;
return normalizedPath.startsWith(dirWithSep);Aplicar el parche con esta línea única de 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)Luego cerrar completamente y reiniciar Claude Desktop. Claude probó la solución por sí mismo usando herramientas MCP después de reiniciar—listando subdirectorios y escribiendo un archivo de prueba para confirmar la funcionalidad.
Nota: Este parche se sobrescribirá si la extensión se actualiza automáticamente. La solución debe implementarse aguas arriba en @modelcontextprotocol/server-filesystem. Problemas relacionados en GitHub: #1838, #470.
📖 Leer la fuente completa: r/ClaudeAI
👀 Ver también

Claudlytics: Panel Autohospedado para Rastrear el Uso de Tokens de Código y Costos de Claude
Claudlytics es un servidor web Node.js que lee los archivos de sesión locales .jsonl de Claude Code para proporcionar un seguimiento en tiempo real del uso de tokens y costos. Se ejecuta localmente en 127.0.0.1 y se puede acceder a través de un túnel SSH para servidores remotos.

Integrando Agentes LLM Locales con ComfyUI para la Generación de Imágenes por Lotes en Lenguaje Natural
Un desarrollador comparte cómo conectó su agente local de OpenClaw a ComfyUI, permitiendo comandos en lenguaje natural para flujos de trabajo de generación de imágenes por lotes. La integración utiliza una habilidad personalizada del agente que mapea solicitudes en inglés a JSON de flujo de trabajo de ComfyUI y maneja la comunicación API.

Beagle SCM: Un Sistema de Gestión de Código Fuente que Almacena Árboles AST
Beagle es un sistema experimental de gestión de código fuente que almacena árboles de sintaxis abstracta en lugar de blobs binarios, utilizando un formato de datos similar a CRDT llamado BASON y respaldando el almacenamiento con bases de datos clave-valor como RocksDB.

Marco de Indicación Visual Reemplaza Indicaciones de Texto con una Sola Imagen para Claude AI
El Principio de Capacidad de Carga v9 es un marco estructural bidireccional que utiliza una única imagen de diagrama de flujo en lugar de indicaciones de texto para Claude AI. Proporciona diagnósticos estructurales o planes de construcción generativos basados en parámetros del sistema u objetivos.