Skip to content

MLLP (Minimal Lower Layer Protocol)

MLLP (Minimal Lower Layer Protocol) frames HL7 v2 messages over TCP: a start block byte (0x0B, vertical tab) before the message, an end block byte (0x1C, file separator) plus a carriage return (0x0D) after it. The receiver reads bytes until it sees the end sequence, so many messages can flow over one long-lived socket, and the acknowledgment for each message returns over the same connection in its own frame.

Start block0x0B (vertical tab)
End block0x1C (file separator)
Trailer0x0D (carriage return)
TransportTCP, typically one long-lived socket per interface
AcknowledgmentThe ACK returns over the same socket, MLLP-framed itself

Example

<0x0B>MSH|^~\&|PIDGEON^^L|PIDGEON_FACILITY|TARGET^^L|TARGET_FACILITY|20260722160739||ACK|289558|P|2.3|||SU|AL|||es^Spanish^ISO639^^^<0x0D>MSA|CE|169768||1|D|ID223583^^^ID349682^^<0x0D><0x1C><0x0D>

An engine-generated ACK (`pidgeon generate ACK --seed 42`; timestamps vary per run) shown inside its MLLP frame. The <0x..> markers stand in for the raw bytes: 0x0B opens the frame, 0x0D ends each segment, and 0x1C 0x0D closes the frame.

Validation context

Strict and compatibility validation notes land here with the phase-1 data export.

This answer, in your terminal

pidgeon generate ACK --seed 42

Wire it into your AI agent:

claude mcp add pidgeon -- npx -y @pidgeonhealth/mcp

Download Post free to browse this reference with generation attached.

HL7® and FHIR® are registered trademarks of Health Level Seven International.

Published by Pattern Engine LLC (Pidgeon Health).

Rendered from the same machine-readable definitions the Pidgeon engine validates against. Hand-authored reference page (phase 1b); the framed message generated with the Pidgeon CLI at seed 42.