Skip to main content
Glama
ChristianHinge

DICOM MCP Server

医用画像システム向け DICOM MCP サーバー 🏥

ライセンス: MIT Pythonバージョン PyPIバージョン PyPI ダウンロード

dicom-mcpサーバーにより、AI アシスタントは DICOM サーバー (PACS、VNA など) 上のデータを照会、読み取り、移動できるようになります。

🤝**貢献する• 📝バグを報告する• 📝ブログ投稿**

✨ コア機能

dicom-mcp次のツールを提供します:

  • 🔍 クエリメタデータ: さまざまな基準を使用して、患者、研究、シリーズ、インスタンスを検索します。

  • 📄 DICOM レポート (PDF) の読み取り: カプセル化された PDF (臨床レポートなど) を含む DICOM インスタンスを取得し、テキスト コンテンツを抽出します。

  • ➡️ DICOM 画像の送信: シリーズまたはスタディを他の DICOM の送信先 (画像セグメンテーション、分類などのための AI エンドポイントなど) に送信します。

  • ⚙️ ユーティリティ: 接続を管理し、クエリ オプションを理解します。

Related MCP server: DICOM API MCP Server

🚀 クイックスタート

📥 インストール

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は、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

UI はhttp://localhost:8042にあります

🔌 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 インスペクターを使用します。

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

🙏 謝辞

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query, read, download, and move medical imaging data on DICOM servers (PACS, VNA) including patient searches, study retrieval, PDF report extraction, and image transfer to AI endpoints for analysis.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that exposes a DICOMweb-compliant DICOM archive to AI assistants. It lets any MCP-capable client search studies, series and instances, inspect metadata, read Structured and Encapsulated PDF Reports, and render image frames — all through natural language.
    9
    23 npm
    4
    MIT