icon for mcp server

File Manager FTP

STDIO

A powerful and user-friendly File Manager for managing FTP file operations.

File Manager MCP 📂

License: GPL v3 Maintenance smithery badge

A powerful and user-friendly File Manager application that provides a modern interface for managing FTP file operations.

🤖 AI-Powered Development: This project is a result of vibe coding through AI prompt engineering. The entire codebase was developed by collaborating with AI, showcasing the potential of modern AI-assisted development practices.

🚀 Features

  • 📁 Browse and manage remote FTP directories
  • ⬆️ Upload files and directories
  • ⬇️ Download files and directories
  • 🗑️ Delete files and directories
  • 📝 Create new directories
  • 🔄 Recursive file operations support
  • 💻 Clean and intuitive user interface

🚀 Usage

Using Smithery Hosted Service (Recommended)

  1. Visit File Manager on smithery

  2. Create an account or sign in

  3. Connect using your preferred development environment:

    • Visual Studio Code
    • Cursor
    • Any IDE or tool with MCP integration

Alternative: Local Installation

If you prefer running the application locally, follow these steps:

  1. Make sure you have the .NET 9.0 SDK installed
  2. Follow the installation steps below to build and run the application

🛠️ Build and Run Locally

  1. Clone the repository:

    HTTPS:

    git clone https://github.com/taha-ghadirian/FileManagerMcp.git

    SSH:

    git clone [email protected]:taha-ghadirian/FileManagerMcp.git

    Then navigate to the project directory:

    cd FileManagerMcp
  2. Install dependencies:

dotnet restore
  1. Build the project:
dotnet build
  1. Run the application in inspector:
npx @modelcontextprotocol/inspector dotnet run

🔧 Configuration

The application uses environment variables for configuration. Here are the required environment variables:

OptionDescriptionRequiredDefault
ftpHostFTP server hostname or IP addressYes-
ftpUsernameFTP account usernameYes-
ftpPasswordFTP account passwordYes-
ftpPortFTP server portNo21

You can set these environment variables in several ways:

  1. Setting them inline when running the application:
    ftpHost=ftp.example.com ftpUsername=myuser ftpPassword=mypassword npx @modelcontextprotocol/inspector dotnet run

⚠️ Security Note: Never commit sensitive information like passwords to version control. Always use environment variables or secure secrets management for production deployments.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details. This means:

  • You can freely use, modify, and distribute this software
  • If you modify and distribute this software, you must:
    • Make your source code available
    • License your modifications under GPL v3.0
    • Document your changes
    • Preserve the original copyright notices

📞 Support

If you have any questions or need support, please open an issue in the GitHub repository.

✨ Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Built with .NET and modern best practices

Made with ❤️ by Taha Ghadirian

Be the First to Experience MCP Now