Provides FTP access via MCP: list, download, upload, create, and delete on FTP servers.
Configuration
View docs{
"mcpServers": {
"ftp_server": {
"command": "node",
"args": [
"/absolute/path/to/mcp-server-ftp/build/index.js"
],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}This MCP server lets you interact with FTP servers directly from your MCP-compatible client. You can list directories, download and upload files, create folders, and delete items on your FTP server, all through natural-language prompts and MCP tools.
You use this MCP server by connecting it to your MCP client and providing FTP connection details as environment variables. Once configured, you can perform common FTP actions with natural language commands such as: list the files in a directory, download a file, upload content as a new file, create a directory, or delete files and folders. The client sends your request to the MCP server, which handles the FTP operations and returns results.
Prerequisites you need before installation are Node.js 16 or higher and an MCP-compatible client such as Claude for Desktop.
Install via Smithery to use the MCP server with your Claude Desktop setup automatically.
npx -y @smithery/cli install @alxspiker/mcp-server-ftp --client claudeIf you prefer building from source, follow these steps for your operating system.
Linux/macOS: clone the repository, install dependencies, and build the project.
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Install dependencies
npm install
# Build the project
npm run buildIf you are on Windows, use the build helper script to build the project.
# Clone the repository
git clone https://github.com/alxspiker/mcp-server-ftp.git
cd mcp-server-ftp
# Run the Windows build helper script
build-windows.batTo use the server with Claude for Desktop, add the following configuration to your Claude desktop config. The example shows the required execution command, arguments, and FTP connection details.
{
"mcpServers": {
"ftp-server": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-ftp/build/index.js"],
"env": {
"FTP_HOST": "ftp.example.com",
"FTP_PORT": "21",
"FTP_USER": "your-username",
"FTP_PASSWORD": "your-password",
"FTP_SECURE": "false"
}
}
}
}If you encounter build issues on Windows, follow these steps to resolve common problems.
1. Use the provided build-windows.bat script which handles common build issues
2. Make sure Node.js and npm are properly installed
3. Try running the TypeScript compiler directly: `npx tsc`
4. If issues persist, you can use the pre-compiled files in the build directory by running the start scriptnode path\to\mcp-server-ftp\build\index.jsFTP credentials are stored in the Claude configuration file. Ensure this file has appropriate permissions. Consider using FTPS (secure FTP) by enabling FTP_SECURE if your server supports it. The server creates temporary files for uploads and downloads in your system's temp directory.
This server is designed to work with MCP clients that support stdio-based local servers. Ensure your environment variables are kept secure and that your FTP credentials are not exposed in logs or shared configurations.
List contents of an FTP directory to explore files and folders on the server.
Download a file from the FTP server and return its contents to the client.
Upload a new file or overwrite an existing one on the FTP server.
Create a new directory on the FTP server.
Delete a file from the FTP server.
Delete a directory from the FTP server.