← 返回 Skills 市场
erayai

Ftp Client

作者 erayai · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
318
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install ftp-client
功能描述
FTP/FTPS client skill. Connect to FTP servers and perform file operations (list, upload, download, delete, move, copy, mkdir, read). Supports FTP and FTPS (e...
使用说明 (SKILL.md)

FTP Client

Full-featured FTP/FTPS client skill for OpenClaw. Connect to remote FTP servers and manage files directly.

Environment Variable

Set FTP_CONNECTION in the OpenClaw skill management panel. Format (comma-separated, last 3 fields optional):

host:port,username,password,active/passive,ftp/ftps,explicit/implicit

Examples:

ftp.example.com:21,myuser,mypassword
ftp.example.com:21,myuser,mypassword,passive
ftp.example.com:990,myuser,mypassword,passive,ftps,implicit

Field definitions:

  • Field 1 (required): host:port — FTP server address and port
  • Field 2 (required): username — FTP login username
  • Field 3 (required): password — FTP login password
  • Field 4 (optional): active or passive — connection mode (default: passive)
  • Field 5 (optional): ftp or ftps — protocol (default: ftp)
  • Field 6 (optional): explicit or implicit — TLS mode for FTPS (default: not used; only meaningful when field 5 is ftps)

Note: If your password contains commas, replace them with %2C (URL-encoded). The parser will decode it.

List directory

node {baseDir}/scripts/list.mjs
node {baseDir}/scripts/list.mjs "/remote/path"
node {baseDir}/scripts/list.mjs "/" --long

Options:

  • --long or -l: Show detailed file info (size, date, permissions)

Download file

node {baseDir}/scripts/download.mjs "/remote/file.txt"
node {baseDir}/scripts/download.mjs "/remote/file.txt" --out "/local/path/file.txt"
node {baseDir}/scripts/download.mjs "/remote/dir" --dir

Options:

  • --out \x3Cpath> or -o \x3Cpath>: Local destination path (default: temp directory)
  • --dir or -d: Download entire directory recursively

Upload file

node {baseDir}/scripts/upload.mjs "/local/file.txt"
node {baseDir}/scripts/upload.mjs "/local/file.txt" --to "/remote/path/file.txt"
node {baseDir}/scripts/upload.mjs "/local/dir" --dir --to "/remote/dir"

Options:

  • --to \x3Cpath> or -t \x3Cpath>: Remote destination path (default: FTP root /)
  • --dir or -d: Upload entire directory recursively

Delete file or directory

node {baseDir}/scripts/delete.mjs "/remote/file.txt"
node {baseDir}/scripts/delete.mjs "/remote/dir" --dir

Options:

  • --dir or -d: Remove directory recursively (including all contents)

Move / Rename

node {baseDir}/scripts/move.mjs "/remote/old-name.txt" "/remote/new-name.txt"
node {baseDir}/scripts/move.mjs "/remote/file.txt" "/remote/subdir/file.txt"

Copy file

node {baseDir}/scripts/copy.mjs "/remote/source.txt" "/remote/dest.txt"

FTP protocol does not natively support copy. This downloads the file to a temp location and re-uploads it.

Create directory

node {baseDir}/scripts/mkdir.mjs "/remote/new-dir"
node {baseDir}/scripts/mkdir.mjs "/remote/path/to/deep/dir"

Creates the directory and all intermediate directories as needed.

Read file content

node {baseDir}/scripts/read.mjs "/remote/file.txt"
node {baseDir}/scripts/read.mjs "/remote/file.txt" --encoding utf8

Options:

  • --encoding \x3Cenc>: File encoding (default: utf8). Supports: utf8, ascii, latin1, base64

File info (size, date)

node {baseDir}/scripts/info.mjs "/remote/file.txt"

Returns file size and last modification date.

Notes

  • Requires node and uses the basic-ftp npm package (auto-installed via package.json).
  • Set FTP_CONNECTION env var before use.
  • Passive mode is recommended for most NAT/firewall scenarios.
  • For FTPS, the skill supports both explicit (port 21 typical) and implicit (port 990 typical) TLS.
  • Large file transfers show progress output.
安全使用建议
This skill appears to do what it says: it's an FTP/FTPS client implemented as Node scripts. Before installing, consider the following: - FTP_CONNECTION contains your FTP server host, user, and password; treat it as a secret and only set it for servers you trust. Use short-lived or limited-permission accounts where possible. - The scripts can read arbitrary local files (for upload or copy) and write to temporary directories; do not run the skill with commands that reference sensitive local paths unless you trust the target server and the invocation context. - FTPS TLS verification is disabled by default (rejectUnauthorized: false) to allow self-signed certs; if you require strict certificate validation, modify createFtpClient to enable verification. - There's a package.json dependency (basic-ftp) but no explicit install step in the registry metadata — ensure the runtime environment has dependencies installed (npm install) before running the scripts. - If you will allow autonomous agent invocation, remember the agent could perform FTP operations automatically using the provided FTP_CONNECTION; consider limiting autonomous use or providing credentials with minimal permissions. If you need higher assurance, request the packager to add an explicit install step, enable strict FTPS verification, and consider an option to restrict allowed local paths for uploads.
功能分析
Type: OpenClaw Skill Name: ftp-client Version: 0.1.0 The skill implements a functional FTP/FTPS client but contains a security vulnerability in `scripts/ftp-utils.mjs` where it explicitly disables SSL certificate verification (`rejectUnauthorized: false`). This configuration exposes FTPS connections to Man-in-the-Middle (MITM) attacks. While the code aligns with its stated purpose of file management and uses the legitimate `basic-ftp` library, the intentional bypass of security defaults is a high-risk flaw.
能力评估
Purpose & Capability
Name/description, required binary (node), primary env var (FTP_CONNECTION), package.json dependency (basic-ftp), and provided scripts all align with an FTP/FTPS client that lists, uploads, downloads, deletes, moves, copies, and reads files.
Instruction Scope
SKILL.md and the scripts instruct the agent to run node scripts that will access the network (FTP servers) and local filesystem (uploads, downloads, temp files). This is expected for an FTP client, but it means the skill can read arbitrary local paths when asked (and upload them to the configured FTP server) and will write temporary files during copy/download operations — consider this an exfiltration risk if untrusted commands or prompts are used.
Install Mechanism
No explicit install spec is provided in the registry metadata despite a package.json listing basic-ftp as a dependency; SKILL.md states basic-ftp is auto-installed via package.json. That is reasonable but inconsistent: the platform or operator must ensure dependencies are installed (npm install) prior to running the scripts. No remote download URLs or obscure installers are used.
Credentials
Only FTP_CONNECTION is required and it is used as expected to supply host, port, username, and password. That is proportionate. Two cautions: (1) credentials are passed in a single env var — protect it like any secret; (2) the code sets rejectUnauthorized: false for FTPS by default, allowing self-signed certificates which weakens TLS security (this is sometimes necessary for legacy FTP servers but is a security tradeoff).
Persistence & Privilege
Skill does not request permanent presence (always: false), does not modify other skills or system-wide configs, and uses only the declared env var. Normal privilege profile for a user-invocable FTP client.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ftp-client
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ftp-client 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release of ftp-client — a full-featured FTP/FTPS client skill. - Connect to remote FTP servers using FTP or FTPS (explicit/implicit TLS) with flexible config. - List, upload, download, delete, move, copy, and create directories on FTP servers. - Supports both file and recursive directory operations. - Provides progress reporting for large file transfers. - Includes commands for file info and reading file content. - Requires setting the FTP_CONNECTION environment variable.
元数据
Slug ftp-client
版本 0.1.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Ftp Client 是什么?

FTP/FTPS client skill. Connect to FTP servers and perform file operations (list, upload, download, delete, move, copy, mkdir, read). Supports FTP and FTPS (e... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 318 次。

如何安装 Ftp Client?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ftp-client」即可一键安装,无需额外配置。

Ftp Client 是免费的吗?

是的,Ftp Client 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Ftp Client 支持哪些平台?

Ftp Client 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Ftp Client?

由 erayai(@erayai)开发并维护,当前版本 v0.1.0。

💬 留言讨论