ftp-mcp
Provides a full set of FTP/FTPS/SFTP operations mimicking FileZilla's feature set, enabling file management, site management, and bulk transfers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ftp-mcplist files in /var/www on prod"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ftp-mcp
MCP server for FTP/FTPS/SFTP operations — full FileZilla feature set for AI agents.
Installation
OpenCode
Add to your opencode.json config:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ftp-mcp": {
"type": "local",
"command": ["npx", "-y", "github:kemalabuteliyte/ftp-mcp"],
"enabled": true
}
}
}Claude Code / Claude Desktop
Add to your MCP config (~/.claude/settings.json or Claude Desktop config):
{
"mcpServers": {
"ftp-mcp": {
"command": "npx",
"args": ["-y", "github:kemalabuteliyte/ftp-mcp"]
}
}
}Cursor / Windsurf
Add to your MCP settings:
{
"mcpServers": {
"ftp-mcp": {
"command": "npx",
"args": ["-y", "github:kemalabuteliyte/ftp-mcp"]
}
}
}Manual install
npm install -g github:kemalabuteliyte/ftp-mcpThen use ftp-mcp as the command in any MCP client config.
Related MCP server: MCP ShellKeeper
Features
36 tools covering all FileZilla operations:
Connection Management
ftp_connect— Connect to FTP/FTPS/SFTP serverftp_disconnect— Close a connectionftp_list_connections— List active connectionsftp_connection_info— Get connection details
Site Manager
ftp_add_site— Save connection profileftp_remove_site— Delete saved siteftp_list_sites— List saved profilesftp_edit_site— Update site config
Navigation
ftp_pwd— Print working directoryftp_cd— Change directoryftp_list— List directory (permissions, size, date)ftp_tree— Recursive tree view
File Operations
ftp_upload— Upload file (binary/ascii/auto)ftp_download— Download fileftp_delete— Delete fileftp_rename— Rename file/directoryftp_move— Move fileftp_copy— Copy file on serverftp_read— Read remote file contentsftp_write— Write content to remote fileftp_append— Append to remote fileftp_stat— Get file infoftp_exists— Check if path exists
Directory Operations
ftp_mkdir— Create directory (recursive option)ftp_rmdir— Remove directory (recursive option)ftp_dir_size— Calculate directory size
Bulk Transfers
ftp_upload_directory— Upload entire directoryftp_download_directory— Download entire directoryftp_sync— Sync local/remote directoriesftp_mirror— Mirror directories (one-way sync with delete)
Permissions
ftp_chmod— Change permissions (recursive option)ftp_chown— Change ownership (SFTP only)
Search & Compare
ftp_find— Search files by name patternftp_grep— Search file contents on serverftp_compare— Compare local vs remote directoriesftp_checksum— File checksum verification
Protocols
Protocol | Library | Default Port |
FTP | basic-ftp | 21 |
FTPS | basic-ftp | 990 |
SFTP | ssh2-sftp-client | 22 |
Multi-Server Support
Connect to multiple servers simultaneously with named connections:
ftp_connect(name: "prod", host: "prod.example.com", protocol: "sftp", ...)
ftp_connect(name: "staging", host: "staging.example.com", protocol: "ftp", ...)
ftp_list(connection: "prod", path: "/var/www")
ftp_sync(connection: "staging", localPath: "./dist", remotePath: "/public_html", direction: "local-to-remote")Site Manager
Save frequently used connections to ~/.ftp-mcp/sites.json:
ftp_add_site(name: "myserver", host: "example.com", protocol: "sftp", username: "deploy", privateKeyPath: "~/.ssh/id_rsa")
ftp_connect(name: "session1", site: "myserver")License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kemalabuteliyte/ftp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server