A plain "GET" subscribes to the topic and prints all published messages. Doing a "POST" publishes the post data to the topic and exits.
Subscribe to the temperature in the "home/bedroom" subject published by example.com:
curl mqtt://example.com/home/bedroom/temp
Send the value '75' to the "home/bedroom/dimmer" subject hosted by the example.com server:
curl -d 75 mqtt://example.com/home/bedroom/dimmer
It outputs two bytes topic length (MSB | LSB), the topic followed by the payload.
Remaining limitations in curl's MQTT support as of September 2020:
No username support
Only QoS level 0 is implemented for publish
No way to set retain flag for publish
No username/password support
No TLS (mqtts) support