Model Context Protocol server for FTP access
Most file and storage access work still happens through a UI a human drives. Ftp MCP server moves it into the conversation instead. Model Context Protocol server for FTP access.
This Model Context Protocol (MCP) server provides tools for interacting with FTP servers. It allows Claude.app to list directories, download and upload files, create directories, and delete files/directories on FTP servers.
@smithery/cli on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
The server publishes 12 tools. What each one is for:
list-directory — List contents of an FTP directorydownload-file — Download a file from the FTP server (binary files are returned base64-encoded)upload-file — Upload a file to the FTP server (pass encoding: "base64" for binary content)create-directory — Create a new directory on the FTP serverdelete-file — Delete a file from the FTP serverdelete-directory — Delete a directory from the FTP serverrename-file — Rename or move a file or directory on the FTP serveredit-file — Replace an exact string in a text file without re-uploading the whole file contentappend-file — Append content to a file (creates it if missing)Prerequisites — The Prerequisites tool exposed by this serverWindows — The Windows tool exposed by this serverAuthentication — SFTP supports two authentication methods, chosen automatically:Configuration is passed through the environment: FTP_HOST, FTP_PORT, FTP_USER, FTP_PASSWORD, FTP_SECURE, FTP_PROTOCOL, FTP_PRIVATE_KEY_PATH, FTP_PASSPHRASE. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of file and storage access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Ftp's toolset — list-directory, download-file, upload-file and 9 more — is a fair guide to whether it matches your workflow. It is maintained by alxspiker; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| list-directory | List contents of an FTP directory |
| download-file | Download a file from the FTP server (binary files are returned base64-encoded) |
| upload-file | Upload a file to the FTP server (pass encoding: "base64" for binary content) |
| create-directory | Create a new directory on the FTP server |
| delete-file | Delete a file from the FTP server |
| delete-directory | Delete a directory from the FTP server |
| rename-file | Rename or move a file or directory on the FTP server |
| edit-file | Replace an exact string in a text file without re-uploading the whole file content |
| append-file | Append content to a file (creates it if missing) |
| Prerequisites | The Prerequisites tool exposed by this server. |
| Windows | The Windows tool exposed by this server. |
| Authentication | SFTP supports two authentication methods, chosen automatically: |
{
"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"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| FTP_HOST | Endpoint or connection string the server talks to. | Optional |
| FTP_PORT | Configuration value read at startup. | Optional |
| FTP_USER | Configuration value read at startup. | Optional |
| FTP_PASSWORD | Configuration value read at startup. | Optional |
| FTP_SECURE | Configuration value read at startup. | Optional |
| FTP_PROTOCOL | Configuration value read at startup. | Optional |
| FTP_PRIVATE_KEY_PATH | Credential the server authenticates with. | Yes |
| FTP_PASSPHRASE | Configuration value read at startup. | Optional |
Scoped local file access — read, write, search and reorganise files in directories you explicitly allow.
Search and read your Drive — Docs, Sheets and files become context your assistant can actually use.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Chat with your second brain — search, read and write vault notes through the Local REST API.
Connects AI models to an Obsidian knowledge base for direct access and manipulation of notes and folders.