DICOM MCP Server logo

DICOM MCP Server

by fluxinc

A Model Context Protocol (MCP) server designed for DICOM connectivity testing. It allows for easy configuration and execution of DICOM operations through Claude or direct execution.

View on GitHub

Last updated: N/A

What is DICOM MCP Server?

The DICOM MCP Server is a tool that facilitates DICOM connectivity testing using the Model Context Protocol (MCP). It allows users to configure DICOM nodes and perform operations like C-ECHO, either directly or through Claude.

How to use DICOM MCP Server?

The server can be installed using either a traditional setup with uv pip install mcp[cli] or through MCP with mcp install server.py. It can be run directly using uv run server.py or managed by Claude after MCP installation. Configuration is done via the nodes.yaml file, which defines DICOM nodes and local AE titles.

Key features of DICOM MCP Server

  • DICOM node configuration via YAML

  • C-ECHO operations by node name

  • Direct C-ECHO operations with explicit parameters

  • Integration with Claude via MCP

  • Support for multiple local AE titles

Use cases of DICOM MCP Server

  • Testing DICOM connectivity between systems

  • Validating DICOM network configurations

  • Performing C-ECHO operations for PACS systems

  • Integrating DICOM functionality with Claude

  • Automated DICOM testing workflows

FAQ from DICOM MCP Server

How do I install the server?

You can install it using uv pip install mcp[cli] or mcp install server.py.

How do I run the server?

You can run it directly using uv run server.py or through Claude after MCP installation.

What is the purpose of the nodes.yaml file?

It stores DICOM node configurations, allowing you to list nodes and perform C-ECHO operations using node names.

What do I do if I encounter the 'spawn uv ENOENT' error?

Make sure UV is properly installed and in your PATH, and that the Python executable is accessible to the system. Try running the server with the explicit UV path.

How do I perform a C-ECHO operation using a node name?

Use the dicom_cecho_by_name(node_name="main_pacs", local_ae_name="default") function.