# alebgl77/ftp-deploy-mcp [Health: Active]

**Category:** 📂 File Systems  
**Repository:** https://github.com/alebgl77/ftp-deploy-mcp  
**GitHub Stars:** 0  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/alebgl77-ftp-deploy-mcp

## Description
Deploy files from AI agents to your own FTP/FTPS/SFTP servers — multi-server config, recursive deploy with dry-run and gitignore-like excludes, per-server path jail and read-only mode, FileZilla import, one-command setup for popular MCP clients.

## Tools
Capabilities this server exposes over MCP:

- **ftp_list_servers** — Show server metadata and active safety warnings, never passwords.
- **ftp_test** — Connect and list the visible root.
- **ftp_list** — List a remote directory. `limit` defaults to 50 (1–200); `offset` defaults to 0.
- **ftp_read** — Read a bounded text file; binary data is refused.
- **ftp_upload** — Upload one file from `localRoot`.
- **ftp_deploy** — Recursively deploy a directory from `localRoot`.
- **ftp_download** — Download into `localRoot`.
- **ftp_mkdir** — Create a remote directory recursively.
- **ftp_rename** — Rename or move.
- **ftp_delete** — Delete a file or, with explicit recursion, a directory.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "ftp-deploy-mcp": {
    "command": "npx",
    "args": ["-y","ftp-deploy-mcp"]
  }
}
```

## Documentation

## What alebgl77/ftp-deploy-mcp MCP server does

The alebgl77/ftp-deploy-mcp MCP server exposes ten focused operations for remote file administration over FTP, FTPS, and SFTP. Agents can discover configured server metadata, test a connection, browse directories, read bounded text files, transfer individual files, deploy directories recursively, create directories, rename or move paths, and delete files or explicitly selected directories.

The server supports multiple named destinations in one local configuration. A default server may be selected, and the server name can be omitted when only one destination exists. Remote tool paths are resolved beneath each configured remote root. Local upload, deployment, and download paths are constrained by the configured `localRoot`.

## How it works

Configuration is loaded from the first available source in this order: a path supplied with `--config`, the `FTP_MCP_CONFIG` environment variable, `./ftp-servers.json`, or `~/.ftp-mcp/servers.json`. Each server entry identifies `ftp`, `ftps`, or `sftp`, along with its endpoint and authentication settings.

For SFTP, a verified `hostKeySha256` pin is required unless `allowUnknownHostKey` is deliberately enabled. FTP connections require an explicit insecure-connection acknowledgment. FTPS certificate verification can be disabled only with the corresponding safety acknowledgment. SFTP performs remote path checks using server-side metadata; FTP and FTPS require a trustworthy server-side account boundary for protection against symlink escapes.

Deployment can run as a dry run before making changes. Gitignore-like exclusions can omit selected files or directories. A server configured with `readOnly` blocks uploads, deployments, directory creation, renames, and deletes, but still permits a deployment dry run. Credentials are loaded locally and are not intentionally returned in tool results.

## Setup and configuration

The alebgl77/ftp-deploy-mcp MCP server requires Node.js 18 or newer. The documented source setup is:

1. Clone the repository and change into its directory.
2. Run `npm install`.
3. Run `npm run setup` or use `install.cmd` on Windows or `./install.sh` on macOS and Linux.
4. Edit the generated configuration before connecting.

Each usable server needs an absolute, existing `localRoot`. Relative paths and local symlink or junction escapes are rejected. Passwords may be written directly or referenced with `${ENV:VARIABLE_NAME}`. SFTP entries can use an SSH private key and optional passphrase. The configuration file must be strict JSON; the repository's commented example is instructional rather than a ready-to-use configuration.

The README states that the npm package and MCP registry entry have not yet been published. Consequently, `npx -y ftp-deploy-mcp` is not an available installation method at the documented release stage.

## Tools and capabilities

- `ftp_list_servers`: return server metadata and active safety warnings without passwords.
- `ftp_test`: connect to a selected server and list its visible root.
- `ftp_list`: browse a remote directory with pagination; the default limit is 50.
- `ftp_read`: read bounded text files and refuse binary data.
- `ftp_upload`: send one local file to a remote path.
- `ftp_deploy`: recursively deploy a local directory, with dry-run support.
- `ftp_download`: retrieve a remote file into the permitted local root.
- `ftp_mkdir`: create a remote directory tree.
- `ftp_rename`: rename or move a remote path.
- `ftp_delete`: remove a file or delete a directory when recursion is explicitly requested.

## Limitations and notes

The alebgl77/ftp-deploy-mcp MCP server is currently documented for installation from source rather than from a published npm package. Plain FTP exposes credentials and traffic to interception and is intended only for legacy or trusted-network use. Unverified FTPS and unknown SFTP host keys reduce connection identity protection. For production use, the documentation recommends verified SFTP fingerprints and server-side chroot boundaries for FTP or FTPS.

The server does not provide a reliable client-side anti-symlink jail for FTP or FTPS sub-roots. SFTP path validation can still face a race if a malicious server changes paths between validation and use. Local file access remains limited by `localRoot`, and missing environment-variable references produce configuration errors.

_Full upstream README: https://allmcps.com/mcp/alebgl77-ftp-deploy-mcp/readme_

