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
| Herramienta | Descripción |
|---|---|
list_profiles | Liste los perfiles de servidor FTP configurados (sin mostrar contraseñas) |
list_directory | Liste archivos/directorios en una ruta remota (tipo, tamaño, fecha, nombre) |
read_file | Lea un archivo remoto y devuelva su contenido como texto |
download_file | Descargue un único archivo remoto a una ruta local |
upload_file | Cargue un archivo local a una ruta remota |
download_directory | Descargue recursivamente un directorio remoto |
upload_directory | Cargue recursivamente un directorio local |
delete | Elimine un archivo remoto o un directorio vacío |
rename | Renombre o mueva un archivo o directorio remoto |
mkdir | Cree 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
| Campo | Predeterminado | Descripción |
|---|---|---|
name | (obligatorio) | Nombre del perfil utilizado para referenciar este servidor |
host | (obligatorio) | Nombre de host o IP del servidor FTP |
port | 21 | Puerto FTP |
username | "" | Nombre de usuario FTP |
password | "" | Contraseña FTP |
tls | false | Habilitar TLS (aún no implementado) |
passive | true | Usar modo pasivo |
timeout_secs | 30 | Tiempo 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