Skip to main content
Glama
ChristianHinge

DICOM MCP Server

Сервер DICOM MCP для систем медицинской визуализации 🏥

Лицензия: Массачусетский технологический институт Версия Python Версия PyPI Загрузки PyPI

Сервер dicom-mcp позволяет помощникам на базе искусственного интеллекта запрашивать, считывать и перемещать данные на серверах DICOM (PACS, VNA и т. д.).

🤝 Внести свой вклад • 📝 Сообщить об ошибке • 📝 Запись в блоге 1

---------------------------------------------------------------------
🧑‍⚕️ 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) : извлечение экземпляров DICOM, содержащих инкапсулированные PDF-файлы (например, клинические отчеты), и извлечение текстового содержимого.

  • ➡️ Отправка изображений DICOM : отправка серий или исследований в другие пункты назначения DICOM, например, в конечные точки ИИ для сегментации изображений, классификации и т. д.

  • ⚙️ Утилиты : управление подключениями и понимание параметров запросов.

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 требует файл конфигурации YAML ( config.yaml или аналогичный), определяющий узлы DICOM и вызывающий заголовки AE. Адаптируйте конфигурацию или оставьте как есть для совместимости с образцом сервера 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, вы можете запустить локальный сервер ORTHANC с помощью Docker:

Клонируйте репозиторий и установите тестовые зависимости pip install -e ".[dev]

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

Пользовательский интерфейс по адресу 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.

🔍 Запрос метаданных

  • query_patients : Поиск пациентов по таким критериям, как имя, идентификатор или дата рождения.

  • query_studies : поиск исследований по идентификатору пациента, дате, модальности, описанию, номеру доступа или уникальному идентификатору исследования.

  • query_series : поиск серий в рамках определенного исследования с использованием модальности, номера/описания серии или уникального идентификатора серии.

  • query_instances : поиск отдельных экземпляров (изображений/объектов) в серии с использованием номера экземпляра или UID экземпляра SOP

📄 Читать отчеты DICOM (PDF)

  • extract_pdf_text_from_dicom : извлечение определенного экземпляра DICOM, содержащего инкапсулированный PDF-файл, и извлечение его текстового содержимого.

➡️ Отправка изображений DICOM

  • move_series : отправка определенной серии DICOM на другой настроенный узел DICOM с помощью C-MOVE.

  • move_study : отправка всего исследования DICOM на другой настроенный узел DICOM с помощью C-MOVE.

⚙️ Коммунальные услуги

  • list_dicom_nodes : Отображение текущего активного узла DICOM и списка всех настроенных узлов.

  • switch_dicom_node : изменение активного узла DICOM для последующих операций.

  • verify_connection : проверка сетевого подключения DICOM к текущему активному узлу с помощью C-ECHO.

  • 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

  • Использует PyPDF2 для извлечения текста из PDF-файлов

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