I found a solution to my problem. Axon Server can act as a distributed message bus which means that an application can dispatch a command that is handled by another application. Combined with a TargetContextResolver as described in this thread the applications can be connected to different contexts.
I stumbled on this by accident and I wish it would be more explicit in the reference guide. I feel like this is an important feature in Axon.
I have decided to introduce explicit ApiCommands which form the public contract between different contexts. A command handler in the receiving context acts as an ACL and translates the ApiCommand into an internal command. Is this the suggested approach to inter-context communication?