mcpField
D
DICOM MCP Server for Medical Imaging Systems 🏥

DICOM MCP Server for Medical Imaging Systems 🏥

本地服务
github.com/ChristianHinge健康医疗104今天更新

关于 DICOM MCP Server for Medical Imaging Systems 🏥

dicom-mcp 是一个 MCP 服务,让 AI 助手能够查询、读取和转发 DICOM 服务器(如 PACS、VNA)上的数据。它面向医学影像相关的开发与研究场景,并明确说明不用于临床及含患者敏感数据的环境。

主要功能

  1. 01按患者、检查、序列、实例查询元数据
  2. 02提取封装在 DICOM 中的 PDF 报告文本
  3. 03通过 C-MOVE 将序列或检查发送到其他节点
  4. 04管理多个 DICOM 节点并测试连接(C-ECHO)
  5. 05提供属性详细程度预设(minimal、standard、extended)

适用场景

  1. 01查询患者过往 CT 报告并提取其中的文字内容
  2. 02将影像序列发送到 AI 分割或分类服务进行处理
  3. 03在本地 Orthanc 测试环境中开发和验证 DICOM 工作流

MCP 相关

该项目作为 MCP 服务运行,向 MCP 客户端暴露查询、PDF 文本提取、影像转发、节点管理等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

面向医学影像系统的 DICOM MCP 服务 🏥

License: MIT Python Version PyPI Version PyPI Downloads

dicom-mcp 服务可让 AI 助手查询、读取和传输 DICOM 服务(PACS、VNA 等)上的数据。

🤝 参与贡献 • 📝 报告 Bug • 📝 博客文章 1

---------------------------------------------------------------------
🧑‍⚕️ User: "Any significant findings in John Doe's previous CT report?"

🧠 LLM → ⚙️ Tools:
   query_patients → query_studies → query_series → extract_pdf_text_from_dicom

💬 LLM Response: "The report from 2025-03-26 mentions a history of splenomegaly (enlarged spleen)"

🧑‍⚕️ User: "What's the volume of his spleen at the last scan and the scan today?"

🧠 LLM → ⚙️ Tools:
   (query_studies → query_series → move_series → query_series → extract_pdf_text_from_dicom) x2
   (The move_series tool sends the latest CT to a DICOM segmentation node, which returns volume PDF report)

💬 LLM Response: "last year 2024-03-26: 412cm³, today 2025-04-10: 350cm³"
---------------------------------------------------------------------

✨ 核心功能

dicom-mcp 提供以下工具:

  • 🔍 查询元数据:根据各种条件搜索患者、检查、序列和实例。
  • 📄 读取 DICOM 报告(PDF):检索包含封装 PDF(例如临床报告)的 DICOM 实例,并提取文本内容。
  • ➡️ 发送 DICOM 图像:将序列或检查发送到其他 DICOM 目标,例如用于图像分割、分类等的 AI 端点。
  • ⚙️ 实用工具:管理连接并了解查询选项。

🚀 快速开始

📥 安装

使用 uv 或 pip 安装:

uv tool install dicom-mcp

或者克隆仓库:

# Clone and set up development environment
git clone https://github.com/ChristianHinge/dicom-mcp
cd dicom mcp

# Create and activate virtual environment
uv venv
source .venv/bin/activate

# Install with test dependencies
uv pip install -e ".[dev]"
⚙️ 配置

dicom-mcp 需要一个 YAML 配置文件(config.yaml 或类似文件),用于定义 DICOM 节点和调用 AE 标题。可调整配置,也可保持原样以兼容示例 ORTHANC 服务。

nodes:
  main:
    host: "localhost"
    port: 4242 
    ae_title: "ORTHANC"
    description: "Local Orthanc DICOM server"

current_node: "main"
calling_aet: "MCPSCU" 

警告

DICOM-MCP 并非用于临床用途,不应连接到医院实时数据库或包含患者敏感数据的数据库。这样做可能导致患者数据丢失,也可能导致患者数据泄露到互联网上。DICOM-MCP 可与本地托管的开放权重 LLM 搭配使用,从而充分保护数据隐私。

(可选)示例 ORTHANC 服务

如果没有可用的 DICOM 服务,可以使用 Docker 运行本地 ORTHANC 服务:

克隆仓库并安装测试依赖 pip install -e ".[dev]

cd tests
docker compose up -d
cd ..
pytest # uploads dummy pdf data to ORTHANC server

UI 位于 http://localhost:8042

🔌 MCP 集成

添加到客户端配置中(例如 claude_desktop_config.json):

{
  "mcpServers": {
    "dicom": {
      "command": "uvx",
      "args": ["dicom-mcp", "/path/to/your_config.yaml"]
    }
  }
}

用于开发:

{
    "mcpServers": {
        "arxiv-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "path/to/cloned/dicom-mcp",
                "run",
                "dicom-mcp",
                "/path/to/your_config.yaml"
            ]
        }
    }
}

🛠️ 工具概览

dicom-mcp 提供四类工具,用于与 DICOM 服务和 DICOM 数据交互。

🔍 查询元数据
  • query_patients:根据姓名、ID 或出生日期等条件搜索患者。
  • query_studies:根据患者 ID、日期、模态、描述、登记号或 Study UID 查找检查。
  • query_series:根据模态、序列编号/描述或 Series UID,在指定检查中查找序列。
  • query_instances:根据实例编号或 SOP Instance UID,在序列中查找单个实例(图像/对象)
📄 读取 DICOM 报告(PDF)
  • extract_pdf_text_from_dicom:检索包含封装 PDF 的指定 DICOM 实例,并提取其文本内容。
➡️ 发送 DICOM 图像
  • move_series:使用 C-MOVE 将指定 DICOM 序列发送到另一个已配置的 DICOM 节点。
  • move_study:使用 C-MOVE 将整个 DICOM 检查发送到另一个已配置的 DICOM 节点。
⚙️ 实用工具
  • list_dicom_nodes:显示当前活动的 DICOM 节点,并列出所有已配置的节点。
  • switch_dicom_node:更改后续操作所使用的活动 DICOM 节点。
  • verify_connection:使用 C-ECHO 测试与当前活动节点的 DICOM 网络连接。
  • get_attribute_presets:列出元数据查询结果可用的详细程度级别(最简、标准、扩展)。

示例交互

这些工具可以串联起来,回答复杂问题:

我的精彩示意图

📈 贡献

运行测试

测试需要运行中的 Orthanc DICOM 服务。你可以使用 Docker:

# Navigate to the directory containing docker-compose.yml (e.g., tests/)
cd tests
docker-compose up -d

使用 pytest 运行测试:

# From the project root directory
pytest

停止 Orthanc 容器:

cd tests
docker-compose down
调试

使用 MCP Inspector 调试服务通信:

npx @modelcontextprotocol/inspector uv run dicom-mcp /path/to/your_config.yaml --transport stdio

🙏 致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。