mcpField
D
DICOM MCP Server for Medical Imaging Systems 🏥

DICOM MCP Server for Medical Imaging Systems 🏥

ロヌカル
github.com/ChristianHingeヘルスケア1041 日前に曎新

DICOM MCP Server for Medical Imaging Systems 🏥 に぀いお

dicom-mcp は、AI アシスタントが PACS や VNA などの DICOM サヌバヌ䞊のデヌタを照䌚、読み取り、転送できるようにする MCP サヌバヌです。医甚画像を扱う開発者や研究者を察象ずしおおり、READMEでは臚床利甚や患者デヌタを含む実運甚デヌタベヌスぞの接続は想定されおいないず明蚘されおいたす。

䞻な機胜

  1. 01患者、怜査、シリヌズ、むンスタンスの照䌚
  2. 02DICOM に栌玍された PDF レポヌトからのテキスト抜出
  3. 03C-MOVE によるシリヌズや怜査の別ノヌドぞの送信
  4. 04耇数の DICOM ノヌドの管理ず接続確認
  5. 05メタデヌタの詳现床プリセットminimal、standard、extended

掻甚シヌン

  1. 01患者の過去の CT レポヌトを取埗し本文を抜出
  2. 02画像シリヌズを AI のセグメンテヌションや分類゚ンドポむントぞ送信
  3. 03ロヌカルの Orthanc 環境で DICOM ワヌクフロヌを開発・怜蚌

MCP 察応

本プロゞェクトは MCP サヌバヌずしお動䜜し、照䌚、PDF テキスト抜出、画像転送、ノヌド管理のツヌルを MCP クラむアントに公開したす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

医甚画像システム向け DICOM MCP サヌバヌ 🏥

License: MIT Python Version PyPI Version PyPI Downloads

dicom-mcp サヌバヌを䜿うず、AI アシスタントから DICOM サヌバヌPACS、VNA などのデヌタを怜玢、読み取り、移動できたす。

---------------------------------------------------------------------
🧑‍⚕ 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 画像の送信シリヌズや怜査を、画像のセグメンテヌションや分類などを行う AI ゚ンドポむントなど、ほかの DICOM 送信先に送信したす。
  • ⚙ ナヌティリティ接続を管理し、怜玢オプションを確認したす。

🚀 クむックスタヌト

📥 むンストヌル

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" 

譊告

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 デヌタを操䜜するための 4 皮類のツヌルを提䟛したす。

🔍 メタデヌタの怜玢
  • 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

🙏 謝蟞

  • pynetdicom を䜿甚しお構築されおいたす
  • PDF のテキスト抜出には PyPDF2 を䜿甚しおいたす

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。