Dicom MCP logo

Dicom MCP

by ChristianHinge

Connects AI assistants to DICOM systems for metadata queries, PDF report extraction, and moving studies or series.

Install Dicom MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "christianhinge-dicom-mcp": {
      "command": "uvx",
      "args": [
        "dicom-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

ChristianHinge/dicom-mcp connects AI assistants to PACS, VNA, Orthanc, and other DICOM-compliant systems through MCP tools. It can search patients, studies, series, and instances, extract text from encapsulated PDF reports, and send studies or series to configured DICOM destinations. The Python server uses a YAML file for DICOM nodes and calling AE settings, with stdio and streamable HTTP transport options. Reach for it when an agent needs structured access to locally hosted medical-imaging data or DICOM workflows.

Use cases

  • Search patients and studies by DICOM metadata
  • Extract text from encapsulated PDF reports
  • Send imaging series to an AI processing node
  • Verify and switch between configured DICOM nodes

Key features

  • Patient, study, series, and instance queries
  • Encapsulated PDF text extraction
  • C-MOVE transfer of studies and series
  • DICOM node management and C-ECHO verification
  • Stdio, streamable HTTP, and legacy SSE transports
  • Configurable metadata detail presets

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

10/10 checks healthy over the last 87d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 15d ago via OSV.dev · dicom-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars106Stargazers on the source repository.
Last commit5d agoMost recent push to the default branch.
Directory activity6 viewsConfig copies, upvotes, and views on AllMCPs.

How Dicom MCP works

What ChristianHinge/dicom-mcp MCP server does

ChristianHinge/dicom-mcp MCP server exposes DICOM query, retrieval, report-reading, and routing operations to MCP-compatible AI clients. It connects to PACS, VNA, Orthanc, and other DICOM-compliant systems, allowing an assistant to search imaging metadata and coordinate follow-up operations through tool calls.

The server supports searches across four levels of DICOM data: patients, studies, series, and individual instances. It can also extract text from DICOM instances that contain encapsulated PDF files, such as clinical reports. For routing workflows, it sends a selected series or complete study to another configured DICOM node using C-MOVE.

How it works

A YAML configuration identifies one or more DICOM nodes, including each node’s host, port, AE title, and description. The configuration also selects the active node and defines the calling AE title used by the server. Operations run against the active node, which can be changed through an MCP utility tool.

The normal launch mode uses stdio, with the MCP client starting the process. The server also supports streamable HTTP and legacy SSE transport. Streamable HTTP uses the /mcp endpoint and can run as a standalone process on a selected host and port. Its HTTP and SSE endpoints do not provide authentication.

Tools can be chained for multi-step workflows. For example, an assistant can locate a patient, narrow the results to a study and series, move that series to another DICOM destination, then inspect a returned PDF report.

Setup and configuration

Install the package with uv tool install dicom-mcp, or install a cloned checkout with its development dependencies using uv pip install -e ".[dev]". Python 3.12 or newer is required.

Create a YAML configuration file and pass its path when launching the server. A typical configuration defines a nodes map, a current_node, and a calling_aet. The sample setup targets an Orthanc server on localhost:4242 with the AE title ORTHANC.

For MCP clients that launch stdio servers, the command can use uvx dicom-mcp /path/to/your_config.yaml. A standalone HTTP process can be started with --transport http, --host, and --port; clients can connect through http://host:port/mcp. Claude Desktop can connect to the HTTP mode through mcp-remote.

Tools and capabilities

  • query_patients searches by patient attributes such as name, ID, or birth date.
  • query_studies filters studies by patient ID, date, modality, description, accession number, or Study UID.
  • query_series finds series within a study using modality, series number or description, and Series UID.
  • query_instances locates objects within a series by instance number or SOP Instance UID.
  • extract_pdf_text_from_dicom extracts text from an encapsulated PDF DICOM instance.
  • move_series and move_study send DICOM data to another configured node with C-MOVE.
  • list_dicom_nodes, switch_dicom_node, and verify_connection manage nodes and test connectivity with C-ECHO.
  • get_attribute_presets lists the available metadata detail levels: minimal, standard, and extended.

Limitations and notes

The project is intended for testing and development rather than clinical use. It should not be connected to live hospital databases or systems containing patient-sensitive data. The HTTP and SSE transports have no authentication; binding beyond 127.0.0.1 can expose the endpoint to reachable hosts, so deployment requires network controls or an authenticating reverse proxy. A locally hosted open-weight model can be used when keeping DICOM data within a private environment is important.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Dicom MCP

ChristianHinge/dicom-mcp is an MCP server that connects AI assistants to PACS, VNA, Orthanc, and other DICOM systems. Its main tools query patients, studies, series, and instances, extract text from encapsulated PDF reports, move DICOM studies or series, and verify or switch configured DICOM nodes.

Install it with `uv tool install dicom-mcp`, or install a cloned checkout with `uv pip install -e ".[dev]"`. Python 3.12 or newer is required. Launch it with the path to a YAML DICOM configuration file.

Configure DICOM nodes in a YAML file with each node’s host, port, AE title, and description, then set `current_node` and `calling_aet`. Pass the configuration path to the `dicom-mcp` command when starting the server.

Yes, it supports streamable HTTP with `--transport http`, along with configurable host and port options. Clients connect to the `/mcp` endpoint. HTTP and SSE endpoints have no authentication, so non-local deployments should use network restrictions or an authenticating reverse proxy.

Yes, Cursor can use it as a standard MCP server through its stdio or streamable HTTP transport configuration. The server has no Cursor-specific setup requirements.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewDicom MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/christianhinge-dicom-mcp?style=directory)](https://allmcps.com/mcp/christianhinge-dicom-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/christianhinge-dicom-mcp"><img src="https://allmcps.com/api/badge/christianhinge-dicom-mcp?style=directory" alt="Dicom MCP on AllMCPs" /></a>