{
"mcpServers": {
"ftp": {
"command": "/path/to/mcp-server-ftp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 8 days ago.
Will it work with my client?
Transport: stdio, http. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
Context cost
10 tools. ~1,000 tokens (0.5% of 200K).
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
list_profilesList configured FTP server profiles (no passwords shown)
list_directoryList files/dirs at a remote path (type, size, date, name)
read_fileRead a remote file and return contents as text
download_fileDownload a single remote file to a local path
upload_fileUpload a local file to a remote path
download_directoryRecursively download a remote directory
upload_directoryRecursively upload a local directory
deleteDelete a remote file or empty directory
renameRename or move a remote file or directory
mkdirCreate a remote directory
This server is missing a description.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Mcp Server Ftp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server for FTP file operations. Browse, read, download, upload, and manage files on remote FTP servers.
Built with Rust, rmcp, and suppaftp.
read_file| Tool | Description |
|------|-------------|
| list_profiles | List configured FTP server profiles (no passwords shown) |
| list_directory | List files/dirs at a remote path (type, size, date, name) |
| read_file | Read a remote file and return contents as text |
| download_file | Download a single remote file to a local path |
| upload_file | Upload a local file to a remote path |
| download_directory | Recursively download a remote directory |
| upload_directory | Recursively upload a local directory |
| delete | Delete a remote file or empty directory |
| rename | Rename or move a remote file or directory |
| mkdir | Create a remote directory |
All tools accept an optional profile parameter. When omitted, the default_profile from config is used.
Create a TOML config file at ~/.config/mcp-server-ftp/config.toml:
default_profile = "myserver"
[[profiles]]
name = "myserver"
host = "ftp.example.com"
port = 21
username = "user"
password = "pass"
tls = false
passive = true
timeout_secs = 30
You can define multiple [[profiles]] blocks to manage several FTP servers.
| Field | Default | Description |
|-------|---------|-------------|
| name | (required) | Profile name used to reference this server |
| host | (required) | FTP server hostname or IP |
| port | 21 | FTP port |
| username | "" | FTP username |
| password | "" | FTP password |
| tls | false | Enable TLS (not yet implemented) |
| passive | true | Use passive mode |
| timeout_secs | 30 | Connection timeout in seconds |
Requires Rust 2024 edition (1.85+).
cargo build --release
The binary is output to target/release/mcp-server-ftp.
Add to your MCP server configuration:
{
"mcpServers": {
"ftp": {
"command": "/path/to/mcp-server-ftp"
}
}
}
Enable debug logging with the RUST_LOG environment variable:
{
"mcpServers": {
"ftp": {
"command": "/path/to/mcp-server-ftp",
"env": {
"RUST_LOG": "debug"
}
}
}
}
src/
main.rs — Entry point: config load, tracing init, stdio transport
config.rs — TOML config parsing, multi-profile support
server.rs — MCP tool definitions via rmcp #[tool_router]
ftp.rs — Async FTP client wrapper (connect, list, read, download, upload, delete, rename, mkdir)
MIT