SFTP-only file access for AI: browse, edit, transfer and sync files, no shell access needed.
Connect Runs on your machine
claude mcp add sftp-mcp -e SFTP_HOST=<SFTP_HOST> -e SFTP_PORT=<SFTP_PORT> -e SFTP_USER=<SFTP_USER> -e SFTP_PASSWORD=<SFTP_PASSWORD> -e SFTP_PRIVATE_KEY=<SFTP_PRIVATE_KEY> -e SFTP_PASSPHRASE=<SFTP_PASSPHRASE> -e SFTP_SERVERS_FILE=<SFTP_SERVERS_FILE> -e SFTP_READ_ONLY=<SFTP_READ_ONLY> -e SFTP_ALLOW_DESTRUCTIVE=<SFTP_ALLOW_DESTRUCTIVE> -e SFTP_ALLOWED_WRITE_PREFIX=<SFTP_ALLOWED_WRITE_PREFIX> -e SFTP_ALLOWED_READ_PREFIX=<SFTP_ALLOWED_READ_PREFIX> -- npx -y [email protected]
{
"mcpServers": {
"sftp-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SFTP_HOST": "<SFTP_HOST>",
"SFTP_PORT": "<SFTP_PORT>",
"SFTP_USER": "<SFTP_USER>",
"SFTP_PASSWORD": "<SFTP_PASSWORD>",
"SFTP_PRIVATE_KEY": "<SFTP_PRIVATE_KEY>",
"SFTP_PASSPHRASE": "<SFTP_PASSPHRASE>",
"SFTP_SERVERS_FILE": "<SFTP_SERVERS_FILE>",
"SFTP_READ_ONLY": "<SFTP_READ_ONLY>",
"SFTP_ALLOW_DESTRUCTIVE": "<SFTP_ALLOW_DESTRUCTIVE>",
"SFTP_ALLOWED_WRITE_PREFIX": "<SFTP_ALLOWED_WRITE_PREFIX>",
"SFTP_ALLOWED_READ_PREFIX": "<SFTP_ALLOWED_READ_PREFIX>"
}
}
}
}
{
"mcpServers": {
"sftp-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SFTP_HOST": "<SFTP_HOST>",
"SFTP_PORT": "<SFTP_PORT>",
"SFTP_USER": "<SFTP_USER>",
"SFTP_PASSWORD": "<SFTP_PASSWORD>",
"SFTP_PRIVATE_KEY": "<SFTP_PRIVATE_KEY>",
"SFTP_PASSPHRASE": "<SFTP_PASSPHRASE>",
"SFTP_SERVERS_FILE": "<SFTP_SERVERS_FILE>",
"SFTP_READ_ONLY": "<SFTP_READ_ONLY>",
"SFTP_ALLOW_DESTRUCTIVE": "<SFTP_ALLOW_DESTRUCTIVE>",
"SFTP_ALLOWED_WRITE_PREFIX": "<SFTP_ALLOWED_WRITE_PREFIX>",
"SFTP_ALLOWED_READ_PREFIX": "<SFTP_ALLOWED_READ_PREFIX>"
}
}
}
}
{
"servers": {
"sftp-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SFTP_HOST": "<SFTP_HOST>",
"SFTP_PORT": "<SFTP_PORT>",
"SFTP_USER": "<SFTP_USER>",
"SFTP_PASSWORD": "<SFTP_PASSWORD>",
"SFTP_PRIVATE_KEY": "<SFTP_PRIVATE_KEY>",
"SFTP_PASSPHRASE": "<SFTP_PASSPHRASE>",
"SFTP_SERVERS_FILE": "<SFTP_SERVERS_FILE>",
"SFTP_READ_ONLY": "<SFTP_READ_ONLY>",
"SFTP_ALLOW_DESTRUCTIVE": "<SFTP_ALLOW_DESTRUCTIVE>",
"SFTP_ALLOWED_WRITE_PREFIX": "<SFTP_ALLOWED_WRITE_PREFIX>",
"SFTP_ALLOWED_READ_PREFIX": "<SFTP_ALLOWED_READ_PREFIX>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
SFTP_HOSTOptional | SSH host (single-server mode). |
SFTP_PORTOptional | SSH port. |
SFTP_USEROptional | SSH username (single-server mode). |
SFTP_PASSWORDOptional, secret | Password authentication. |
SFTP_PRIVATE_KEYOptional | Path to a private key file. |
SFTP_PASSPHRASEOptional, secret | Passphrase for the private key. |
SFTP_SERVERS_FILEOptional | Path to a JSON map of server id to connection, for multiple servers. Replaces the single-server variables. |
SFTP_READ_ONLYOptional | Deny every remote mutation. |
SFTP_ALLOW_DESTRUCTIVEOptional | Set to false to deny delete, rmdir, rename and non-dry-run sync. |
SFTP_ALLOWED_WRITE_PREFIXOptional | Absolute remote path prefix that mutations are limited to. |
SFTP_ALLOWED_READ_PREFIXOptional | Absolute remote path prefix that reads are limited to. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 12 Nov 2026 |
| Last updated | 12 Nov 2026 |
| Registry name | io.github.AdversTM/sftp-mcp |
More files and documents servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
