How to Parse HL7 Messages with AI — Free MCP Server
TL;DR Install the DICOM/HL7/FHIR MCP Server ( pip install dicom-hl7-mcp ), add it to Claude Desktop, and paste any HL7 v2.x message. Claude parses every segment, names every field, looks up table values, and explains what the message means in context. Free. No license required. The server covers 15 HL7 segment types, 200+ DICOM tags, and 20+ HL7 code tables. The Problem If you've worked in healthcare IT, you've done this a thousand times: someone sends you a raw HL7 message and asks "what's wrong with this?" MSH|^~\ |RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1 PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000 OBX|1|FT| GDT^Report||FINDINGS: Normal CT abdomen.||||||F You squint at pipe-delimited fields, count positions, check
TL;DR
Install the DICOM/HL7/FHIR MCP Server (pip install dicom-hl7-mcp), add it to Claude Desktop, and paste any HL7 v2.x message. Claude parses every segment, names every field, looks up table values, and explains what the message means in context. Free. No license required. The server covers 15 HL7 segment types, 200+ DICOM tags, and 20+ HL7 code tables.
The Problem
If you've worked in healthcare IT, you've done this a thousand times: someone sends you a raw HL7 message and asks "what's wrong with this?"
MSH|^~\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1 PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000 OBX|1|FT|&GDT^Report||FINDINGS: Normal CT abdomen.||||||FMSH|^~\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1 PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000 OBX|1|FT|&GDT^Report||FINDINGS: Normal CT abdomen.||||||FEnter fullscreen mode
Exit fullscreen mode
You squint at pipe-delimited fields, count positions, check which table F refers to in OBX-11, and try to remember if OBR-18 is the accession number or the placer order number.
According to the HL7 International v2.5.1 specification, there are over 180 segment types and hundreds of code tables. Memorizing them isn't realistic. But an AI tool that knows the spec can look them up instantly.
Setup: 60 Seconds
Step 1: Install the MCP Server
pip install dicom-hl7-mcp
Enter fullscreen mode
Exit fullscreen mode
The package is 120KB, pure Python, no compiled dependencies. Works on Python 3.10+.
Step 2: Add to Claude Desktop
Open your Claude Desktop config:
-
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
-
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this:
{ "mcpServers": { "dicom-hl7-assistant": { "command": "uvx", "args": ["dicom-hl7-mcp"] } } }{ "mcpServers": { "dicom-hl7-assistant": { "command": "uvx", "args": ["dicom-hl7-mcp"] } } }Enter fullscreen mode
Exit fullscreen mode
Restart Claude Desktop. Done.
Step 3: Paste and Ask
Paste your HL7 message into Claude and say:
"Parse this HL7 message"
Claude calls the parse_hl7_message tool and returns every field with its name, value, data type, table lookups, and contextual notes.
What You Get
For the message above, Claude returns a full parse with field-level detail:
Segment Field Name Value Notes
MSH-9 Message Type ORU^R01 Observation Result/Unsolicited Radiology report delivery
PID-3 Patient ID List MRN12345 Medical Record Number Assigning authority: HOSP
PID-5 Patient Name DOE^JOHN Last^First format PN data type per HL7 spec
OBR-4 Universal Service ID CTABD^CT Abdomen^L Procedure code Local coding system (L)
OBX-11 Result Status F Final result HL7 Table 0085
Plus vendor quirks, cross-references, and integration notes based on 19 years of building PACS, RIS, and HIS interfaces in production healthcare environments.
What the Server Knows
The DICOM/HL7/FHIR MCP Server (built by NyxTools) includes a curated knowledge base drawn from published standards and real-world integration experience:
Coverage Count Source
DICOM tags ~200 most common DICOM PS3.6 (2024b)
HL7 segments 15 (MSH, PID, PV1, OBR, OBX, ORC, and more) HL7 v2.5.1
HL7 code tables 20+ (Administrative Sex, Patient Class, Result Status, etc.) HL7 International
FHIR R4 mappings 96 cross-standard mappings HL7 v2-to-FHIR IG
Vendor private tags 7 vendors (GE, Siemens, Philips, Fuji, Agfa, Canon, Hologic) Field experience
Integration patterns 7 (ADT feed, order-to-result, IHE SWF, and more) IHE Technical Framework
5 Free Tools
Tool What It Does
lookup_dicom_tag
Look up any DICOM tag by number or keyword
explain_dicom_tag
Detailed explanation with vendor quirks
parse_hl7_message
Parse HL7 v2.x messages with field-level detail
explain_hl7_segment
Explain any segment's fields and data types
lookup_hl7_table
Look up HL7 table values
Free, forever. No license, no sign-up, no email gate.
Premium: Cross-Standard Mapping + PACS Connectivity
The premium tier (v0.2.0, released April 2026) adds 12 more tools:
-
Cross-standard mapping: DICOM-to-HL7, HL7-to-FHIR with data type conversion notes
-
Mirth Connect generation: Complete channel XML configs from a use case description
-
PACS connectivity: C-FIND, C-MOVE, DICOMweb (QIDO-RS, WADO-RS) to query real PACS systems
-
Study summary: Query a study from PACS and auto-map it through DICOM, HL7, and FHIR in one call
17 tools total. The only MCP server that bridges all three healthcare standards with live PACS connectivity.
Premium license at nyxtools.gumroad.com
FAQ
What HL7 versions does this support? v2.3 through v2.9, with focus on v2.5.1 (the most widely deployed version in US healthcare). The parser handles any pipe-delimited HL7 v2.x message regardless of version.
Does it work with Mirth Connect? Yes. The free tier parses messages you're debugging in Mirth. The premium tier generates complete Mirth Connect channel configurations from a use case description.
Can I connect it to my PACS? With the premium tier and [pacs] extras (pip install dicom-hl7-mcp[pacs]), you can connect via C-FIND/C-MOVE or DICOMweb. Tested with Orthanc, RamSoft, and DCM4CHEE.
Is patient data (PHI) safe? The free reference tools process standards metadata, not patient data. The PACS connectivity tools include PHI safety: log redaction, result warnings, and optional output redaction. See the PHI Safety section in the README.
What MCP clients work with this? Any MCP-compatible client. Tested with Claude Desktop, Claude Code, and Cursor.
Links
-
GitHub: NyxToolsDev/dicom-hl7-mcp-server
-
PyPI: dicom-hl7-mcp
-
Official MCP Registry: io.github.NyxToolsDev/dicom-hl7-mcp-server
-
Glama: Quality A, Security A, License A
Last updated: April 2026 | v0.2.0
Built by NyxTools. 19 years of healthcare IT integration experience, packaged as open-source tools.
Sign in to highlight and annotate this article

