MCP Server for FTP Access
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FTP_HOST | No | FTP server hostname or IP address | localhost |
| FTP_PORT | No | FTP server port | 21 |
| FTP_USER | No | FTP username (supports encryption) | anonymous |
| FTP_SECURE | No | Use secure FTP (FTPS), ignored when FTP_PROTOCOL=sftp | false |
| FTP_PASSWORD | No | FTP password (supports encryption) | |
| FTP_PROTOCOL | No | Protocol to use: ftp or sftp | ftp |
| FTP_PASSPHRASE | No | Passphrase for the SSH private key (supports encryption) | |
| FTP_ENCRYPTION_KEY | No | 64-character hex AES-256 key for decrypting credentials | (disabled) |
| FTP_PRIVATE_KEY_PATH | No | Path to SSH private key for SFTP | (auto-detect) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list-directoryB | List contents of an FTP directory |
| download-fileA | Download a file from the FTP server. Text files are returned as-is; binary files are returned base64-encoded. |
| upload-fileA | Upload a file to the FTP server. Pass encoding "base64" to upload binary content. |
| create-directoryB | Create a new directory on the FTP server |
| delete-fileB | Delete a file from the FTP server |
| delete-directoryC | Delete a directory from the FTP server |
| rename-fileB | Rename or move a file or directory on the FTP server |
| edit-fileA | Edit a text file on the FTP server by replacing an exact string, without re-uploading the whole file content. oldText must match exactly (including whitespace) and be unique in the file unless replaceAll is set. |
| append-fileA | Append content to the end of a file on the FTP server (creates the file if it does not exist). Pass encoding "base64" for binary content. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes: listing, downloading, directory creation/deletion, file deletion, and renaming. However, upload-file, append-file, and edit-file all modify file content and could be confused in edge cases, though their descriptions differentiate overwrite-style upload, append, and in-place string editing.
All tool names follow a consistent kebab-case verb_noun pattern: list-directory, download-file, upload-file, create-directory, delete-file, delete-directory, rename-file, edit-file, append-file. There are no deviations in casing or verb style.
Nine tools is well-scoped for an FTP access server, covering core file and directory operations without excessive breadth. Each tool earns its place by mapping to a distinct FTP action.
The set covers core FTP lifecycle operations: list, download, upload, create, delete, rename, edit, and append, for both files and directories. Minor gaps exist around file metadata/stat inspection and potentially recursive directory deletion, but agents can work around these.