Remote Files MCP

Servidor MCP para monitorar fontes de arquivos remotos, detectar novos arquivos e extrair conteúdo. Funciona com qualquer backend de armazenamento via rclone (mais de 70 provedores) ou comandos personalizados.

Documentação

remote-files

Servidor MCP para monitorar fontes de arquivos remotas, detectar novos arquivos e extrair conteúdo. Funciona com qualquer backend de armazenamento via rclone (mais de 70 provedores) ou comandos personalizados.

Recursos

  • Monitoramento de múltiplas fontes — rastreie vários locais remotos (Google Drive, S3, SFTP, diretórios locais, etc.)
  • Detecção de novos arquivos — diff baseado em estado detecta arquivos novos e alterados
  • Extração de conteúdo — extrai texto de arquivos DOCX, PDF e texto simples
  • Limpeza automática — arquivos baixados são excluídos após a extração de conteúdo
  • Transporte híbrido — suporte integrado ao rclone + comandos shell personalizados

Pré-requisitos

  • Node.js >= 18
  • npm
  • rclone (se usar o transporte rclone — o instalador pode instalá-lo para você)

Instalação

O instalador interativo cuida de dependências, build, configuração e registro no Claude Code:

cd remote-files
bash install.sh

O instalador irá:

  1. Verificar se Node.js e npm estão disponíveis
  2. Pedir que você escolha um modo de transporte (rclone ou personalizado)
  3. Instalar o rclone se necessário (via brew, apt, pacman ou script de instalação oficial)
  4. Orientar você na configuração do remoto rclone se nenhum remoto existir ainda
  5. Instalar dependências npm e compilar o projeto
  6. Criar o arquivo de configuração em ~/.config/remote-files/config.json
  7. Registrar o servidor MCP no Claude Code (se a CLI estiver disponível)

Instalação manual

Se preferir configurar tudo manualmente:

cd remote-files
npm install
npm run build
claude mcp add --transport stdio remote-files -- node /absolute/path/to/remote-files/dist/index.js

Depois crie ~/.config/remote-files/config.json manualmente (veja Configuração abaixo).

Configuração

Crie ~/.config/remote-files/config.json:

{
  "sources": {
    "my-drive": {
      "provider": "rclone",
      "remote": "gdrive:",
      "path": "Documents/Reports",
      "flags": ["--drive-shared-with-me"],
      "exclude": ["*.tmp"],
      "excludeFrom": "/path/to/exclude-patterns.txt"
    },
    "my-server": {
      "provider": "custom",
      "listCommand": "ssh server 'find /data -type f -printf \"%s %P\\n\"'",
      "downloadCommand": "scp server:/data/$FILE $DEST/"
    }
  },
  "settings": {
    "tempDir": "/tmp/remote-files",
    "stateDir": "~/.local/share/remote-files/state",
    "autoCleanup": true,
    "maxContentLength": 102400
  }
}

Substitua o caminho da configuração com a variável de ambiente REMOTE_FILES_CONFIG.

Provedor rclone

Requer rclone instalado e configurado. Campos:

CampoObrigatórioDescrição
remotesimNome do remoto rclone (ex.: gdrive:, s3:)
pathsimCaminho dentro do remoto
flagsnãoFlags extras do rclone
excludenãoPadrões de exclusão
excludeFromnãoCaminho para arquivo de exclusão

Provedor personalizado

Para qualquer backend não coberto pelo rclone. Campos:

CampoObrigatórioDescrição
listCommandsimComando shell que gera linhas <size> <path>
downloadCommandsimComando shell com variáveis $FILE e $DEST

Ferramentas MCP

check_sources

Verifica arquivos novos/alterados sem baixar.

Parameters:
  source?          — specific source name (omit for all)
  include_pattern? — glob filter (e.g. "*.docx")

init_source

Inicializa uma linha de base da fonte. Todos os arquivos atuais são marcados como conhecidos.

Parameters:
  source — source name to initialize

fetch_file

Baixa um arquivo, extrai texto e exclui automaticamente a cópia local.

Parameters:
  source     — source name
  path       — file path (from check_sources)
  keep_local — if true, keep file on disk (default: false)

Retorna texto extraído para DOCX/PDF/TXT. Para formatos desconhecidos, retorna local_path para o Claude ler diretamente.

Fluxo de trabalho

  1. Primeira vez: Claude chama init_source para criar uma linha de base
  2. Contínuo: Claude chama check_sources para encontrar novos arquivos
  3. Por arquivo: Claude chama fetch_file para obter conteúdo e resumir
  4. Arquivos são excluídos automaticamente após a extração

Desinstalação

claude mcp remove remote-files
rm -rf ~/.config/remote-files
rm -rf ~/.local/share/remote-files