mqtt-spy is an open source utility intended to help you with monitoring activity on MQTT topics. It's been designed to deal with high volumes of messages, as well as occasional publications.
mqtt-spy is a JavaFX application, so should work on any operating system with an appropriate version of Java 8 installed. It's been tried on various Linux distributions (Mint, Ubuntu, RedHat), Windows 7/8/10 and MacOS.
mqtt-spy-daemon is a Java-based command line tool that does not require a GUI environment. Basic functionality works with Java 7, whereas some of the advanced features like scripting require Java 8 to be installed.
Both tools are still in development, so over the next couple of months more features should become available. For details on what's currently available see the wiki.
Getting in touch
If you have any suggestions, find any bugs, or would like to contribute to the project, please get in touch, either via this page or Twitter (@mqtt_spy).
Control panel (mqtt-spy)
Connection tab (mqtt-spy)
Console output (mqtt-spy-daemon)
The following table shows a comparison of the key features between mqtt-spy-daemon and mqtt-spy (as seen on screenshots above).
|Required version of Java||Java 7 or later||Java 8 Update 60 or later|
|Supported MQTT protocol version||3.1 & 3.1.1||3.1 & 3.1.1|
|MQTT TLS/SSL support||Yes||Yes|
& connection management
|High availability (multiple server URIs, reconnection
|Configuration file driven||Yes||Yes|
|Scripted publications||Yes (started automatically)||Yes (started via GUI)|
|Automated testing (test cases)||Yes||Yes|
|Subscription scripts (e.g. auto-reply or payload reformatting)||Yes||Yes|
|Received message preview||Yes (basic - in the log)||Yes (advanced - GUI & log)|
|Message browsing & searching||-||Yes|
decoding & formatting
topic filtering & searching
|Creating message audit log||Yes||Yes|
|Message audit log browsing||-||Yes|
|Message audit log replay||Yes||Yes|
|Charts / graphing||-||Yes|
|Checking for updates at start-up||-||Yes|