Developer documentation
The backends encapsulate the actual communication with a remote host with a simple abstraction, namely that the backend can perform 4 operations: GET, PUT, LIST, DELETE. All operations performed by Duplicati relies on only these operations, enabling almost any storage to be implemented as a destination.
This includes object storage (common in cloud storage) because it uses very universal capabilities.
The Source side is handled in detail by design, recording metadata such as times and permissions, reading through files a block at a time to spot recent changes, dealing with things such as links, etc.
Generally, it runs best when the Source is local, even though some file-like things that use networks underneath can sometimes be handled. NFS and SMB would be ones that give pretty good abilities, however speed is probably worse, and compexity can add issues. Getting into other things such as backing up a cloud server over SFTP or something gets into the need-simulated-filesystem problem.
People do ask, and it’s a valid need. It just doesn’t fit Duplicati’s asymmetric Source and Destination.
Rclone is even more of a Swiss Army knife, but sadly they don’t seem to want to go into MTP either.
If you can find something that would satisfactorily do the file moving (ideally a simulated filesystem), possibly this can be sort of pulled off, but IIRC the USB drivers (e.g. in Windows) have problems too.
While wondering if rclone could pull this off, I searched in Google for “rclone” “mtp”. I posted first hit.
Why is MTP such a horrible piece of technology, especially on Linux? was its second, but had some comments that might be useful. If not, there might be an answer somewhere that someone can find.
EDIT:
I found payware ($49.95 per user) that may help, someone seeking freeware, and more complaints.
Duplicati is currently written for .NET Framework and mono (putting the portability burden on mono).
Some advanced Source abilities get beyond what those can do, so wind up getting into native code, which can still be portable if it’s on the system (e.g. Windows) already. I think AlphaFS provides that.
MediaDevices is another open source API, saying it wraps the native Windows MTP COM interface, specifically noting that it doesn’t work on Linux and Mac. Once you leave portable code, life is tough.
Media Transfer Protocol at Arch Linux gives some Linux ideas, while noting it’s messy and variable.
In comparison, the Duplicati network based destinations are almost all standard portable TCP code.
Storj DCS is an exception, but the native code (x64 and x86 – no ARM yet) was provided by others.