FTP MCP

Servidor MCP para operaciones de archivos FTP — explorar, descargar, cargar y gestionar archivos remotos

Documentación

mcp-server-ftp

Un servidor MCP (Model Context Protocol) para operaciones de archivos FTP. Explore, lea, descargue, cargue y administre archivos en servidores FTP remotos.

Construido con Rust, rmcp y suppaftp.

Características

  • Soporte multi-perfil — configure múltiples servidores FTP y cambie entre ellos
  • Gestión completa de archivos — liste, lea, descargue, cargue, elimine, renombre y cree directorios
  • Operaciones recursivas — descargue o cargue árboles de directorios completos
  • Seguro para binarios — modo de transferencia binaria para descargas/cargas, vista previa hexadecimal para archivos no textuales mediante read_file
  • Modo pasivo/activo — configurable por perfil
  • Conexión por llamada — cada herramienta abre una conexión FTP nueva, por lo que no hay estado de sesión obsoleto. Las operaciones recursivas mantienen una conexión durante todo el recorrido.

Herramientas

HerramientaDescripción
list_profilesListe los perfiles de servidor FTP configurados (sin mostrar contraseñas)
list_directoryListe archivos/directorios en una ruta remota (tipo, tamaño, fecha, nombre)
read_fileLea un archivo remoto y devuelva su contenido como texto
download_fileDescargue un único archivo remoto a una ruta local
upload_fileCargue un archivo local a una ruta remota
download_directoryDescargue recursivamente un directorio remoto
upload_directoryCargue recursivamente un directorio local
deleteElimine un archivo remoto o un directorio vacío
renameRenombre o mueva un archivo o directorio remoto
mkdirCree un directorio remoto

Todas las herramientas aceptan un parámetro opcional profile. Cuando se omite, se utiliza el default_profile de la configuración.

Configuración

Cree un archivo de configuración TOML en ~/.config/mcp-server-ftp/config.toml:

default_profile = "myserver"

[[profiles]]
name = "myserver"
host = "ftp.example.com"
port = 21
username = "user"
password = "pass"
tls = false
passive = true
timeout_secs = 30

Puede definir múltiples bloques [[profiles]] para administrar varios servidores FTP.

Campos del perfil

CampoPredeterminadoDescripción
name(obligatorio)Nombre del perfil utilizado para referenciar este servidor
host(obligatorio)Nombre de host o IP del servidor FTP
port21Puerto FTP
username""Nombre de usuario FTP
password""Contraseña FTP
tlsfalseHabilitar TLS (aún no implementado)
passivetrueUsar modo pasivo
timeout_secs30Tiempo de espera de conexión en segundos

Compilación

Requiere la edición Rust 2024 (1.85+).

cargo build --release

El binario se genera en target/release/mcp-server-ftp.

Uso con Claude Code

Agregue a su configuración del servidor MCP:

{
  "mcpServers": {
    "ftp": {
      "command": "/path/to/mcp-server-ftp"
    }
  }
}

Habilite el registro de depuración con la variable de entorno RUST_LOG:

{
  "mcpServers": {
    "ftp": {
      "command": "/path/to/mcp-server-ftp",
      "env": {
        "RUST_LOG": "debug"
      }
    }
  }
}

Estructura del Proyecto

src/
  main.rs      — Entry point: config load, tracing init, stdio transport
  config.rs    — TOML config parsing, multi-profile support
  server.rs    — MCP tool definitions via rmcp #[tool_router]
  ftp.rs       — Async FTP client wrapper (connect, list, read, download, upload, delete, rename, mkdir)

Licencia

MIT