Skip to main content
Glama

의료 영상 시스템용 DICOM MCP 서버 🏥

라이센스: MIT 파이썬 버전 PyPI 버전 PyPI 다운로드

dicom-mcp 서버는 AI 어시스턴트가 DICOM 서버(PACS, VNA 등)에서 데이터를 쿼리하고, 읽고, 이동할 수 있도록 합니다.

🤝 기여 • 📝 버그 신고 • 📝 블로그 게시물

✨ 핵심 역량

dicom-mcp 다음 작업을 위한 도구를 제공합니다.

  • 🔍 메타데이터 쿼리 : 다양한 기준을 사용하여 환자, 연구, 시리즈 및 인스턴스를 검색합니다.

  • 📄 DICOM 보고서(PDF) 읽기 : 캡슐화된 PDF(예: 임상 보고서)가 포함된 DICOM 인스턴스를 검색하고 텍스트 콘텐츠를 추출합니다.

  • ➡️ DICOM 이미지 보내기 : 시리즈나 연구를 다른 DICOM 대상지(예: 이미지 분할, 분류를 위한 AI 엔드포인트)로 보냅니다.

  • ⚙️ 유틸리티 : 연결을 관리하고 쿼리 옵션을 이해합니다.

Related MCP server: DICOM-MCP

🚀 빠른 시작

📥 설치

uv 또는 pip를 사용하여 설치:

지엑스피1

또는 저장소를 복제합니다.

# 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 DICOM 노드를 정의하고 AE 제목을 호출하는 YAML 구성 파일( config.yaml 또는 유사 파일)이 필요합니다. 샘플 ORTHANC 서버와의 호환성을 위해 구성을 수정하거나 그대로 유지하세요.

nodes: main: host: "localhost" port: 4242 ae_title: "ORTHANC" description: "Local Orthanc DICOM server" current_node: "main" calling_aet: "MCPSCU"
NOTE

DICOM-MCP는 임상 용도로 제작되지 않은 오픈 소스 프로젝트이므로, 병원 데이터베이스나 환자 민감 데이터가 포함된 데이터베이스와 연결해서는 안 됩니다. 연결하지 않을 경우 환자 데이터가 손실되거나 인터넷으로 유출될 수 있습니다.

(선택 사항) ORTHANC 서버 샘플

DICOM 서버를 사용할 수 없는 경우 Docker를 사용하여 로컬 ORTHANC 서버를 실행할 수 있습니다.

저장소를 복제하고 테스트 종속성을 설치합니다 pip install -e ".[dev]

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

http://localhost:8042 의 UI

🔌 MCP 통합

클라이언트 구성에 다음을 추가합니다(예: 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 데이터와의 상호작용을 위한 4가지 범주의 도구를 제공합니다.

🔍 쿼리 메타데이터

  • query_patients : 이름, ID, 생년월일 등의 기준으로 환자를 검색합니다.

  • query_studies : 환자 ID, 날짜, 모달리티, 설명, 접근 번호 또는 연구 UID를 사용하여 연구를 찾습니다.

  • query_series : 모달리티, 시리즈 번호/설명 또는 시리즈 UID를 사용하여 특정 연구 내의 시리즈를 찾습니다.

  • query_instances : 인스턴스 번호 또는 SOP 인스턴스 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 : 메타데이터 쿼리 결과에 대해 사용 가능한 세부 정보 수준(최소, 표준, 확장)을 나열합니다.

예시 상호작용

다음과 같은 도구를 연결하여 복잡한 질문에 답할 수 있습니다.

--------------------------------------------------------------------- 🧑‍⚕️ 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³" ---------------------------------------------------------------------

📈 기여하기

테스트 실행

테스트를 실행하려면 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

🙏 감사의 말

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChristianHinge/dicom-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server