Lists directories, uploads, downloads and deletes files and folders on FTP servers.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add ftp --env FTP_HOST='<FTP_HOST>' --env FTP_PASSWORD='<FTP_PASSWORD>' --env FTP_PORT='<FTP_PORT>' --env FTP_SECURE='<FTP_SECURE>' --env FTP_USER='<FTP_USER>' -- npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claude~/.codex/config.toml
[mcp_servers.ftp]
command = "npx"
args = ["-y", "@smithery/cli", "install", "@alxspiker/mcp-server-ftp", "--client", "claude"]
env = { FTP_HOST = "<FTP_HOST>", FTP_PASSWORD = "<FTP_PASSWORD>", FTP_PORT = "<FTP_PORT>", FTP_SECURE = "<FTP_SECURE>", FTP_USER = "<FTP_USER>" }
# codex mcp add ftp --env FTP_HOST='<FTP_HOST>' --env FTP_PASSWORD='<FTP_PASSWORD>' --env FTP_PORT='<FTP_PORT>' --env FTP_SECURE='<FTP_SECURE>' --env FTP_USER='<FTP_USER>' -- npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claude~/.cursor/mcp.json
{
"mcpServers": {
"ftp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@alxspiker/mcp-server-ftp",
"--client",
"claude"
],
"env": {
"FTP_HOST": "<FTP_HOST>",
"FTP_PASSWORD": "<FTP_PASSWORD>",
"FTP_PORT": "<FTP_PORT>",
"FTP_SECURE": "<FTP_SECURE>",
"FTP_USER": "<FTP_USER>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"ftp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@alxspiker/mcp-server-ftp",
"--client",
"claude"
],
"env": {
"FTP_HOST": "<FTP_HOST>",
"FTP_PASSWORD": "<FTP_PASSWORD>",
"FTP_PORT": "<FTP_PORT>",
"FTP_SECURE": "<FTP_SECURE>",
"FTP_USER": "<FTP_USER>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"ftp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@alxspiker/mcp-server-ftp",
"--client",
"claude"
],
"env": {
"FTP_HOST": "<FTP_HOST>",
"FTP_PASSWORD": "<FTP_PASSWORD>",
"FTP_PORT": "<FTP_PORT>",
"FTP_SECURE": "<FTP_SECURE>",
"FTP_USER": "<FTP_USER>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"ftp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@alxspiker/mcp-server-ftp",
"--client",
"claude"
],
"env": {
"FTP_HOST": "<FTP_HOST>",
"FTP_PASSWORD": "<FTP_PASSWORD>",
"FTP_PORT": "<FTP_PORT>",
"FTP_SECURE": "<FTP_SECURE>",
"FTP_USER": "<FTP_USER>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"ftp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@alxspiker/mcp-server-ftp",
"--client",
"claude"
],
"env": {
"FTP_HOST": "<FTP_HOST>",
"FTP_PASSWORD": "<FTP_PASSWORD>",
"FTP_PORT": "<FTP_PORT>",
"FTP_SECURE": "<FTP_SECURE>",
"FTP_USER": "<FTP_USER>"
}
}
}
}Environment variables
FTP_HOSTFTP_PASSWORDFTP_PORTFTP_SECUREFTP_USER
Replace the placeholders with your own credentials and keep them out of version control.