File Operations MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Servidor MCP de operaciones de archivos

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades mejoradas de operación de archivos con soporte de transmisión, parches y seguimiento de cambios.

Características

  • Operaciones básicas de archivos : copiar, leer, escribir, mover y eliminar archivos
  • Operaciones de directorio : crear, eliminar y copiar directorios
  • Vigilancia de archivos : supervise archivos y directorios para detectar cambios
  • Seguimiento de cambios : seguimiento y consulta del historial de operaciones de archivos
  • Soporte de transmisión : gestione archivos grandes de manera eficiente con la transmisión
  • Soporte de recursos : acceda a archivos y directorios a través de recursos MCP
  • Informes de progreso : actualizaciones de progreso en tiempo real para operaciones largas
  • Limitación de velocidad : protección contra solicitudes excesivas
  • Seguridad mejorada : validación de rutas y saneamiento de entradas
  • Manejo robusto de errores : manejo y generación de informes de errores integrales
  • Seguridad de tipos : compatibilidad total con TypeScript con verificación de tipos estricta

Instalación

Instalación mediante herrería

Para instalar File Operations Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @bsmi021/mcp-file-operations-server --client claude

Instalación manual

npm install

Uso

Iniciando el servidor

npm start

Para desarrollo con recarga automática:

npm run dev

Herramientas disponibles

Operaciones básicas con archivos

  • copy_file : Copiar un archivo a una nueva ubicación
  • read_file : Leer el contenido de un archivo
  • write_file : Escribe contenido en un archivo
  • move_file : Mover/renombrar un archivo
  • delete_file : Eliminar un archivo
  • append_file : Anexar contenido a un archivo

Operaciones de directorio

  • make_directory : Crea un directorio
  • remove_directory : Eliminar un directorio
  • copy_directory : Copiar un directorio recursivamente (con informes de progreso)

Operaciones de vigilancia

  • watch_directory : Comienza a vigilar un directorio en busca de cambios
  • unwatch_directory : dejar de vigilar un directorio

Seguimiento de cambios

  • get_changes : Obtener la lista de cambios registrados
  • clear_changes : Borrar todos los cambios registrados

Recursos disponibles

Recursos estáticos

  • file:///recent-changes : Lista de cambios recientes del sistema de archivos

Plantillas de recursos

  • file://{path} : Acceder al contenido del archivo
  • metadata://{path} : Acceder a los metadatos del archivo
  • directory://{path} : Lista el contenido del directorio

Ejemplo de uso

// Copy a file await fileOperations.copyFile({ source: 'source.txt', destination: 'destination.txt', overwrite: false }); // Watch a directory await fileOperations.watchDirectory({ path: './watched-dir', recursive: true }); // Access file contents through resource const resource = await mcp.readResource('file:///path/to/file.txt'); console.log(resource.contents[0].text); // Copy directory with progress tracking const result = await fileOperations.copyDirectory({ source: './source-dir', destination: './dest-dir', overwrite: false }); // Progress token in result can be used to track progress console.log(result.progressToken);

Límites de velocidad

El servidor implementa una limitación de velocidad para evitar abusos:

  • Herramientas : 100 solicitudes por minuto
  • Recursos : 200 solicitudes por minuto
  • Operaciones del reloj : 20 operaciones por minuto

Los errores de límite de velocidad incluyen un período de reintento en el mensaje de error.

Características de seguridad

Validación de ruta

Todas las rutas de archivos se validan para evitar ataques de recorrido de directorio:

  • No hay referencias al directorio padre ( ../ )
  • Normalización de trayectoria adecuada
  • Sanitización de entrada

Protección de recursos

  • Limitación de velocidad en todas las operaciones
  • Manejo y registro de errores adecuados
  • Validación de entrada en todos los parámetros
  • Limpieza segura de recursos

Informes de progreso

Las operaciones de larga duración, como la copia de directorios, proporcionan actualizaciones de progreso:

interface ProgressUpdate { token: string | number; message: string; percentage: number; }

El progreso se puede seguir a través del token de progreso devuelto en el resultado de la operación.

Desarrollo

Edificio

npm run build

Pelusa

npm run lint

Formato

npm run format

Pruebas

npm test

Configuración

El servidor se puede configurar a través de varios ajustes:

  • Limitación de velocidad : configure límites de solicitud y ventanas
  • Informes de progreso : control de la frecuencia de actualización y el nivel de detalle
  • Acceso a recursos : configurar permisos y límites de recursos
  • Configuración de seguridad : configurar reglas de validación de ruta
  • Seguimiento de cambios : establezca períodos de retención y opciones de almacenamiento
  • Configuración del reloj : configure los tiempos de rebote y la observación recursiva

Manejo de errores

El servidor proporciona información detallada de errores a través de la clase FileOperationError y los códigos de error MCP:

Códigos de error MCP estándar

  • InvalidRequest : Parámetros o formato de solicitud no válidos
  • MethodNotFound : Herramienta o recurso desconocido solicitado
  • InvalidParams : parámetros no válidos (por ejemplo, error de validación de ruta)
  • InternalError : Errores del lado del servidor

Tipos de errores personalizados

  • Errores en la operación de archivos
  • Límite de velocidad excedido
  • Errores de validación de ruta
  • Errores de acceso a recursos

Cada error incluye:

  • Código de error específico
  • Mensaje de error detallado
  • Metadatos relevantes (rutas de archivos, límites, etc.)
  • Rastreos de pila en modo de desarrollo

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor de protocolo de contexto de modelo que permite operaciones mejoradas del sistema de archivos, incluyendo lectura, escritura, copia, movimiento de archivos con capacidades de transmisión, administración de directorios, observación de archivos y seguimiento de cambios.

  1. Features
    1. Installation
      1. Installing via Smithery
      2. Manual Installation
    2. Usage
      1. Starting the Server
      2. Available Tools
      3. Available Resources
      4. Example Usage
    3. Rate Limits
      1. Security Features
        1. Path Validation
        2. Resource Protection
      2. Progress Reporting
        1. Development
          1. Building
          2. Linting
          3. Formatting
          4. Testing
        2. Configuration
          1. Error Handling
            1. Standard MCP Error Codes
            2. Custom Error Types
          2. Contributing
            1. License
              ID: 7b750si00d