The Seven Best MQTT Client Tools

We recently released a new series about awesome MQTT client tools: MQTT Toolbox

Everybody from MQTT beginner to expert needs a handy tool to try out stuff or for debugging. A while ago we had already taken a look at such tools, but since then a lot of new tools have emerged, which definitely justifies an update on that topic. The goal of this blog post is to give a brief overview of the best MQTT client tools for different platforms and highlight special features.

We from HiveMQ are very active in spreading the word about MQTT at conferences in Germany & Europe and to the whole world over the internet. So we often demonstrate and explain how MQTT works and what its benefits are. Also during the further development of HiveMQ and when implementing IoT solutions for customers, we need tools to publish and subscribe to different topics easily. These are only 2 use cases out of many others where a MQTT client tool comes very handy and is often inevitable. Due to the particular suitability of MQTT for mobile devices, tools for mobile platform are as important as desktop versions.
So there’s definitely a right to exist for tools on different platforms and we will directly jump into our top 7 in no particular order.

MQTT.fx

(available for Win/MacOSX/Linux, Link, free)

MQTT.fx - Broker status via $SYS-topics

MQTT.fx – Broker status via $SYS-topics

MQTT.fx is a fairly young tool, which is only around since 2014. It’s the new cool kid on the block, but has already built its fan base in our team. It comes with the portability of the Java VM and a quite impressive feature set. MQTT.fx is implemented with JavaFX, which is quite obvious, when opening the tool for the first time. Due to the native packaging available for JavaFX, there are binaries for Windows, MacOSX and Linux, which makes the installation a breeze.
But lets have a look at the MQTT part. Besides standard publish/subscribe functionality it provides support for $SYS topics and connection profiles for connecting to different brokers. Especially the $SYS topic support is awesome, it helps to inspect the internals of the broker from time to time. We haven’t seen that kind of displaying in another tool. The connection profiles allow the configuration of connection options like client id, SSL/TLS, username/password and Last Will and Testament. Another functionality which has been introduced in one of the last releases is scripting. This makes the simulation of different sensors, etc. easily possible. Just for the record, there are also a few small things, which sometimes makes the user experience inconvenient. For example the publish/subscribe functionality is separated in two tabs, which results in constant switching the tabs. Update: It is possible to view publisher and subscriber at the same time by detaching one of the tabs. Also here and there small bugs occur. But regardless of these little things, the listed features makes it definitely one of the best choices, when experimenting with MQTT at the moment.

mqtt-spy

(based on Java 8, Link, OpenSource)

