FilerMoverMcp

Una herramienta de movimiento de archivos que prepara y ejecuta traslados de archivos de forma segura. Funciona tanto como herramienta CLI como servidor MCP para agentes de IA.

Documentación

FileMoverMcp

Tests NuGet Version NuGet Downloads License: MIT

Una herramienta de movimiento de archivos que prepara y ejecuta movimientos de archivos de forma segura. Funciona tanto como herramienta CLI como servidor MCP (Model Context Protocol) para agentes de IA.

Instalación

dotnet tool install --global FileMoverMcp
dotnet tool update --global FileMoverMcp
dotnet tool uninstall --global FileMoverMcp

Después de la instalación, el comando fm estará disponible globalmente.

Configuración de MCP

Para registrarse como herramienta MCP en Claude Code:

claude mcp add filemover -- fm --mcp

Para Cursor u otros clientes MCP, añade esto a tu configuración de MCP:

{
  "mcpServers": {
    "filemover": {
      "command": "fm",
      "args": ["--mcp"]
    }
  }
}

Uso

El flujo de trabajo es: inicializar una sesión, preparar movimientos, previsualizar y luego confirmar (o cancelar).

fm init [path]                      # Initialize at path (default: current directory)
fm mv <source> <dest>               # Stage a file or directory move
fm mv <source> <dest> --overwrite   # Allow overwriting existing destination
fm preview                          # See all staged moves
fm commit                           # Execute all staged moves
fm cancel                           # Discard all staged moves
fm help                             # Show help information

Ejemplos

# Move files on desktop
fm init "c:/users/adam/desktop"
fm mv "old-folder/file.png" "new-folder/file.png"
fm mv "document.txt" "archive/document-backup.txt"
fm preview
fm commit

# Move an entire directory
fm init
fm mv "source-folder" "dest-folder"
fm commit

# Overwrite an existing file
fm init
fm mv "source.txt" "destination.txt" --overwrite
fm commit

Comportamiento

Los directorios se crean automáticamente

Si la ruta de destino incluye directorios que aún no existen, se crearán automáticamente. Por ejemplo, fm mv "file.txt" "a/b/c/file.txt" creará a/b/c/ si es necesario.

Los archivos y directorios se detectan automáticamente

Cuando ejecutas fm mv, la herramienta comprueba si el origen es un archivo o un directorio y lo maneja en consecuencia. Los movimientos de directorios conservan toda la estructura interna, incluidos los subdirectorios anidados.

La sobrescritura es opcional

Si el destino ya existe (archivo o directorio), el movimiento se rechazará a menos que pases --overwrite. Con --overwrite, el destino existente se reemplaza por completo.

Las rutas están en un entorno aislado

Todas las rutas son relativas al directorio base de la sesión. Se rechazará cualquier intento de referenciar rutas fuera de él.

Las sesiones se comparten

El modo CLI y el modo MCP comparten el mismo almacenamiento de sesiones, por lo que puedes inicializar una sesión en un modo y confirmarla en el otro.

Como servidor MCP

fm --mcp

Cuando se ejecuta como servidor MCP, están disponibles las siguientes herramientas:

  • fm_init(path?: string) - Inicializar una sesión
  • fm_move(source: string, destination: string, overwrite: boolean) - Preparar un movimiento
  • fm_preview() - Previsualizar movimientos preparados
  • fm_commit() - Ejecutar movimientos preparados
  • fm_cancel() - Cancelar sesión
  • fm_help() - Obtener ayuda

Desarrollo

git clone <repository-url>
cd FileMoverMcp
dotnet build FileMoverMcp.sln
dotnet test FileMoverMcp.sln

Para ejecutar como servidor MCP durante el desarrollo:

dotnet run --project FileMoverMcp.Cli/FileMoverMcp.Cli.csproj -- --mcp

Para empaquetar:

dotnet pack FileMoverMcp.Cli/FileMoverMcp.Cli.csproj --configuration Release

Licencia

Licencia MIT