FilerMoverMcp

Uma ferramenta de movimentação de arquivos que prepara e executa movimentações de forma segura. Funciona tanto como ferramenta de linha de comando quanto como servidor MCP para agentes de IA.

Documentação

FileMoverMcp

Tests NuGet Version NuGet Downloads License: MIT

Uma ferramenta de movimentação de arquivos que prepara e executa movimentações de arquivos com segurança. Funciona tanto como ferramenta de linha de comando (CLI) quanto como servidor MCP (Model Context Protocol) para agentes de IA.

Instalação

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

Após a instalação, o comando fm estará disponível globalmente.

Configuração do MCP

Para registrar como ferramenta MCP no Claude Code:

claude mcp add filemover -- fm --mcp

Para Cursor ou outros clientes MCP, adicione isto à sua configuração MCP:

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

Uso

O fluxo de trabalho é: inicializar uma sessão, preparar movimentações, visualizar prévia e então confirmar (ou 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

Exemplos

# 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

Comportamento

Diretórios são criados automaticamente

Se o caminho de destino incluir diretórios que ainda não existem, eles serão criados automaticamente. Por exemplo, fm mv "file.txt" "a/b/c/file.txt" criará a/b/c/ se necessário.

Arquivos e diretórios são detectados automaticamente

Quando você executa fm mv, a ferramenta verifica se a origem é um arquivo ou um diretório e lida com isso de forma adequada. Movimentações de diretórios preservam toda a estrutura interna, incluindo subdiretórios aninhados.

Sobrescrita é opcional

Se o destino já existir (arquivo ou diretório), a movimentação será rejeitada, a menos que você passe --overwrite. Com --overwrite, o destino existente é substituído por completo.

Caminhos são restritos (sandbox)

Todos os caminhos são relativos ao diretório base da sessão. Tentativas de referenciar caminhos fora dele serão rejeitadas.

Sessões são compartilhadas

Os modos CLI e MCP compartilham o mesmo armazenamento de sessões, então você pode inicializar uma sessão em um modo e confirmá-la no outro.

Como Servidor MCP

fm --mcp

Ao executar como servidor MCP, as seguintes ferramentas estão disponíveis:

  • fm_init(path?: string) - Inicializar uma sessão
  • fm_move(source: string, destination: string, overwrite: boolean) - Preparar uma movimentação
  • fm_preview() - Visualizar prévia das movimentações preparadas
  • fm_commit() - Executar movimentações preparadas
  • fm_cancel() - Cancelar sessão
  • fm_help() - Obter ajuda

Desenvolvimento

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

Para executar como servidor MCP durante o desenvolvimento:

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

Para empacotar:

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

Licença

Licença MIT