mqtt-spy publish/subscribe (source: https://github.com/eclipse/paho.mqtt-spy)

mqtt-spy publish/subscribe (source: https://github.com/eclipse/paho.mqtt-spy)

mqtt-spy has been around since 2014 and as of early 2016 is part of Eclipse Paho and Eclipse IoT. It ships as a JAR file and runs on top of Java 8 and JavaFX. MQTT-Spy has a very nice way of displaying the basic MQTT publish/subscribe mechanism. It makes it easy to publish and subscribe at the same time and there are different tabs for connections to several brokers. The different areas of the pub/sub window (publish, new subscription, subscription & messages) can be closed down to make room for the currently used ones. Its search functionality allows to find and filter the often heavy load of MQTT messages running through such a tool.
Another handy feature is that it logs every published and received message in the standard output and also into a file. So it is easy to open the file in any text editor and make deeper analysis of the messages, which is often necessary when dealing with many MQTT messages. It also comes with advanced features like scripting, filtering & searching, decoding & formatting received messages and graphing/charts. It’s a sophisticated tool for the day-to-day usage.

MQTT Inspector

(iOS, Link, $1.99)

MQTT Inspector on iPad (source: http://jpmens.net/2013/11/19/mqtt-inspector-for-ios/)

MQTT Inspector on iPad (source: http://jpmens.net/2013/11/19/mqtt-inspector-for-ios/)

The MQTT inspector is a really great tool for any iOS device. It is especially suited for power users. It is possible to create and store connection options, similar to most of the other tools. But this tool also allows to pre-configure publishes and subscriptions as templates. After connecting to the broker a simple click activates a subscription or triggers a publish. Therefore it is good to know beforehand to which topics MQTT Inspector should publish or subscribe to. Of course it is possible to change this during an open connection. As a power user tool it allows to switch between a simple message feed, a view grouped by topic and a low level view.The low level mode shows low-level MQTT command messages and some basic data plus its representation in hex. Another functionality allows to filter the message by their topic, attributes or payload. This is very handy when a lot of messages arrive and only some of them are of interest. As soon as you have understood the handling of MQTT inspector there’s no way it wouldn’t make it onto your iOS device.

MyMQTT

(Android, Link, free)

MyMQTT Android App. Picture from Google Play Store

MyMQTT Android App (Picture from Google Play Store)

The Android App MyMQTT can be installed via the Google Play Store. It is a useful app that has basic publish and subscribe capabilities. A functionality which differentiates this app from others is its ability to store messages on the phone. These are shown in the menu under “Stored Messages”. The app is still under development and essential features like different quality of service levels, Last Will and Testament as well as retained messages are missing. However, the last update is almost one year old. So hopefully the announcement of the new MQTT standard this September will bring a new version of this useful app for Android.

HiveMQ Websocket Client

(Web, Link, OpenSource)

HiveMQ Websocket Client

HiveMQ Websocket Client

The HiveMQ Websocket Client is a simple and clean tool made by us while implementing the native websocket support for HiveMQ. After websockets were introduced in HiveMQ, we decided to improve this app a little bit and made it available to everybody as open source. This application is also a perfect starting point to build your own app with the Eclipse Paho JavaScript library. It is a full-fledged MQTT client, which supports all common protocol features except persistent session. The visualization of the different subscription is colorized and the predefined defaults make it possible to publish and receive a message with 3 clicks and no input (Connect, Add new Topic Subscription, Publish). It can also connect to local brokers, when using a local IP address or hostname. The tool particularly comes handy when a MQTT connection over Websockets should be tested or a tool is needed without prior installation. Of course the HiveMQ websocket client works in every modern browser and on most operating systems, including iOS and Android.

MQTT Lens

(Chrome, Link, OpenSource)

MQTT Lens - pub/sub view

MQTT Lens – pub/sub view

MQTT Lens is also a quite new project, which was developed during the Google Summer of Code 2014. It can be easily installed through the Google Chrome App Store. The tool has a pretty clean interface and supports all the available connection options from the MQTT spec, except persistent sessions. It accepts connections to more than one broker at the same time and colors them differently for easy association. The interface for subscribing, publishing and seeing all received messages is simple and easy to grasp. Sadly there is no possibility to publish retained messages. But although this app is installed via Chrome, it runs as standalone application and can also connect to brokers via the plain MQTT port 1883, which can’t be done by pure JavaScript Web clients. A nice feature is the display of JSON payloads in a pretty way. In summary, MQTT Lens is particularly well suited for people who need basic pub/sub functionality without having power user needs.

mosquitto_tools

(commandline, Link, OpenSource)

Nowadays with all the fancy client tools, there’s still a place for the mosquitto publish and subscribe tools. They are still the best option on a headless server for verifying the correct installation of a MQTT broker and doing other MQTT tests. The feature set is complete and it is ideal for devops, power users or everybody else who loves to work with the console.

Others

There are also other tools, which we didn’t cover in this post, they can be found on the official MQTT website. The following have also been covered in our earlier post:
– MQTT.app (MacOSX)
– SimpleMessage (MacOSX)

Summary

To sum things up, since the last time we had a look at MQTT client tools, the MQTT tool landscape has changed a lot and there are some really great new tools to get started with MQTT and for everday use.

What’s your favorite tool out there? Did we miss your favorite MQTT tool in this top 7 list? Tell us in the comments!

20 comments

  1. Jens Deters says:

    In MQTT.fx it is possible to detach the a tab to become separate windows. Closing of the window restores the tab at its former position. With this feature you can easily e. g. place “publish” next to “subscribe”.

    1. Hi Jens,

      thanks for the info, I didn’t know that. I have updated the blog post!

      Christian

    2. yuvraj upadhyay says:

      how to install mqtt.fx on raspberry pi or rasbian os

    3. Hi,

      MQTT.fx is a Java based application, so it should be enough to download the Linux installer.

      Hope this helps,
      Dominik from the HiveMQ Team

  2. Andy Piper says:

    I would recommend you choose either the Eclipse view / plugin, or the Client GUI Utility, from the Paho project instead of IA92 – that is very, very old and outdated code now!

    1. Hi Andy,

      thanks for the hint, I removed the mentioning of the tool.
      Can you send me links for these two tools and I’ll have a look.

      Christian

  3. Andrew McClure says:

    Thanks for putting this list together!

    If you are integrating geographically specific data via MQTT, fee free to experiment with our MQTT Client QGIS Plugin – Telemetry Layer: http://agsense.co.nz/telemetrylayer

    1. Hi Andrew,

      cool stuff, so with your plugin it’s possible to display real time at geographical locations? or what are the use cases for it?

      Thanks,
      Christian

  4. Sabiha Taskin says:

    Hello,
    Can you help me on how to create a MQTT client at Codewarrior IDE for Freedom board.
    I need to send a packet to the MQTT gateway server using the MQTT client.

  5. Nubbsoft says:

    Another useful android app is MQTT Widget available for free on the play store: https://play.google.com/store/apps/details?id=com.gmail.nubbsoft.mw
    It is a MQTT client application that provides you with an unlimited number of fully configurable widgets [buttons,sliders, setpoints, Strings, etc.] that are able to exchange MQTT information with a MQTT broker. It therefore gives you a configurable GUI for interacting with a MQTT broker.

  6. Hi there,
    A very useful article that pointed me in the direction of using one of the clients MQTT.fx for testing and debugging a ssl/tls connection. I had previously been using Mqtt_lens but find this client tool far more useful and intuitive. Thank you for taking the time to create this list.

  7. We built a simple, configurable & ready to use Android app for our IoT tutorials. Made it available on Play Store and code will be available on GitHub soon.

    This app has been designed to help you get started with your IoT journey. Simply configure your MQTT server details, and start receiving events in the app immediately. Great for prototyping!

    MQTT Viewer – Download: https://play.google.com/store/apps/details?id=com.codifythings.universalmqttclient
    MQTT Viewer – User Guide: http://codifythings.com/2016/08/04/iot-mobile-apps-mqtt-viewer/

  8. wutu says:

    Nice list. Instead MyMQTT, I would suggest IoT MQTT Dashboard.
    https://play.google.com/store/apps/details?id=com.thn.iotmqttdashboard

  9. Sameer Betageri says:

    Thank you for putting the list together for mqtt clients. This was very much needed. I am running mosquitto mqtt broker on windows 7 , i need the gui client to interact with the Mosquitto mqtt client. Which tool is better suited for me. Thanks in advance.

  10. Andrea says:

    “Muchisimas gracias por la info… estaba buscando en Google hasta que por fin encuentro aqu lo que busco”

  11. Lidia says:

    “Muchisimas gracias por la info… estaba buscando en Google hasta que por fin encuentro aqu lo que busco”

Leave a Reply

Your email address will not be published. Required fields are marked *