DICOM MCP Server

GNU Lesser General Public License v2.1 only
2

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

DICOM MCP Server

A Model Context Protocol (MCP) server for DICOM connectivity testing.

Prerequisites

  1. Install UV (required):
    pip install uv
    Make sure uv is available in your system PATH as it's required for Claude to properly execute the server.

Installation

There are two ways to set up the server:

1. Traditional Setup

Install the required dependencies:

uv pip install mcp[cli]

To use this server with Claude's Model Context Protocol:

mcp install server.py

This will register the server with Claude for DICOM operations.

Running the Server

Direct Execution

uv run server.py

Through Claude

Once installed via MCP, the server will be automatically managed by Claude when needed.

The server will start on 0.0.0.0:8080 by default.

Node Configuration

The server uses a nodes.yaml file to store DICOM node configurations. This allows you to:

  1. List all configured DICOM nodes
  2. Perform C-ECHO operations using node names instead of explicit AE titles, IPs, and ports
  3. Use different local AE titles for C-ECHO operations

nodes.yaml Format

nodes: # Example node configuration main_pacs: ae_title: DESTINATION ip: 192.168.1.100 port: 104 description: "Main hospital PACS system" local_ae_titles: - name: default ae_title: MCP_DICOM description: "Default AE title for MCP DICOM server" - name: pacs_gateway ae_title: PACS_GATEWAY description: "PACS Gateway AE title"

Troubleshooting

If you encounter the "spawn uv ENOENT" error, it typically means one of the following:

  1. UV is not installed or not in your PATH
  2. The Python executable cannot be found by the MCP client

Solutions:

  1. Make sure UV is properly installed and in your PATH:
    which uv # Should show the path to UV
  2. Ensure you're using a Python environment that's accessible to the system:
    • If using a virtual environment, make sure it's activated
    • Check that Python is in your PATH
  3. Try running the server with explicit UV path:
    /full/path/to/uv run server.py
  4. Add more debugging by checking the stderr output in the logs

Usage

The server provides several DICOM tools that can be used through the MCP interface:

List DICOM Nodes

List all configured DICOM nodes from the nodes.yaml file:

list_dicom_nodes()

C-ECHO by Node Name

Perform a C-ECHO operation using a node name from the configuration:

dicom_cecho_by_name(node_name="main_pacs", local_ae_name="default")

Direct C-ECHO

Perform a C-ECHO operation with explicit parameters:

dicom_cecho(remote_ae_title="REMOTE_AE", ip="192.168.1.100", port=104, local_ae_title="MCP_DICOM")
-
security - not tested
A
license - permissive license
-
quality - not tested

A connectivity testing server that enables DICOM network operations (like C-ECHO) through Claude's Model Context Protocol, with support for node configuration management.

  1. Prerequisites
    1. Installation
      1. 1. Traditional Setup
        1. 2. MCP Installation (Recommended)
        2. Running the Server
          1. Direct Execution
            1. Through Claude
            2. Node Configuration
              1. nodes.yaml Format
              2. Troubleshooting
                1. Solutions:
                2. Usage
                  1. List DICOM Nodes
                    1. C-ECHO by Node Name
                      1. Direct C-ECHO