query_patientsLABSCO SUMMARY
The query-and-retrieve verbs of DICOM, plus the step that usually needs a person: reading the report.
Chaining a study query into extract_pdf_text_from_dicom is what makes this more than a browser — findings in a prior report become text the model can answer from. move_series then lets you route a study to a processing node and query the result back. Treat it as a development tool: the authors are explicit that it should not touch live patient data.
What it is
A server for DICOM networks — PACS, VNA and similar. It runs the standard queries against a configured node, pulls text out of reports stored as encapsulated PDFs, and sends series or studies on to other nodes.
What you get
- Patients, studies, series and individual instances searched on the usual criteria — name, ID, birth date, date, modality, description, accession number and UIDs (query_patients, query_studies, query_series, query_instances)
- The text of a clinical report that lives inside a DICOM instance as an encapsulated PDF (extract_pdf_text_from_dicom)
- A series or a whole study sent to another configured node over C-MOVE, an image-analysis endpoint for example (move_series, move_study)
- The configured nodes listed, and the active one switched without restarting (list_dicom_nodes, switch_dicom_node)
- A C-ECHO against the active node, so you learn the association works before you query (verify_connection)
- The levels of metadata detail available for query results — minimal, standard, extended (get_attribute_presets)
Requirements
A YAML file naming your DICOM nodes and the calling AE title, and a reachable DICOM server; the project ships a sample Orthanc setup for trying it without one. Python, installed as a tool with uv. The authors state it is not meant for clinical use and should not be connected to live hospital databases or patient-sensitive data.
Setup effort
One command — uv tool install dicom-mcp
USE CASES
Finding what a previous report said
Search for the patient, narrow to the study and series, then extract the text from the report instance.
Sending a scan for processing and reading the result
Push the series to another node over C-MOVE, then query for the report it sends back.
Checking a node before you trust it
Run a C-ECHO against the active node, and list the others if you need to switch.
Working against two archives in one session
Switch the active node between queries rather than restarting with a different configuration.
Keeping result sets readable
Check which levels of metadata detail exist and ask for the smallest one that answers the question.
11 tools
Listed in project docs. Your client may show a different list.
query_studiesquery_seriesquery_instancesextract_pdf_text_from_dicommove_seriesmove_studylist_dicom_nodesswitch_dicom_nodeverify_connectionget_attribute_presetsBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation.
Requires
uvx on PATH
INSTALLATION
Connect your client
Server setup
uv tool install dicom-mcpMCP Clients
Claude Desktop — uvx
{
"mcpServers": {
"dicom": {
"command": "uvx",
"args": [
"dicom-mcp",
"<YOUR_PATH_TO_CONFIG>"
]
}
}
}Claude Desktop — Local build
Clone and set up the repository
git clone https://github.com/ChristianHinge/dicom-mcp
cd dicom-mcp
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"Add to claude_desktop_config.json
<YOUR_PATH_TO_CLONED_DICOM_MCP> is the full path of that folder, and <YOUR_PATH_TO_CONFIG> is your DICOM node configuration file.
{
"mcpServers": {
"dicom": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_CLONED_DICOM_MCP>",
"run",
"dicom-mcp",
"<YOUR_PATH_TO_CONFIG>"
]
}
}
}