Conversation starters
Daily AI Digest
Get the top 5 AI stories delivered to your inbox every morning.
More about
claudereleaseversion
Agentic PHPUnit output
I was made a aware of PAO . And while it think it is a good tool I think we can do better by making it more useful for an LLM. The package has options for PHPUnit, Pest and ParaTest. I'm only going to focus on PHPUnit, version 12 in particular. The setup PHPUnit has an option to add extensions . The best way to let PHPUnit know your extension is in the phpunit.xml file. class= "Tests\Extensions\AgentAwareOutputExtension" /> To detect when PHPunit is run inside an agent I used the shipfastlabs/agent-detector library (I saw it in PAO). This library uses well known config variables to detect multiple agents. Because I'm trying out Mistral Vibe now I added a new script to composer.json. "test:agent" : "AI_AGENT=1 vendor/bin/phpunit" While PAO uses json as output, I want to use markdown. From t

Full-Stack E-Commerce App - Part 1: Project setup
Hey! Welcome to Part 1 of this series, where we build a complete, production-ready e-commerce app called ShopFlow — from an empty folder all the way to a live site on AWS. By the end of this series, ShopFlow will have: User authentication with JWT tokens A product catalogue with search powered by Elasticsearch A shopping cart (stored in Redis) and a full order system AI features — smart search, a chatbot, and product descriptions generated by AI Real payments via Stripe and PayPal Event-driven order processing with Apache Kafka Deployed on AWS with Kubernetes and a CI/CD pipeline That sounds like a lot — and it is! But we are going to build it one piece at a time . Each part of this series focuses on one thing, explains why we are doing it, and by the end, you have working code. In this fi

