File Manager MCP 📂
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)
-
Visit File Manager on smithery
-
Create an account or sign in
-
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:
- Make sure you have the .NET 9.0 SDK installed
- Follow the installation steps below to build and run the application
🛠️ Build and Run Locally
-
Clone the repository:
HTTPS:
git clone https://github.com/taha-ghadirian/FileManagerMcp.gitSSH:
git clone git@github.com:taha-ghadirian/FileManagerMcp.gitThen navigate to the project directory:
cd FileManagerMcp -
Install dependencies:
dotnet restore
- Build the project:
dotnet build
- Run the application in inspector:
npx @modelcontextprotocol/inspector dotnet run
🔧 Configuration
The application uses environment variables for configuration. Here are the required environment variables:
| Option | Description | Required | Default |
|---|---|---|---|
ftpHost | FTP server hostname or IP address | Yes | - |
ftpUsername | FTP account username | Yes | - |
ftpPassword | FTP account password | Yes | - |
ftpPort | FTP server port | No | 21 |
You can set these environment variables in several ways:
- 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.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - 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