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.
Related MCP server: DICOM-MCP
π 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.
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