Remote Files MCP

Servidor MCP para monitorear fuentes de archivos remotos, detectar nuevos archivos y extraer contenido. Funciona con cualquier backend de almacenamiento mediante rclone (más de 70 proveedores) o comandos personalizados.

Documentación

remote-files

Servidor MCP para monitorear fuentes de archivos remotas, detectar archivos nuevos y extraer contenido. Funciona con cualquier backend de almacenamiento mediante rclone (más de 70 proveedores) o comandos personalizados.

Características

  • Monitoreo multi-fuente — rastrea múltiples ubicaciones remotas (Google Drive, S3, SFTP, directorios locales, etc.)
  • Detección de archivos nuevos — la comparación basada en estado detecta archivos nuevos y modificados
  • Extracción de contenido — extrae texto de archivos DOCX, PDF y texto plano
  • Limpieza automática — los archivos descargados se eliminan después de la extracción de contenido
  • Transporte híbrido — soporte integrado de rclone + comandos shell personalizados

Requisitos previos

  • Node.js >= 18
  • npm
  • rclone (si usas el transporte rclone — el instalador puede instalarlo por ti)

Instalación

El instalador interactivo gestiona dependencias, compilación, configuración y registro en Claude Code:

cd remote-files
bash install.sh

El instalador:

  1. Verifica que Node.js y npm estén disponibles
  2. Te pide elegir un modo de transporte (rclone o personalizado)
  3. Instala rclone si es necesario (mediante brew, apt, pacman o el script de instalación oficial)
  4. Te guía en la configuración de remotos de rclone si aún no existen
  5. Instala las dependencias de npm y compila el proyecto
  6. Crea el archivo de configuración en ~/.config/remote-files/config.json
  7. Registra el servidor MCP con Claude Code (si la CLI está disponible)

Instalación manual

Si prefieres configurarlo tú mismo:

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

Luego crea ~/.config/remote-files/config.json manualmente (consulta Configuración a continuación).

Configuración

Crea ~/.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
  }
}

Anula la ruta de configuración con la variable de entorno REMOTE_FILES_CONFIG.

Proveedor rclone

Requiere rclone instalado y configurado. Campos:

CampoRequeridoDescripción
remoteNombre del remoto de rclone (p. ej. gdrive:, s3:)
pathRuta dentro del remoto
flagsnoBanderas adicionales de rclone
excludenoPatrones de exclusión
excludeFromnoRuta al archivo de exclusión

Proveedor personalizado

Para cualquier backend no cubierto por rclone. Campos:

CampoRequeridoDescripción
listCommandComando shell que genera líneas <size> <path>
downloadCommandComando shell con variables $FILE y $DEST

Herramientas MCP

check_sources

Comprueba archivos nuevos/modificados sin descargarlos.

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

init_source

Inicializa una línea base de la fuente. Todos los archivos actuales se marcan como conocidos.

Parameters:
  source — source name to initialize

fetch_file

Descarga un archivo, extrae texto y elimina automáticamente la copia local.

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

Devuelve el texto extraído para DOCX/PDF/TXT. Para formatos desconocidos, devuelve local_path para que Claude lo lea directamente.

Flujo de trabajo

  1. Primera vez: Claude llama a init_source para crear una línea base
  2. Continuo: Claude llama a check_sources para encontrar archivos nuevos
  3. Por archivo: Claude llama a fetch_file para obtener contenido y resumir
  4. Los archivos se eliminan automáticamente después de la extracción

Desinstalación

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