Fediverse(広義)のサーバは、自分自身のソフトウェア名やバージョン、状態、対応機能などの情報をNodeInfoという形式で提供しています。
fedibird.comのNodeInfoはこれです。
https://fedibird.com/nodeinfo/2.0
クライアントアプリを実装する際、この情報を元に、指定したドメインがActivityPubのサーバであるか、どのソフトウェアかを調べ、それに応じた対応をすることができます。
ただし、ソフトウェアの名称を頼りに判別を行うと、よく知られたあらかじめ対応しているアプリならいいのですが、マイナーな実装、新規の実装は無視されることが多くなります。
実際は、ActivityPubサーバであることだけを確認し、それぞれのAPIを呼び出して応答するか確かめるようにすべきで、
そうすると、MastodonのAPIと互換性のあるサーバソフトウェアであれば、アプリ側が知らないサーバソフトウェアであったとしても、対応できるようになります。
ただし、クライアントアプリ側の事情として、未知の実装で不具合が出た際に、互換性のクレームがアプリ開発者側に来るという問題があり、避けたいというケースもままありますので、意図的に対応しないこともあります。
細かい話になりますが、
NodeInfoにはmetadataに自由に項目を含められるので、Pleroma系ではここに細かいサーバの対応情報が含まれています。
Fedibirdでは、MastodonのInstance APIに、各種制限値や対応している機能の一覧を含めています。
各ソフトウェア、それぞれ、どこかにこういった情報を出すよう工夫しています。
参照するのであればこういったメタ情報をみるべきですし、明示的に無効であることが示されていないものはトライして確認するような実装にしてもらえると助かります。