MCP Server for FTP Access
Servidor MCP para acceso FTP
Este servidor del Protocolo de Contexto de Modelo (MCP) proporciona herramientas para interactuar con servidores FTP. Permite a Claude.app listar directorios, descargar y subir archivos, crear directorios y eliminar archivos/directorios en servidores FTP.
Características
Listar contenido del directorio: Ver archivos y carpetas en el servidor FTP
Descargar archivos: Recuperar el contenido de archivos desde el servidor FTP
Subir archivos: Crear nuevos archivos o actualizar los existentes
Crear directorios: Crear nuevas carpetas en el servidor FTP
Eliminar archivos/directorios: Eliminar archivos o directorios
Related MCP server: Notion MCP Server
Instalación
Instalación a través de Smithery
Para instalar mcp-server-ftp para Claude Desktop automáticamente a través de Smithery:
npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claudeRequisitos previos
Node.js 16 o superior
Claude for Desktop (u otro cliente compatible con MCP)
Construcción desde el código fuente
Linux/macOS
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Install dependencies
npm install
# Build the project
npm run buildWindows
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Run the Windows build helper script
build-windows.batEl script build-windows.bat gestiona la instalación de dependencias y la construcción en sistemas Windows, con opciones de respaldo si el compilador de TypeScript presenta problemas.
Configuración
Para usar este servidor con Claude for Desktop, añádelo a tu archivo de configuración:
MacOS/Linux
Edita ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}Windows
Edita %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["C:\\path\\to\\mcp-server-ftp\\build\\index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}Solución de problemas de construcción en Windows
Si encuentras problemas de construcción en Windows:
Usa el script
build-windows.batproporcionado, que gestiona los problemas de construcción comunesAsegúrate de que Node.js y npm estén instalados correctamente
Intenta ejecutar el compilador de TypeScript directamente:
npx tscSi aún tienes problemas, puedes usar los archivos precompilados en el directorio
buildejecutando:node path\to\mcp-server-ftp\build\index.js
Opciones de configuración
Variable de entorno | Descripción | Predeterminado |
| Nombre de host o dirección IP del servidor FTP | localhost |
| Puerto del servidor FTP | 21 |
| Nombre de usuario FTP (admite cifrado) | anonymous |
| Contraseña FTP (admite cifrado) | (cadena vacía) |
| Usar FTP seguro (FTPS), ignorado cuando | false |
| Protocolo a utilizar: | ftp |
| Ruta a la clave privada SSH para SFTP (ej. | (detección automática) |
| Frase de contraseña para la clave privada SSH (admite cifrado) | (cadena vacía) |
| Clave AES-256 hexadecimal de 64 caracteres para descifrar credenciales | (deshabilitado) |
Soporte para SSH / SFTP
Además de FTP y FTPS simples, el servidor admite SFTP (Protocolo de transferencia de archivos SSH), que se ejecuta sobre una conexión SSH cifrada y no está relacionado con FTPS.
Establece FTP_PROTOCOL=sftp para cambiar el servidor al modo SFTP. El puerto predeterminado cambia a 22.
Autenticación
SFTP admite dos métodos de autenticación, elegidos automáticamente:
Clave privada: si se encuentra una clave (ver más abajo), se utiliza para la autenticación.
FTP_PASSPHRASEse utiliza para descifrar la clave si está protegida por una frase de contraseña.Contraseña: si no se encuentra ninguna clave, se utiliza
FTP_PASSWORDpara la autenticación por contraseña.
Detección de claves
El servidor busca una clave privada en este orden:
La ruta en
FTP_PRIVATE_KEY_PATH(si está configurada)~/.ssh/id_ed25519~/.ssh/id_rsa~/.ssh/id_ecdsa
Ejemplo de configuración
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "sftp.example.com",
"FTP_PORT": "22",
"FTP_PROTOCOL": "sftp",
"FTP_USER": "your-username",
"FTP_PRIVATE_KEY_PATH": "~/.ssh/id_ed25519",
"FTP_PASSPHRASE": "your-key-passphrase"
}
}
}
}FTP_PASSPHRASE y FTP_USER admiten el formato cifrado enc: — ver Cifrado de credenciales.
Cifrado de credenciales
Almacenar contraseñas en texto plano en tu archivo de configuración de Claude es un riesgo de seguridad. El servidor admite el cifrado AES-256-GCM para FTP_USER y FTP_PASSWORD, de modo que la configuración solo contenga texto cifrado.
1. Generar una clave de cifrado
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Mantén esta clave en secreto; trátala como una contraseña maestra.
2. Cifrar un valor de credencial
npm run build
FTP_ENCRYPTION_KEY=<your-64-char-hex-key> npm run encrypt-env -- <plaintext-value>El resultado es una cadena cifrada autocontenida en el formato enc:<iv_hex>:<tag_hex>:<ciphertext_hex>.
3. Usar los valores cifrados en tu configuración
Establece FTP_ENCRYPTION_KEY junto con las credenciales cifradas. Los valores que no comienzan con enc: se tratan como texto plano, por lo que puedes cifrar de forma selectiva.
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "enc:aabbcc...:ddeeff...:112233...",
"FTP_PASSWORD": "enc:aabbcc...:ddeeff...:112233...",
"FTP_SECURE": "false",
"FTP_ENCRYPTION_KEY": "<your-64-char-hex-key>"
}
}
}
}Uso
Después de configurar y reiniciar Claude for Desktop, puedes usar lenguaje natural para realizar operaciones FTP:
"Lista los archivos en el directorio /public en mi servidor FTP"
"Descarga el archivo /data/report.txt del servidor FTP"
"Sube este texto como un archivo llamado notes.txt al servidor FTP"
"Crea un nuevo directorio llamado 'backups' en el servidor FTP"
"Elimina el archivo obsolete.txt del servidor FTP"
"Elimina el directorio vacío /old-project del servidor FTP"
Herramientas disponibles
Nombre de la herramienta | Descripción |
| Listar el contenido de un directorio FTP |
| Descargar un archivo del servidor FTP |
| Subir un archivo al servidor FTP |
| Crear un nuevo directorio en el servidor FTP |
| Eliminar un archivo del servidor FTP |
| Eliminar un directorio del servidor FTP |
Consideraciones de seguridad
Utiliza la función de Cifrado de credenciales para evitar almacenar contraseñas en texto plano en tu archivo de configuración.
Prefiere SFTP (
FTP_PROTOCOL=sftp) sobre FTP o FTPS simples siempre que sea posible; utiliza SSH y no requiere gestión de certificados.Considera usar FTPS (FTP seguro) configurando
FTP_SECURE=truesi tu servidor lo admite pero SFTP no está disponible.El servidor crea archivos temporales para subidas y descargas en el directorio temporal de tu sistema.
Licencia
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alxspiker/mcp-server-ftp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server