File System MCP Server
Un servidor para la gestión integral de archivos y directorios en el sistema de archivos local.
Documentación
File System MCP Server
Un potente servidor de gestión del sistema de archivos construido con FastMCP que proporciona un conjunto completo de herramientas para operaciones con archivos y directorios. Este servidor le permite realizar diversas operaciones del sistema de archivos a través de una API estructurada, lo que lo hace ideal para la automatización y la integración con otros sistemas.
Soporte de plataforma
El servidor está diseñado para funcionar en diferentes sistemas operativos, pero con distintos niveles de funcionalidad:
Windows
- Soporte completo de funciones
- Listado de unidades
- Acceso a carpetas especiales
- Manejo de rutas específico de Windows
- Información detallada del sistema
macOS/Linux
- Operaciones básicas de archivos
- Operaciones con directorios
- Búsqueda de archivos y metadatos
- Información básica del sistema
- Nota: Algunas funciones específicas de Windows no están disponibles
Implementación futura
Soporte planificado para macOS
- Manejo nativo de rutas para macOS
- Recuperación de información del sistema específica de macOS
- Integración con las funciones del sistema de archivos de macOS
- Soporte para atributos de archivo específicos de macOS
- Implementación de utilidades específicas de macOS (similar a windows_utils.py)
Soporte planificado para Linux
- Manejo nativo de rutas para Linux
- Recuperación de información del sistema específica de Linux
- Integración con las funciones del sistema de archivos de Linux
- Soporte para permisos y atributos de archivos de Linux
- Implementación de utilidades específicas de Linux
Mejoras multiplataforma
- Sistema unificado de manejo de rutas
- Detección de unidades independiente de la plataforma
- API de información del sistema coherente
- Atributos de archivo estandarizados entre plataformas
- Monitoreo de eventos del sistema de archivos multiplataforma
- Sistema universal de recopilación de archivos
Cronograma
- Fase 1: Mejoras básicas de compatibilidad multiplataforma
- Fase 2: Implementaciones de funciones específicas de la plataforma
- Fase 3: Funciones avanzadas multiplataforma
- Fase 4: Optimizaciones y refinamientos de rendimiento
Funciones
Operaciones con archivos
- Copiar archivos con soporte de copia de seguridad
- Mover archivos con soporte de copia de seguridad
- Eliminar archivos con comprobaciones de seguridad
- Leer contenido de archivos
- Escribir contenido en archivos
- Obtener información del archivo (tamaño, hora de creación, hora de modificación)
- Buscar archivos por patrón de nombre
- Crear colecciones de archivos para organizar archivos relacionados
Operaciones con directorios
- Listar contenido de directorios
- Crear directorios
- Eliminar directorios
- Listar directorios de forma recursiva (estructura tipo árbol)
- Buscar directorios por patrón de nombre
Información del sistema
- Obtener información del sistema (SO, CPU, memoria, uso de disco)
- Obtener información del disco (espacio total, espacio usado, espacio libre)
- Obtener información del directorio (número de archivos, tamaño total)
Estructura del proyecto
file-system-mcp-server/
├── fs_server.py # Main server implementation
├── windows_utils.py # Windows-specific utilities (Windows only)
├── requirements.txt # Project dependencies
└── test_prompts_example.md # Example test prompts
Almacenamiento de colecciones
Las colecciones se pueden almacenar en cualquier directorio especificado por el usuario. Si no se especifica una ubicación de almacenamiento, las colecciones se guardarán en una ubicación predeterminada dentro del directorio data/collections del proyecto.
Ejemplo de uso:
# Store in default location
create_collection("my_collection", ["file1.txt", "file2.txt"])
# Store in custom location
create_collection("my_collection", ["file1.txt", "file2.txt"], storage_path="/path/to/store")
Dependencias
Dependencias requeridas
- FastMCP
- Pydantic
- pywin32 (solo Windows)
- WMI (solo Windows)
Para instalar las dependencias:
pip install -r requirements.txt
Configuración
- Clone el repositorio:
git clone https://github.com/calebmwelsh/file-system-mcp-server.git
cd file-system-mcp-server
- Cree y active un entorno virtual:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Instale las dependencias:
pip install -r requirements.txt
Uso
Para obtener instrucciones detalladas de configuración de MCP en diferentes entornos de desarrollo (Claude, Cursor, Windsurf), visite: Guía de configuración de MCP
Integración con Claude
Para integrar el servidor MCP del sistema de archivos con Claude, agregue lo siguiente a su archivo claude_desktop_config.json:
{
"mcpServers": {
"file-system": {
"command": "/absolute/path/to/python",
"args": [
"/absolute/path/to/file-system-mcp-server/fs_server.py"
]
}
}
}
Encontrar su ruta de Python
Para encontrar la ruta de su ejecutable de Python, use el siguiente comando:
Windows (PowerShell):
(Get-Command python).Source
Windows (Símbolo del sistema/Terminal):
where python
Linux/macOS (Terminal):
which python
Reemplace /absolute/path/to/python con el resultado del comando apropiado anterior.
Ejemplo de configuración
Para Windows, su configuración podría verse así:
{
"mcpServers": {
"file-system": {
"command": "C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python39\\python.exe",
"args": [
"C:\\Users\\YourUsername\\Documents/file-system-mcp-server/fs_server.py"
]
}
}
}
Para macOS/Linux:
{
"mcpServers": {
"file-system": {
"command": "/usr/local/bin/python3",
"args": [
"/Users/YourUsername/Documents/file-system-mcp-server/fs_server.py"
]
}
}
}
Después de agregar la configuración:
- Guarde el archivo
claude_desktop_config.json - Reinicie Claude
- Ahora puede usar las herramientas del sistema de archivos pidiéndole a Claude que realice operaciones con archivos
Herramientas disponibles
Operaciones con archivos
copy_file: Copiar un archivo con copia de seguridad opcionalmove_file: Mover un archivo con copia de seguridad opcionaldelete_file: Eliminar un archivo con comprobaciones de seguridadread_file: Leer el contenido de un archivowrite_file: Escribir contenido en un archivoget_file_info: Obtener información detallada del archivosearch_files: Buscar archivos por patrón de nombrecreate_collection: Crear una colección de archivos
Operaciones con directorios
list_directory: Listar el contenido de un directoriocreate_directory: Crear un nuevo directoriodelete_directory: Eliminar un directoriolist_directory_recursively: Mostrar la estructura del directorio en formato de árbolsearch_directories: Buscar directorios por patrón de nombre
Información del sistema
get_system_info: Obtener información del sistemaget_disk_info: Obtener información de uso del discoget_directory_info: Obtener estadísticas del directorio
Problemas conocidos
Actualmente, las siguientes funciones presentan problemas y pueden no funcionar como se espera:
-
Función de eliminar archivo
- La función
delete_filepuede fallar al eliminar archivos correctamente en algunos casos - Se recomienda verificar la eliminación del archivo manualmente o usar métodos alternativos cuando sea crítico
- El problema está bajo investigación y se corregirá en una futura actualización
- La función
-
Función de listar unidades
- La función
list_drivespuede no detectar ni mostrar correctamente todas las unidades disponibles - Algunas unidades pueden faltar en la lista o mostrar información incorrecta
- Esta es una limitación conocida y se abordará en futuras actualizaciones
- La función
-
Limitaciones específicas de la plataforma
- Las funciones específicas de Windows no están disponibles en macOS/Linux
- Algunos manejos de rutas pueden diferir entre plataformas
- La recuperación de información del sistema varía según la plataforma
Manejo de errores
El servidor incluye un manejo integral de errores para:
- Rutas de archivo no válidas
- Archivo/directorio no encontrado
- Problemas de permisos
- Limitaciones de espacio en disco
- Operaciones no válidas
- Errores específicos de la plataforma
Seguridad
- Todas las operaciones con archivos incluyen validación de rutas
- Se crean copias de seguridad antes de operaciones destructivas
- El acceso a la información del sistema está restringido a operaciones seguras
- Las operaciones con archivos se realizan con un manejo de errores adecuado
Contribución
- Haga un fork del repositorio
- Cree una rama de características
- Realice sus cambios
- Envíe la rama
- Cree una solicitud de extracción (Pull Request)
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.
Agradecimientos
- Construido con FastMCP
- Utiliza Pydantic para la validación de datos
- Inspirado en herramientas modernas de gestión del sistema de archivos