I want to share with you the client that I made (for personal purpose) for using MQTT with Arduino.
It's not a real library, it's a lua script to put on the esp8266 (with nodemcu firmware) that do most of the work + an Arduino sketch that communicates with the esp8266 with a simple ASCII protocol.
Then you can subscribe with something like
mqttSubscribe("hello"); //subscribe to "hello" topic
publish messages with
mqttPublish("sensor", String(analogRead(A0)), 0); //publish new message to "sensor" topic, with retain
and receive message with
void onMessage(String topic, String message) { //new message callback
}
You can find it on GITHUB: https://github.com/Suxsem/Mqttduino