PowerShell Scripts Every MSP Should Use
If you work in an MSP environment, you already know the truth: 👉 Repetitive tasks will slowly destroy your soul. Checking disk space Monitoring services Logging into multiple machines Fixing the same issues again and again At some point, you realize: “I’m not being paid to click the same thing 50 times.” That’s where PowerShell saves you. But… After a few “learning experiences” (a.k.a. breaking things in production 😅), I realized: 👉 Automation is powerful… but dangerous. So here are 5 PowerShell scripts every MSP should use —written in a safe, production-friendly way . 🛠️ 1. Disk Space Check (Prevent Tickets Before They Happen) This is one of the most common MSP issues. Instead of waiting for: “My computer is slow” You can detect problems early. ```powershell id="disk01" $computers = @
Knowledge Map
Connected Articles — Knowledge Graph
This article is connected to other articles through shared AI topics and tags.
More in Products

Full-Stack E-Commerce App - Part 1: Project setup
Hey! Welcome to Part 1 of this series, where we build a complete, production-ready e-commerce app called ShopFlow — from an empty folder all the way to a live site on AWS. By the end of this series, ShopFlow will have: User authentication with JWT tokens A product catalogue with search powered by Elasticsearch A shopping cart (stored in Redis) and a full order system AI features — smart search, a chatbot, and product descriptions generated by AI Real payments via Stripe and PayPal Event-driven order processing with Apache Kafka Deployed on AWS with Kubernetes and a CI/CD pipeline That sounds like a lot — and it is! But we are going to build it one piece at a time . Each part of this series focuses on one thing, explains why we are doing it, and by the end, you have working code. In this fi

PowerShell Scripts Every MSP Should Use
If you work in an MSP environment, you already know the truth: 👉 Repetitive tasks will slowly destroy your soul. Checking disk space Monitoring services Logging into multiple machines Fixing the same issues again and again At some point, you realize: “I’m not being paid to click the same thing 50 times.” That’s where PowerShell saves you. But… After a few “learning experiences” (a.k.a. breaking things in production 😅), I realized: 👉 Automation is powerful… but dangerous. So here are 5 PowerShell scripts every MSP should use —written in a safe, production-friendly way . 🛠️ 1. Disk Space Check (Prevent Tickets Before They Happen) This is one of the most common MSP issues. Instead of waiting for: “My computer is slow” You can detect problems early. ```powershell id="disk01" $computers = @

Ofcom Pushes Tech Firms to Strengthen Online Safety
More than 70 risk assessments have been legally mandated from 40 of the largest and riskiest sites and apps across the globe. Ofcom has suggested that these assessments are a crucial part of keeping users safe online, and act as guides to putting appropriate safety measures in place. The guardrails are supposed to keep all [ ] The post Ofcom Pushes Tech Firms to Strengthen Online Safety appeared first on DIGIT .

Do You Actually Need an AI Gateway? (And When a Simple LLM Wrapper Isn’t Enough)
It always starts the same way. You add a single LLM call to your app. Maybe it’s OpenAI, maybe Anthropic. You test it, it works, and within a few hours you’ve shipped something that actually feels powerful. For a moment, it feels like the easiest integration you’ve ever done. And honestly, at that stage, it is. The problem is that this setup doesn’t stay simple for long. Another team hears about it and wants access. Then product asks if you can switch models for better results. Finance wants to know how much this is costing… and suddenly no one has a clear answer. Then security joins the conversation and asks the uncomfortable question: “Where exactly is our data going?” That’s usually when things stop feeling clean. API keys are scattered across services. Switching models requires code ch


Discussion
Sign in to join the discussion
No comments yet — be the first to share your thoughts!