Skip to main content
Glama
ChristianHinge

DICOM MCP Server

의료 영상 시스템용 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

🙏 감사의 말

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

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