DICOM MCP 服务器使用说明

项目简介

该项目是一个基于 Model Context Protocol (MCP) 的服务器,专门用于 DICOM (医学数字成像和通信) 设备的连接性测试。它允许用户配置 DICOM 节点信息,并通过 MCP 协议提供的工具来执行 C-ECHO 操作,从而验证与远程 DICOM 设备的网络连接是否正常。

主要功能点

  • DICOM 节点配置管理: 通过 'nodes.yaml' 文件集中管理 DICOM 节点的配置信息,包括 AE Title, IP 地址, 端口号和描述信息。
  • 列出 DICOM 节点: 提供 'list_dicom_nodes' 工具,用于获取所有已配置的 DICOM 节点列表及其详细信息。
  • 基于节点名称的 C-ECHO: 提供 'dicom_cecho_by_name' 工具,允许用户使用预配置的节点名称执行 C-ECHO 操作,简化操作流程。
  • 直接 C-ECHO: 提供 'dicom_cecho' 工具,允许用户直接指定远程 DICOM 节点的 AE Title, IP 地址和端口号执行 C-ECHO 操作。

安装步骤

  1. 安装 UV: 项目依赖 UV 作为 Python 包管理器和运行器,请先安装 UV:

    pip install uv

    确保 'uv' 命令已添加到系统 PATH 环境变量中。

  2. 安装 MCP 服务器: 使用 UV 安装 'mcp' 及其命令行工具,这将同时安装 'server.py' 所需的 'mcp' 库:

    uv pip install mcp[cli]

    或者,根据仓库 README 推荐的方式,使用 MCP 命令行工具安装:

    mcp install server.py

    这会将服务器注册到 MCP 客户端(如 Claude)。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置以下 JSON 信息来连接和使用该 DICOM MCP 服务器。以下是一个示例配置,请根据实际情况调整:

{
  "server name": "DICOM Connectivity Server",  // MCP 服务器的名称,可自定义
  "command": "uv",                           // 启动服务器的命令,这里使用 uv
  "args": ["run", "server.py"],               // 启动命令的参数,指定运行 server.py
  "description": "DICOM Connectivity Test Server" // 服务器的描述信息,可选
}

配置参数说明:

  • 'server name': MCP 服务器的名称,用于在客户端标识和管理不同的服务器连接。可以自定义一个易于识别的名称。
  • 'command': 启动 MCP 服务器进程的命令。根据仓库的说明,推荐使用 'uv run server.py' 启动服务器,因此这里设置为 'uv'。
  • 'args': 传递给启动命令的参数列表。对于 'uv run server.py',参数为 '["run", "server.py"]',表示使用 'uv run' 命令运行 'server.py' 文件。
  • 'description': 对该 MCP 服务器的简要描述,可选字段,方便用户理解服务器的用途。

基本使用方法

  1. 配置 DICOM 节点: 编辑 'nodes.yaml' 文件,添加或修改 DICOM 节点的配置信息。'nodes.yaml' 文件应与 'server.py' 位于同一目录下。

    nodes:
      main_pacs:
        ae_title: DESTINATION_AE
        ip: 192.168.1.100
        port: 104
        description: "主 PACS 系统"
      test_workstation:
        ae_title: WORKSTATION_AE
        ip: 192.168.1.200
        port: 11112
        description: "测试工作站"
    
    local_ae_titles:
      - name: default
        ae_title: MCP_DICOM
        description: "默认本地 AE Title"
      - name: gateway_ae
        ae_title: GATEWAY
        description: "网关 AE Title"
  2. 启动 MCP 服务器: 在终端中,导航到 'server.py' 所在的目录,并执行以下命令启动服务器:

    uv run server.py

    服务器默认会在 '0.0.0.0:8080' 地址和端口上运行。

  3. 通过 MCP 客户端调用工具: 使用 MCP 客户端(例如 Claude),根据配置信息连接到该 DICOM MCP 服务器。然后可以调用以下工具进行 DICOM 连接性测试:

    • 'list_dicom_nodes()': 列出所有配置的 DICOM 节点。
    • 'dicom_cecho_by_name(node_name="<节点名称>", local_ae_name="default")': 使用节点名称执行 C-ECHO,例如 'dicom_cecho_by_name(node_name="main_pacs")'。
    • 'dicom_cecho(remote_ae_title="<远程AE>", ip="<IP地址>", port=<端口号>, local_ae_title="MCP_DICOM")': 直接指定参数执行 C-ECHO,例如 'dicom_cecho(remote_ae_title="REMOTE_AE", ip="192.168.1.100", port=104)'。

    MCP 客户端会以 JSON-RPC 格式向服务器发送请求,并接收 JSON-RPC 响应。

注意事项

  • 确保 DICOM 节点配置 ('nodes.yaml') 文件中的信息正确。
  • 检查网络连接,确保 MCP 服务器可以访问配置的 DICOM 节点。
  • 如果遇到 'spawn uv ENOENT' 错误,请参考 'README.md' 中的 Troubleshooting 部分检查 UV 的安装和 PATH 配置。

信息

分类

桌面与硬件