Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Hl7tap

FreeNot checked

Parse, pretty-print, diff, and replay HL7 v2 messages over MLLP from the terminal.

GitHubEmbed

About

Parse, pretty-print, diff, and replay HL7 v2 messages over MLLP from the terminal.

README

HL7TAP

HL7TAP

Parse, pretty-print, diff, and replay HL7 v2 messages over MLLP from the terminal.

PyPI CI License: COCL 1.0 Suite

Healthcare & Life-Sciences — HIPAA, PHI, FHIR/HL7, and clinical data.

pip install cognis-hl7tap
hl7tap scan .            # → prioritized findings in seconds

🔎 Example output

Real, reproducible output from the tool — runs offline:

$ hl7tap-emit --version
hl7tap 0.1.0
$ hl7tap-emit --help
usage: hl7tap [-h] [--version] [--format {table,json}] <command> ...

Parse, pretty-print, and diff HL7 v2 messages (curl for HL7 interfaces).

positional arguments:
  <command>
    parse               parse and pretty-print a message
    diff                diff two HL7 messages

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --format {table,json}
                        output format (default: table)

examples:
  # Pretty-print a message
  hl7tap parse demos/01-basic/adt_a01.hl7

  # Emit structured JSON for piping into jq / CI
  hl7tap parse message.hl7 --format json | jq .message_type

  # Diff two messages (exits non-zero when they differ -- CI gate)
  hl7tap diff old.hl7 new.hl7
  hl7tap diff old.hl7 new.hl7 --format json

  # Read from stdin
  cat message.hl7 | hl7tap parse -

Blocks above are real hl7tap output — reproduce them from a clone.

Sample result format (illustrative values — run on your own data for real findings):

{
"Findings": [
    {
        "id": "1234567890",
        "title": "Suspicious Network Traffic",
        "description": "Network traffic from unknown IP address",
        "created_at": "2023-02-20T14:30:00Z",
        "updated_at": "2023-02-20T14:30:00Z",
        "labels": ["network", "suspicious"],
        "observables": [
            {
                "type": "ip",
                "value": "192.168.1.100"
            },
            {
                "type": "port",
                "value": 443
            }
        ]
    }
]
}

Usage — step by step

  1. Install the tool:

    pip install cognis-hl7tap
    
  2. Parse and pretty-print an HL7 v2 message (use - for stdin):

    hl7tap parse adt_a01.hl7
    
  3. Emit structured JSON for piping into jq or assertions:

    hl7tap parse message.hl7 --format json | jq .message_type
    
  4. Diff two messages. diff exits non-zero when they differ, so it doubles as a CI gate:

    hl7tap diff old.hl7 new.hl7
    
  5. Automate / stream. Read from stdin and inspect segments in a pipeline:

    cat message.hl7 | hl7tap parse - --format json | jq .segments
    

Contents

Why hl7tap?

The missing 'curl for HL7 interfaces' — integration engineers can finally test ADT/ORM/ORU feeds without spinning up Mirth.

hl7tap is single-purpose, scriptable, and self-hostable: point it at a target, get prioritized results in the format your workflow already speaks (table · JSON · SARIF), gate CI on it, and let agents drive it over MCP.

Features

  • ✅ Parse Segment
  • ✅ Parse Message
  • ✅ Message To Dict
  • ✅ Pretty Print
  • ✅ Diff Messages
  • ✅ Runs on Linux/macOS/Windows · Docker · devcontainer
  • ✅ Ports in Python, JavaScript, Go, and Rust (ports/)

Quick start

pip install cognis-hl7tap
hl7tap --version
hl7tap scan .                       # scan current project
hl7tap scan . --format json         # machine-readable
hl7tap scan . --fail-on high        # CI gate (non-zero exit)

Example

$ hl7tap scan .
  [HIGH    ] HL7-001  example finding             (./src/app.py)
  [MEDIUM  ] HL7-002  another signal              (./config.yaml)

  2 findings · risk score 5 · 38ms

Architecture

flowchart LR
  IN[input] --> P[hl7tap<br/>analyze + score]
  P --> OUT[report]

