DICOM MCP Server for Medical Imaging Systems 🏥
The dicom-mcp
server enables AI assistants to query, read, and move data on DICOM servers (PACS, VNA, etc.).
🤝 Contribute • 📝 Report Bug • 📝 Blog Post 1
✨ Core Capabilities
dicom-mcp
provides tools to:
- 🔍 Query Metadata: Search for patients, studies, series, and instances using various criteria.
- 📄 Read DICOM Reports (PDF): Retrieve DICOM instances containing encapsulated PDFs (e.g., clinical reports) and extract the text content.
- ➡️ Send DICOM Images: Send series or studies to other DICOM destinations, e.g. AI endpoints for image segmentation, classification, etc.
- ⚙️ Utilities: Manage connections and understand query options.
🚀 Quick Start
📥 Installation
Install using uv or pip:
Or by cloning the repository:
⚙️ Configuration
dicom-mcp
requires a YAML configuration file (config.yaml
or similar) defining DICOM nodes and calling AE titles. Adapt the configuration or keep as is for compatibility with the sample ORTHANC Server.
Warning
DICOM-MCP is not meant for clinical use, and should not be connected with live hospital databases or databases with patient-sensitive data. Doing so could lead to both loss of patient data, and leakage of patient data onto the internet. DICOM-MCP can be used with locally hosted open-weight LLMs for complete data privacy.
(Optional) Sample ORTHANC server
If you don't have a DICOM server available, you can run a local ORTHANC server using Docker:
Clone the repository and install test dependencies pip install -e ".[dev]
UI at http://localhost:8042
🔌 MCP Integration
Add to your client configuration (e.g. claude_desktop_config.json
):
For development:
🛠️ Tools Overview
dicom-mcp
provides four categories of tools for interaction with DICOM servers and DICOM data.
🔍 Query Metadata
query_patients
: Search for patients based on criteria like name, ID, or birth date.query_studies
: Find studies using patient ID, date, modality, description, accession number, or Study UID.query_series
: Locate series within a specific study using modality, series number/description, or Series UID.query_instances
: Find individual instances (images/objects) within a series using instance number or SOP Instance UID
📄 Read DICOM Reports (PDF)
extract_pdf_text_from_dicom
: Retrieve a specific DICOM instance containing an encapsulated PDF and extract its text content.
➡️ Send DICOM Images
move_series
: Send a specific DICOM series to another configured DICOM node using C-MOVE.move_study
: Send an entire DICOM study to another configured DICOM node using C-MOVE.
⚙️ Utilities
list_dicom_nodes
: Show the currently active DICOM node and list all configured nodes.switch_dicom_node
: Change the active DICOM node for subsequent operations.verify_connection
: Test the DICOM network connection to the currently active node using C-ECHO.get_attribute_presets
: List the available levels of detail (minimal, standard, extended) for metadata query results.
Example interaction
The tools can be chained together to answer complex questions:
📈 Contributing
Running Tests
Tests require a running Orthanc DICOM server. You can use Docker:
Run tests using pytest:
Stop the Orthanc container:
Debugging
Use the MCP Inspector for debugging the server communication:
🙏 Acknowledgments
- Built using pynetdicom
- Uses PyPDF2 for PDF text extraction
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables AI assistants to query and analyze medical imaging metadata from DICOM servers, including patient information, studies, series, and instances, as well as extract text from encapsulated PDF documents.
Related MCP Servers
- AsecurityAlicenseAqualityEnables AI assistants to download images from URLs and perform basic image optimization tasks.Last updated -24010JavaScriptApache 2.0
- AsecurityAlicenseAqualityA Model Context Protocol server providing AI assistants with access to healthcare data tools, including FDA drug information, PubMed research, health topics, clinical trials, and medical terminology lookup.Last updated -7625JavaScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that allows working with DICOM medical images through a simple note storage system.Last updated -6Python
- AsecurityFlicenseAqualityProvides tools for AI assistants to explore and interact with MariaDB databases, allowing them to list databases, view tables, inspect schema definitions, and query data.Last updated -42JavaScript