dicom-mcp服务器使AI助手能够查询、读取和移动DICOM服务器(如PACS、VNA等)上的数据。
---------------------------------------------------------------------
🧑⚕️ 用户: "John Doe之前的CT报告中有什么重要的发现吗?"
🧠 LLM → ⚙️ 工具:
query_patients → query_studies → query_series → extract_pdf_text_from_dicom
💬 LLM 响应: "2025年3月26日的报告提到有脾肿大的病史(脾脏增大)"
🧑⚕️ 用户: "他上次扫描和今天的扫描中脾脏的体积是多少?"
🧠 LLM → ⚙️ 工具:
(query_studies → query_series → move_series → query_series → extract_pdf_text_from_dicom) x2
(move_series工具将最新的CT发送到DICOM分割节点,该节点返回体积PDF报告)
💬 LLM 响应: "去年2024年3月26日:412cm³,今天22025年4月10日:350cm³"
---------------------------------------------------------------------
dicom-mcp提供了以下工具:
使用uv或pip安装:
uv tool install dicom-mcp
或者通过克隆仓库:
# 克隆并设置开发环境
git clone https://github.com/ChristianHinge/dicom-mcp
cd dicom mcp
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate
# 使用测试依赖项安装
uv pip install -e ".[dev]"
dicom-mcp需要一个YAML配置文件(如config.yaml),定义DICOM节点和调用AE标题。可以调整配置以与示例ORTHANC服务器兼容。
nodes:
main:
host: "localhost"
port: 4242
ae_title: "ORTHANC"
description: "本地Orthanc DICOM服务器"
current_node: "main"
calling_aet: "MCPSCU"
[!WARNING] DICOM-MCP不适用于临床用途,不应连接到实时医院数据库或包含患者敏感数据的数据库。这样做可能导致患者数据丢失,并泄露患者数据到互联网。DICOM-MCP可以与本地托管的开放权重LLM一起使用,以确保完全的数据隐私。
如果没有可用的DICOM服务器,可以使用Docker运行本地ORTHANC服务器:
克隆仓库并安装测试依赖项 pip install -e ".[dev]
cd tests
docker ocmpose up -d
cd ..
pytest # 将模拟pdf数据上传到ORTHANC服务器
添加到客户端配置(例如claude_desktop_config.json):
{
"mcpServers": {
"dicom": {
"command": "uv",
"args": ["tool","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实例UID在系列内查找单个实例(图像/对象)。extract_pdf_text_from_dicom:检索包含封装PDF的特定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:列出元数据查询结果的可用详细级别(最小、标准、扩展)。这些工具可以串联起来回答复杂的问题:
<div align="center"> <img src="images/example.png" alt="我的精彩图表" width="700"> </div>测试需要运行的Orthanc DICOM服务器。可以使用Docker:
# 导航到包含docker-compose.yml的目录(例如tests/)
cd tests
docker-compose up -d
使用pytest运行测试:
# 从项目根目录
pytest
停止Orthanc容器:
cd tests
docker-compose down
使用MCP Inspector调试服务器通信:
npx @modelcontextprotocol/inspector uv run dicom-mcp /path/to/your_config.yaml --transport stdio