Use it from any AI stack

hl7tap is interoperable with every popular way of using AI:

  • MCP serverhl7tap mcp (Claude Desktop, Cursor, Cognis.Studio, uncensored-fleet)
  • OpenAI-compatible / JSON — pipe hl7tap scan . --format json into any agent or LLM
  • LangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool in one line
  • CI / scripts — exit codes + SARIF for non-AI pipelines

How it compares

Cognis hl7tap HAPI HL7v2 + tcpreplay
Self-hostable, no account varies
Single command, zero config ⚠️
JSON + SARIF for CI varies
MCP-native (AI agents)
Polyglot ports (JS/Go/Rust)
Open license ✅ COCL varies

Built in the spirit of HAPI HL7v2 + tcpreplay, re-framed the Cognis way. Missing a credit? Open a PR.

Integrations

Pipes into your stack: SARIF for code-scanning, JSON for anything, an MCP server (hl7tap mcp) for AI agents, and a webhook forwarder for SIEM/Slack/Jira. See docs/INTEGRATIONS.md.

Install — every way, every platform

pip install "git+https://github.com/cognis-digital/hl7tap.git"    # pip (works today)
pipx install "git+https://github.com/cognis-digital/hl7tap.git"   # isolated CLI
uv tool install "git+https://github.com/cognis-digital/hl7tap.git" # uv
pip install cognis-hl7tap                                          # PyPI (when published)
docker run --rm ghcr.io/cognis-digital/hl7tap:latest --help        # Docker
brew install cognis-digital/tap/hl7tap                             # Homebrew tap
curl -fsSL https://raw.githubusercontent.com/cognis-digital/hl7tap/main/install.sh | sh
Linux macOS Windows Docker Cloud
scripts/setup-linux.sh scripts/setup-macos.sh scripts/setup-windows.ps1 docker run ghcr.io/cognis-digital/hl7tap DEPLOY.md (AWS/Azure/GCP/k8s)

Related Cognis tools

  • phiscrub — Stream-scan logs, CSVs, and free-text notes for PHI (names, MRNs, SSNs, dates, addresses) and redact or tokenize in place.
  • dicomsweep — De-identify DICOM imaging studies per the DICOM PS3.15 Annex E profile, scrubbing tags and burned-in pixel text.
  • fhirlint — Validate FHIR R4/R5 resources and bundles against profiles (US Core, etc.) with precise, line-level error reporting.
  • consentledger — Maintain a tamper-evident, hash-chained audit log of patient-data access and consent events.
  • synthcohort — Generate statistically realistic synthetic patient cohorts (FHIR/CSV) from a schema spec for dev and testing.
  • trialwatch — Query, diff, and monitor ClinicalTrials.gov records, alerting on status, enrollment, or result changes.

Explore the suite → 🗂️ all 170+ tools · ⭐ awesome-cognis · 🔗 cognis-sources · 🤖 uncensored-fleet · 🧠 engram

Contributing

PRs, new rules, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.

⭐ If hl7tap saved you time, star it — it genuinely helps others find it.

Interoperability

{} composes with the 300+ tool Cognis suite — JSON in/out and a shared OpenAI-compatible /v1 backbone. See INTEROP.md for the suite map, composition patterns, and reference stacks.

License

Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license ([email protected]). See LICENSE.


Cognis Digital · one of 170+ tools in the Cognis Neural Suite · Making Tomorrow Better Today

from github.com/cognis-digital/hl7tap

Install Hl7tap in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install hl7tap

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add hl7tap -- uvx --from git+https://github.com/cognis-digital/hl7tap cognis-hl7tap

Step-by-step: how to install Hl7tap

FAQ

Is Hl7tap MCP free?

Yes, Hl7tap MCP is free — one-click install via Unyly at no cost.

Does Hl7tap need an API key?

No, Hl7tap runs without API keys or environment variables.

Is Hl7tap hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Hl7tap in Claude Desktop, Claude Code or Cursor?

Open Hl7tap on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Hl7tap with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs