Having done some MQTT IoT work in the past, dropping a couple resources:
https://github.com/eclipse/mosquitto - CLI interface and C bindings. I've only used the CLI interface. Its a nice way to test communication with a remote broker.
RabbitMQ /w MQTT plugin - Message queue based on AMQP. We ran this as the server in a container. There maybe others options like 0MQ (been a few years so don't know every option). I had my clients post to a wild card topic so that I could consume a single device or all devices. Consumption is not with MQTT though. We'd use AMQP on that side.