{
  "markdown": "# DICOM/HL7/FHIR Interoperability MCP Server\n\n<!-- mcp-name: io.github.NyxToolsDev/dicom-hl7-mcp-server -->\n\n[![NyxToolsDev/dicom-hl7-mcp-server MCP server](https://glama.ai/mcp/servers/NyxToolsDev/dicom-hl7-mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/NyxToolsDev/dicom-hl7-mcp-server)\n\n**The only MCP server that bridges DICOM, HL7v2, and FHIR in one package — with optional PACS connectivity.**\n\nBuilt by a healthcare IT engineer with 16 years of PACS, RIS, and integration experience. This isn't a wrapper around a FHIR API or a DICOM tag dictionary — it's the interoperability knowledge that takes years on the job to build, plus the ability to connect to real PACS systems.\n\n## What Makes This Different\n\n| Capability | This Server | DICOM-only servers | FHIR-only servers |\n|-----------|:-----------:|:------------------:|:-----------------:|\n| DICOM tag lookup + vendor quirks | Yes | Yes | No |\n| HL7v2 message parsing | Yes | No | No |\n| FHIR R4 resource mapping | Yes | No | Yes |\n| **DICOM ↔ HL7v2 mapping** | **Yes** | No | No |\n| **HL7v2 → FHIR conversion** | **Yes** | No | No |\n| **Mirth Connect channel generation** | **Yes** | No | No |\n| **PACS connectivity (C-FIND/C-MOVE)** | **Yes** | Some | No |\n| **DICOMweb (QIDO-RS/WADO-RS)** | **Yes** | No | No |\n| **Query PACS + auto-map to HL7/FHIR** | **Yes** | No | No |\n| Vendor private tag decoding (GE, Siemens, Philips) | Yes | Some | No |\n| Integration pattern knowledge (IHE SWF, ADT flows) | Yes | No | No |\n\n## Tools\n\n### Reference Tools (Free)\n\n| Tool | What It Does |\n|------|-------------|\n| `lookup_dicom_tag` | Look up any DICOM tag by number or keyword |\n| `explain_dicom_tag` | Detailed tag explanation with vendor quirks and gotchas |\n| `parse_hl7_message` | Parse HL7 v2.x messages into human-readable format |\n| `explain_hl7_segment` | Explain segment fields, data types, and usage |\n| `lookup_hl7_table` | Look up HL7 table values (Administrative Sex, Patient Class, etc.) |\n\n### Mapping & Generation Tools (Premium)\n\n| Tool | What It Does |\n|------|-------------|\n| `map_dicom_to_hl7` | Map DICOM tags to HL7 v2 fields with conversion notes |\n| `map_hl7_to_fhir` | Map HL7 v2 fields to FHIR R4 resources |\n| `generate_mirth_channel` | Generate Mirth Connect channel configurations |\n| `validate_hl7_message` | Validate HL7 messages against the standard |\n| `explain_integration_pattern` | Explain healthcare integration patterns with flow diagrams |\n| `decode_private_tags` | Decode vendor private DICOM tags (GE, Siemens, Philips, etc.) |\n| `generate_sample_message` | Generate realistic sample HL7 messages for testing |\n\n### PACS Connectivity Tools (Premium)\n\n| Tool | What It Does |\n|------|-------------|\n| `pacs_echo` | Verify PACS connectivity (C-ECHO or DICOMweb ping) |\n| `pacs_query` | Search for studies/series by patient, date, modality, accession |\n| `pacs_get_metadata` | Retrieve detailed study/series metadata from PACS |\n| `pacs_retrieve` | C-MOVE images to a destination AE title |\n| `pacs_study_summary` | **Query a study + auto-map through DICOM→HL7→FHIR with generated ORM** |\n\n## Installation\n\n**Reference tools only** (no PACS connectivity):\n\n```bash\npip install dicom-hl7-mcp\n```\n\n**With PACS connectivity** (adds pynetdicom + httpx):\n\n```bash\npip install dicom-hl7-mcp[pacs]\n```\n\n## Configuration\n\n### Basic (Reference Tools Only)\n\nAdd to your Claude Desktop config:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"dicom-hl7-assistant\": {\n      \"command\": \"uvx\",\n      \"args\": [\"dicom-hl7-mcp\"]\n    }\n  }\n}\n```\n\n### With Premium License\n\n```json\n{\n  \"mcpServers\": {\n    \"dicom-hl7-assistant\": {\n      \"command\": \"uvx\",\n      \"args\": [\"dicom-hl7-mcp\"],\n      \"env\": {\n        \"DICOM_HL7_LICENSE_KEY\": \"your-license-key-here\"\n      }\n    }\n  }\n}\n```\n\n### With PACS Connectivity (Traditional DICOM)\n\nConnect to a PACS using C-FIND/C-MOVE/C-ECHO:\n\n```json\n{\n  \"mcpServers\": {\n    \"dicom-hl7-assistant\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--with\", \"dicom-hl7-mcp[pacs]\", \"dicom-hl7-mcp\"],\n      \"env\": {\n        \"DICOM_HL7_LICENSE_KEY\": \"your-license-key-here\",\n        \"DICOM_HL7_PACS_AE_TITLE\": \"YOUR_PACS\",\n        \"DICOM_HL7_PACS_HOST\": \"pacs.hospital.org\",\n        \"DICOM_HL7_PACS_PORT\": \"4242\",\n        \"DICOM_HL7_LOCAL_AE_TITLE\": \"CLAUDE_MCP\"\n      }\n    }\n  }\n}\n```\n\n### With PACS Connectivity (DICOMweb)\n\nConnect to a DICOMweb-capable PACS (QIDO-RS/WADO-RS):\n\n```json\n{\n  \"mcpServers\": {\n    \"dicom-hl7-assistant\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--with\", \"dicom-hl7-mcp[pacs]\", \"dicom-hl7-mcp\"],\n      \"env\": {\n        \"DICOM_HL7_LICENSE_KEY\": \"your-license-key-here\",\n        \"DICOM_HL7_DICOMWEB_URL\": \"https://pacs.hospital.org/dicom-web\",\n        \"DICOM_HL7_DICOMWEB_AUTH\": \"bearer\",\n        \"DICOM_HL7_DICOMWEB_TOKEN\": \"your-auth-token\"\n      }\n    }\n  }\n}\n```\n\n### Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `DICOM_HL7_LICENSE_KEY` | For premium | — | Premium license key |\n| `DICOM_HL7_LOG_LEVEL` | No | `INFO` | Logging level |\n| **Traditional DICOM** | | | |\n| `DICOM_HL7_PACS_AE_TITLE` | For DIMSE | — | Remote PACS AE title |\n| `DICOM_HL7_PACS_HOST` | For DIMSE | — | Remote PACS hostname/IP |\n| `DICOM_HL7_PACS_PORT` | For DIMSE | — | Remote PACS port |\n| `DICOM_HL7_LOCAL_AE_TITLE` | No | `DICOM_HL7_MCP` | This server's AE title |\n| **DICOMweb** | | | |\n| `DICOM_HL7_DICOMWEB_URL` | For DICOMweb | — | DICOMweb base URL |\n| `DICOM_HL7_DICOMWEB_AUTH` | No | `none` | Auth type: `none`, `bearer`, `basic` |\n| `DICOM_HL7_DICOMWEB_TOKEN` | For bearer | — | Bearer token |\n| `DICOM_HL7_DICOMWEB_USERNAME` | For basic | — | Basic auth username |\n| `DICOM_HL7_DICOMWEB_PASSWORD` | For basic | — | Basic auth password |\n| **Safety** | | | |\n| `DICOM_HL7_PACS_PROTOCOL` | No | `auto` | Protocol: `auto`, `dimse`, `dicomweb` |\n| `DICOM_HL7_PACS_ALLOW_RETRIEVE` | No | `false` | Enable C-MOVE (`true` to enable) |\n| `DICOM_HL7_PHI_REDACT` | No | `false` | Redact patient name/ID in output |\n\n## PHI Safety\n\nWhen connected to a real PACS, query results contain Protected Health Information (PHI).\n\n- **Log redaction**: PHI fields are automatically stripped from all log output\n- **Result warnings**: Every PACS query result includes a PHI warning banner\n- **Optional redaction**: Set `DICOM_HL7_PHI_REDACT=true` to replace patient name/ID with `[REDACTED]` in tool output\n- **No disk caching**: PACS query results are never written to disk\n- **C-MOVE is disabled by default**: Must explicitly set `DICOM_HL7_PACS_ALLOW_RETRIEVE=true`\n\n**Important:** Do not use PACS connectivity with cloud-hosted LLMs unless your organization's policies permit sending PHI to that LLM provider. For on-premises deployments or local LLM setups, this is not a concern.\n\n## Real-World Examples\n\n### \"What is DICOM tag (0008,0050)?\"\n\n> AccessionNumber — SH — RIS-generated number that identifies the order. THE key field for matching RIS orders to PACS studies.\n\n### Parse an HL7 message\n\n> \"Parse this HL7 message:\"\n> ```\n> MSH|^~\\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1\n> PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M\n> OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000\n> OBX|1|FT|&GDT^Report||FINDINGS: Normal CT.||||||F\n> ```\n\nReturns each segment parsed with field names, values, table lookups, and contextual explanations.\n\n### Query PACS + Auto-Map to HL7/FHIR (Premium)\n\n> \"Look up accession number ACC12345 in PACS and show me the HL7/FHIR mapping\"\n\nReturns a complete interoperability summary:\n1. Study metadata from PACS (patient, date, modality, description)\n2. DICOM→HL7 field mapping for every key field\n3. HL7→FHIR R4 resource mapping\n4. A pre-filled HL7 ORM^O01 message skeleton\n5. Integration pattern context (IHE SWF workflow)\n\n### Map DICOM → HL7 (Premium)\n\n> \"What HL7 field does DICOM Accession Number map to?\"\n\nReturns: OBR-3 / ORC-3 (Filler Order Number) with data type conversion notes (SH → EI) and mapping pitfalls.\n\n### Generate a Mirth Channel (Premium)\n\n> \"Generate a Mirth channel for receiving ADT messages and writing to a FHIR server\"\n\nReturns: Complete channel config with MLLP source, FHIR HTTP destination, transformer steps, event filtering, and implementation notes.\n\n## Knowledge Base\n\n### Standards Coverage\n- **DICOM:** ~200 most common tags, SOP Classes, Transfer Syntaxes, private tag ranges for 7 vendors\n- **HL7 v2.x:** 15 segments, 20+ tables, message types (ADT, ORM, ORU, MDM, SIU, DFT, BAR), versions 2.3-2.9\n- **FHIR R4:** Mappings for Patient, Encounter, ServiceRequest, DiagnosticReport, Observation, AllergyIntolerance, Condition, RelatedPerson, Coverage\n- **Integration Patterns:** ADT Feed, Order-to-Result, Radiology Workflow (IHE SWF), Lab Interface, Report Distribution, Patient Merge, Charge Posting\n\n### Where the Knowledge Comes From\nThe tags, segments, and mappings are from published standards (DICOM PS3.6, HL7 v2.5.1, FHIR R4, HL7 v2-to-FHIR IG). The vendor quirks, integration tips, and \"watch out for this\" notes come from 16 years of building PACS/RIS/HIS interfaces in production healthcare environments.\n\n## Premium License\n\nFree tier gives you DICOM tag lookup, HL7 parsing, and segment explanation — the tools you use every day.\n\nPremium unlocks cross-standard mapping, Mirth generation, validation, PACS connectivity, and the deep integration knowledge that takes years to build.\n\n**Get your license:** [nyxtools.gumroad.com](https://nyxtools.gumroad.com)\n\n## FAQ\n\n**Do I need a license for the free tools?**\nNo. Install and use the 5 free tools immediately. No account, no sign-up.\n\n**Do I need PACS connectivity?**\nNo. The reference and mapping tools work without any PACS connection. PACS connectivity is optional — install with `pip install dicom-hl7-mcp[pacs]` only if you want to query real PACS systems.\n\n**What HL7 versions are supported?**\nv2.3 through v2.9, with focus on v2.5.1 (the most widely deployed in US healthcare).\n\n**Is this HIPAA compliant?**\nThe reference tools process standards metadata, not patient data. PACS connectivity tools access real patient data — PHI safety measures are built in (log redaction, optional output redaction, C-MOVE disabled by default), but you are responsible for ensuring use complies with your organization's policies.\n\n**What PACS systems are supported?**\nAny PACS that supports DICOM C-FIND/C-ECHO (virtually all of them) or DICOMweb (QIDO-RS/WADO-RS). Tested with Orthanc, RamSoft, and DCM4CHEE.\n\n## Development\n\n```bash\ngit clone https://github.com/NyxToolsDev/dicom-hl7-mcp-server.git\ncd dicom-hl7-mcp-server\npip install -e \".[dev]\"\npytest\n```\n\n## License\n\nMIT License. See [LICENSE](LICENSE).\n\n---\n\nBuilt by [NyxTools](https://github.com/NyxToolsDev)\n",
  "bytes": 10836,
  "sha": "253984dd4df12974339fa96644f3dc1c51e2b87400a0abfefd8779384a8da4d3",
  "repo_slug": "nyxtoolsdev/dicom-hl7-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nyxtoolsdev_dicom_hl7_mcp_serv_ad014f43/readme"
}