Skills/npm/mcp-server-ftp

mcp-server-ftp@1.4.0

VERIFIED

Publisher claims: "Model Context Protocol server for FTP access" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher alxspiker · publishing for 116 daysInstalls 660Last detonated 3d ago
$claude mcp add mcp-server-ftp -- npx -y mcp-server-ftp
WatchReport an issue

Coverage

Server started and answered tools/list.
Tested
MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
Not tested
what the tools do when called with real credentials

Before you give it your token

It will ask for
FTP_PASSWORDFTP_PRIVATE_KEY_PATHFTP_TLS_REJECT_UNAUTHORIZEDConfiguration, not credentials: APIFY_META_ORIGIN, FTP_ENCRYPTION_KEY, FTP_HOST, FTP_HOST_KEY_SHA256, FTP_LOCAL_ROOTS, FTP_PASSPHRASE, FTP_PORT, FTP_PROTOCOL, FTP_SECURE, FTP_USER
Where it talks to
no vendor host named in the codeAlso 1password.com — not the publisher's domain; check what for before connecting.
What the honeypot saw
no credential files read · no network
What we could not test
what the tools do when called with real credentials

Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names 1password.com as well as its own vendor. The guard injects FTP_PASSWORD, FTP_PRIVATE_KEY_PATH, FTP_TLS_REJECT_UNAUTHORIZED only into requests to the host you bind (and its subdomains) and refuses the rest.

$vet-skills run --net declared -- npx -y mcp-server-ftp

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-11 and scored it 83/100 (Verified). It did what it claims and nothing else we could detect: no undeclared network egress, no credential reads, no persistent instruction writes. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 31 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
11sprocessdependency install exit 0
31sclaimed11 tools: list-directory, download-file, upload-file, upload-local-file, download-to-local, create-directory, delete-file, delete-directory, rename-file, edit-file, append-file
31sprocessscript backend runs setup only
31sprocessno install scripts to re-run

Static findings

HIGH
References a credential file in the home directorybuild/sftp-client.js:18 · References a credential file in the home directoryconst DEFAULT_KEY_PATHS = ["~/.ssh/id_ed25519", "~/.ssh/id_rsa", "~/.ssh/id_ecdsa"];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST03
HIGH
Access to sensitive file pathsbuild/sftp-client.js:18 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesconst DEFAULT_KEY_PATHS = ["~/.ssh/id_ed25519", "~/.ssh/id_rsa", "~/.ssh/id_ecdsa"];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
References a credential file in the home directorybuild/sftp-client.js:60 · References a credential file in the home directory// key at ~/.ssh/id_rsa) silently shadows an explicitly configuredFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST03
HIGH
Access to sensitive file pathsbuild/sftp-client.js:33 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files// back to ~/.ssh defaults. The in-flight promise is memoized so concurrentFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsbuild/sftp-client.js:60 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files// key at ~/.ssh/id_rsa) silently shadows an explicitly configuredFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05

Cost to the agent

Instructions loaded
≈48 tok
1 file · 18 in bundle
Tool list per prompt
≈1,345 tok
11 tools · 122 per tool
Handshake
740 ms
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 101

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for mcp-server-ftp@1.4.0 as of 3d ago. This is the package itself, not its dependencies.