Decode an MQTT control packet (MQTT 3.1.1) into its fixed header, flags and fields. Paste the raw bytes as hex or base64. Everything runs in your browser.
Parses the fixed header (packet type, flags, variable-length Remaining Length) and the variable header / payload for CONNECT, CONNACK, PUBLISH, SUBSCRIBE, SUBACK, the PUBACK family, UNSUBSCRIBE, PING and DISCONNECT. MQTT 5.0 property blocks are reported by length rather than fully expanded.
Decode an MQTT control packet into its fixed header, flags and fields. Paste hex or base64. Runs entirely in your browser.
MQTT is the lightweight publish/subscribe protocol behind most IoT messaging. Its packets are compact binary structures, so a captured CONNECT, PUBLISH or SUBSCRIBE looks like an opaque blob of hex. This tool parses an MQTT 3.1.1 control packet and shows what it actually contains: the packet type, header flags, topics, client identifiers, credentials and payload.
Input:
10 10 00 04 4d 51 54 54 04 02 00 3c 00 04 74 65 73 74
Output:
CONNECT, protocol MQTT level 4, clean session, keep alive 60s, client ID test
Which MQTT version is supported?
MQTT 3.1.1 is fully decoded. MQTT 5.0 packets are recognised and decoded where they overlap, but the v5 property blocks are shown by length rather than parsed field by field.
What input format does it take?
The raw packet bytes as hex (with or without spaces) or base64, for example copied from Wireshark or a TCP capture.
Can it read CONNECT credentials?
Yes. If the CONNECT packet carries a username and password they are shown, which is useful when auditing brokers that accept plaintext credentials.
Is anything uploaded?
No. The packet is parsed entirely in your browser.