メディア転送プロトコル
設計上、MTPデバイス(およびPTPデバイス)はいわゆる可搬媒体としては扱われない。ファイルシステムはデバイス側で実装されており、コンピュータ側のファイルシステムが使われるわけではない。理論上はOSがこの違いを隠蔽できるが、WindowsやmacOSではそうなっていない。しかも、デバイスのファイルシステムが破損した場合、コンピュータ側の修復ツールでは修復できない。
さらに、MTPのI/Oコマンドは限定的である。コンテンツやキーワードの更新はできない。つまりファイルというオブジェクトを転送するだけであって、通常のファイルシステムのインタフェースとは異なる。
MP3やWAVといったメディアファイル以外のデータはMTPでは一般に転送できない。これは仕様上の制約というよりも、アプリケーションの実装上の制約である。ただし、Windows ではどういう拡張子のファイルでもMTPデバイスに転送可能である(Linuxにも同様の機能が存在する)。
MTP Basicは標準規格として提案され、各種プラットフォームで利用可能になっている。上述したWindows以外の状況を以下に述べる。
Xbox 360はMTPデバイスを接続可能
Linuxでは以下のような実装がある。 libgphoto2ライブラリ。これを使ったアプリケーションとしてF-Spotがある。 libmtpライブラリ。これを使ったアプリケーションとして、Amarok、Audacious、Banshee、Rhythmboxがある。 GNOMEのファイルでは、gphoto2:// というURIを付けることでMTPデバイスにアクセスできる。 MTPfsはlibmtpを使い、MTPデバイスをファイルシステムのようにマウントできる。 PCMan File Manager (PCManFM) はGVfsを利用して、MTPデバイスにWindowsのエクスプローラーのようにアクセスできる。
macOSではXNJBを使ってMTPをサポートしている(libmtpライブラリを移植したものを使用)。
Symbian OSはMTPサポート済み。
AmigaOSとMorphOSでは、Poseidon USB Stackを使ってMTPデバイスをサポートしている。
Songbirdでは、実験的にMTPをサポートしているが、今のところWindows XPまたはVistaでしか機能しない。
Androidでは、API Level 12 (Android 3.1) からサポートしている(パッケージ android.mtp)。
しかしデバイスが単なるUSBメモリではなく大容量メモリを持った自律的デバイスの場合、デバイス自身がストレージの内容を書き換える可能性がある。そのため、両者の更新がかち合ってファイルが破損する危険性が伴う。
MTPとPTPは、この問題を解決するため、ストレージ全体をブロックレベルで扱うのではなく、ファイル単位で管理する。
さらにMTPでは、MTPイニシエータがデバイスのファイルフォーマットや機能を把握することができる。MTPイニシエータでは、ファイルのアンロックや制限された機能を利用するためにパスワードなどの情報をデバイスに渡す必要がある。このような部分は規格の中核部には含まれず、ベンダーが自由に拡張できる。例えば MTPZ (Zune Extension to MTP) では、認証処理をしないとファイルへのアクセスができない。