ftp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FTPMCP_HOST | No | FTP/SFTP host (required if not using .ftpconfig) | |
| FTPMCP_USER | No | FTP/SFTP username (required if not using .ftpconfig) | |
| FTPMCP_AGENT | No | SSH agent (e.g., pageant) (optional) | |
| FTPMCP_PASSWORD | No | FTP/SFTP password (required if not using .ftpconfig) | |
| FTPMCP_PASSPHRASE | No | Passphrase for private key (optional) | |
| FTPMCP_PRIVATE_KEY | No | Path to private key for SFTP (optional) |
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 | {} |
| logging | {} |
| prompts | {} |
| resources | {
"subscribe": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ftp_connectA | Establish or switch the active connection to a specific remote server profile defined in your .ftpconfig (e.g., 'production', 'staging'). This is the first step before performing any remote operations. |
| ftp_deployA | Execute a pre-defined deployment preset from .ftpconfig. This typically maps a specific local folder to a remote target with pre-configured exclusion rules. |
| ftp_list_deploymentsB | List all available deployment presets from .ftpconfig |
| ftp_listA | List files and directories in a remote path. Use 'limit' and 'offset' for pagination when dealing with directories containing hundreds of files to avoid context overflow. |
| ftp_get_contentsA | Read the source text of a remote file. CRITICAL: For large files, use 'startLine' and 'endLine' to extract specific chunks and prevent hitting the LLM context limit. |
| ftp_patch_fileA | Apply a Unified Diff patch to a remote file. RECOMMENDED: Use this instead of ftp_put_contents for updating existing files to minimize bandwidth and ensure atomic-like updates. For new files, use ftp_put_contents. |
| ftp_analyze_workspaceA | Introspect the remote directory to identify technical environments (e.g., Node.js, PHP, Python) and read dependency manifests. Use this to gain architectural context of a new codebase. |
| ftp_put_contentsA | Write raw text directly to a remote destination. Best for creating NEW files. For modifying existing files, prefer ftp_patch_file. |
| ftp_statA | Retrieve comprehensive metadata for a remote property, including size, modification timestamps, and UNIX permissions. |
| ftp_existsA | Check for the existence of a file or folder without performing heavy file operations. Use this for conditional logic workflows. |
| ftp_treeA | Generate a complete recursive directory map. Use this to visualize project structure, but be cautious with 'maxDepth' in very large remote repositories to avoid excessive network payload. |
| ftp_searchB | Advanced remote file search. Supports finding files by name (wildcards), extension, or content regex (grep-like). Use this to find specific code patterns across the remote workspace. |
| ftp_copyA | Directly duplicate a file on the remote server without downloading and re-uploading. CRITICAL: Only supported on SFTP connections. |
| ftp_batch_uploadA | Upload a collection of local files to remote destinations in a single operation. HIGHLY RECOMMENDED for multiple files to minimize connection handshaking overhead and drastically improve performance. |
| ftp_batch_downloadA | Download a selection of remote files to local destinations. HIGHLY RECOMMENDED for bulk downloads to leverage stable socket persistence. |
| ftp_syncA | Deploy entire project folders using smart synchronization. Analyzes local and remote directory trees and only transfers files that have changed in size or modification date. Automatically respects .gitignore and .ftpignore. |
| ftp_disk_spaceA | Query the remote server for available disk space. CRITICAL: Only available on SFTP connections. |
| ftp_uploadA | Standard single-file transport to the remote server. For bulk transfers, favor ftp_batch_upload. |
| ftp_downloadA | Standard single-file transport from the remote server. For bulk downloads, favor ftp_batch_download. |
| ftp_deleteB | Permanently remove a file from the remote server. Use with caution. |
| ftp_mkdirA | Create a new directory structure on the remote server. Supports nested creation (mkdir -p). |
| ftp_rmdirC | Delete a directory from the remote server. |
| ftp_chmodB | Change remote file permissions. CRITICAL: Only supported on SFTP connections. |
| ftp_renameB | Move or rename files and directories on the remote server. |
| ftp_rollbackA | Undo a previous file mutation by restoring it from a system-generated snapshot. This provides safety during complex refactoring tasks. |
| ftp_list_transactionsA | Expose all recent mutations currently stored in the system's SnapshotManager. Essential for planning rollbacks. |
| ftp_probe_capabilitiesB | Scan the remote server to determine supported filesystem features (e.g., chmod availability, symlink support, disk space querying). Helpful for troubleshooting capabilities. |
| ftp_telemetryA | Retrieve internal performance metrics, including average latency, connection pool health, and total processed bytes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| audit-project | Perform a security and architectural review of the remote workspace. |
| deploy-checklist | Guide the agent through a pre-deployment safety check. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Active Server Instruction & Context | Provides a real-time summary of the active connection profile, security constraints, and operational hints to optimize agent behavior. |
TDQS
Scored across 28 tools
Each tool has a clearly distinct purpose, with descriptions that differentiate similar operations like single vs batch upload/download, and patch vs put for file content updates. No tools appear to overlap in functionality.
All tools follow a consistent ftp_verb_noun or ftp_verb pattern in snake_case, with no deviation in naming convention. This makes the tool set predictable and easy to navigate.
With 28 tools, the set is extensive but each tool serves a specific purpose (connection, file operations, batch processing, deployment, rollback, telemetry). While slightly above typical, the count is justified by the comprehensive feature set.
The tool set covers nearly all FTP operations including connect, list, get, put, patch, delete, rename, mkdir, rmdir, chmod, search, tree, sync, and batch transfers. Advanced features like rollback and workspace analysis add completeness, with no obvious gaps for standard FTP workflows.