MCP server exposing a DICOMweb DICOM archive to AI assistants via QIDO-RS and WADO-RS.
dicomweb-mcp-server (DICOMweb MCP Server)
A Model Context Protocol (MCP) server that exposes a DICOMweb-compliant DICOM archive to AI assistants. It provides access to a DICOM archive via QIDO-RS and WADO-RS, enabling MCP-capable clients to query studies, series, and instances and retrieve content and metadata.
๐ ๏ธ Key Features
DICOMweb-compliant access to a DICOM archive
QIDO-RS for searching studies, series, and instances
WADO-RS for retrieving data
Inspect DICOM metadata
Read Structured and Encapsulated PDF Reports
Render image frames
๐ Use Cases
Search DICOM studies, series, and instances from an AI assistant
Extract and review DICOM metadata
Access PDF-based reports associated with DICOM data
Display image frames for downstream analysis
โก Developer Benefits
MCP integration for AI assistants
Natural-language access to DICOMweb capabilities
Standard protocols (QIDO-RS, WADO-RS) for interoperability
โ ๏ธ Limitations
Only described as supporting Node.js requirements; full requirements and capabilities beyond the excerpt are not provided.
A Model Context Protocol (MCP) server that exposes a DICOMweb-compliant DICOM archive to AI assistants. It lets any MCP-capable client search studies, series and instances, inspect metadata, read Structured and Encapsulated PDF Reports, and render image frames โ all through natural language.
Requirements
Node.js 20 or later
A running DICOMweb server supporting QIDO-RS and WADO-RS (e.g. orthanc)
The following endpoints must be supported by the DICOMweb server:
Endpoint
Service
Used by
GET /studies
QIDO-RS
Search studies
GET /studies/{study}/series
QIDO-RS
Search series
GET /studies/{study}/series/{series}/instances
QIDO-RS
Search instances, search structured reports, search encapsulated PDF reports
GET /studies/{study}/series/{series}/instances/{instance}/metadata
WADO-RS
Get instance metadata, get structured report text, get encapsulated PDF report text
GET /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/rendered
WADO-RS
Render instance frame
Installation
Using npx (recommended โ no local install needed)
bash
npx dicomweb-mcp-server
The server reads its configuration from a .env file located in the same directory as the script (see Configuration below).
Create a .env file with the connection details for your DICOMweb server. Place the file next to wherever the server is executed from (or in the working directory you configure in your MCP client).
Searches DICOM studies on the configured DICOMweb server. Results are sorted by study date, newest first.
Parameter
Type
Description
query
string
Space-separated key=value filter string (see Query Syntax). Pass "" to return all studies.
Example prompts
"Find all CT studies for patient John Doe"
"Search for studies from January 2024"
find-series
Searches DICOM series within a single study. Results are sorted by series date, newest first.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID โ obtain from find-studies
query
string
Space-separated key=value filter string. Pass "" to return all series.
find-instances
Searches DICOM instances within a single series. Results are sorted by Instance Number ascending.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID โ obtain from find-studies
seriesInstanceUid
string
Series Instance UID โ obtain from find-series
query
string
Space-separated key=value filter string. Pass "" to return all instances.
find-encapsulated-pdf-reports
Finds all Encapsulated PDF instances in a study by looking for DOC-modality series and filtering by the Encapsulated PDF SOP Class UID (1.2.840.10008.5.1.4.1.1.104.1).
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID โ obtain from find-studies
Example prompts
"Find all PDF reports in study 1.2.3.4"
"Are there any encapsulated PDF documents in this study?"
get-encapsulated-pdf-report-text
Retrieves an Encapsulated PDF DICOM instance and extracts its text content.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID
seriesInstanceUid
string
Series Instance UID
sopInstanceUid
string
SOP Instance UID โ obtain from find-encapsulated-pdf-reports
Note: Text extraction only works for searchable (text-based) PDFs. PDFs that consist entirely of scanned page images without an embedded text layer will yield little or no text. In those cases, no OCR is performed.
Example prompts
"Read the PDF report for SOP instance 1.2.3.4.5"
"What does the encapsulated PDF document say?"
find-structured-reports
Finds all Structured Report (SR) instances in a study by looking for SR-modality series and filtering by known SR SOP Class UIDs.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID โ obtain from find-studies
get-structured-report-text
Retrieves a Structured Report instance and converts it to human-readable text.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID
seriesInstanceUid
string
Series Instance UID
sopInstanceUid
string
SOP Instance UID โ obtain from find-structured-reports
get-instance-metadata
Retrieves and formats all DICOM attributes of a single instance as human-readable text. Does not retrieve pixel data.
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID
seriesInstanceUid
string
Series Instance UID
sopInstanceUid
string
SOP Instance UID โ obtain from find-instances
render-instance-frame
Renders a specific frame from a DICOM instance and returns it as an inline image (JPEG or PNG).
Parameter
Type
Description
studyInstanceUid
string
Study Instance UID
seriesInstanceUid
string
Series Instance UID
sopInstanceUid
string
SOP Instance UID โ obtain from find-instances
frame
integer
1-based frame index (use 1 for single-frame instances)
outputFormat
enum
image/jpeg or image/png
Example prompt
"Show me the first frame of SOP instance 1.2.3.4.5 as a JPEG"
Query Syntax
The query parameter accepted by the search tools is a space-separated list of key=value pairs.