Skip to main content
Glama

Mutation Clinical Trial Matching MCP

by pickleton89

Мутация Клиническое испытание Соответствие MCP

Сервер протокола контекста модели (MCP), который позволяет Claude Desktop искать совпадения в clincialtrials.gov на основе мутаций.

Статус

В настоящее время это первая фаза разработки. Она работает над получением испытаний на основе заданных мутаций в запросе Клода. Однако все еще есть ошибки и дальнейшие улучшения и дополнения, которые необходимо реализовать.

Обзор

Этот проект следует принципам Agentic Coding для создания системы, которая интегрирует Claude Desktop с API clinicaltrials.gov. Сервер позволяет делать запросы на естественном языке о генетических мутациях и возвращает обобщенную информацию о соответствующих клинических испытаниях.

Каждый узел в потоке следует шаблону узла PocketFlow с методами prep , exec и post :

Структура проекта

Этот проект организован в соответствии с парадигмой агентного кодирования:

  1. Требования (под руководством человека):
    • Поиск и обобщение клинических испытаний, связанных с определенными генетическими мутациями.
    • Предоставьте информацию о мутациях в качестве контекстных ресурсов
    • Полная интеграция с Claude Desktop
  2. Проектирование потока (совместное):
    • Пользователь спрашивает Клода Десктопа о генетической мутации
    • Клод называет наш инструмент MCP-сервера
    • Сервер запрашивает API clinicaltrials.gov
    • Сервер обрабатывает и суммирует результаты
    • Сервер возвращает форматированные результаты Клоду
  3. Утилиты (совместные):
    • clinicaltrials/query.py : обрабатывает вызовы API к clinicaltrials.gov
    • utils/call_llm.py : Утилиты для работы с Клодом
  4. Проектирование узлов (под управлением ИИ):
    • utils/node.py : реализует базовые классы Node и BatchNode с шаблоном prep/exec/post
    • clinicaltrials/nodes.py : определяет специализированные узлы для запросов и обобщений
    • clinicaltrials_mcp_server.py : организует выполнение потока
  5. Реализация (под управлением ИИ):
    • FastMCP SDK для обработки деталей протокола
    • Обработка ошибок на всех уровнях
    • Ресурсы для распространенных мутаций

Компоненты

Сервер MCP ( clinicaltrials_mcp_server.py )

Основной сервер, реализующий интерфейс Model Context Protocol, использующий официальный Python SDK. Он:

  • Регистрирует и предоставляет инструменты для использования Клодом
  • Предоставляет ресурсы с информацией о распространенных мутациях
  • Обеспечивает связь с Claude Desktop

Модуль запроса ( clinicaltrials/query.py )

Отвечает за запросы к API clinicaltrials.gov с помощью:

  • Надежная обработка ошибок
  • Проверка входных данных
  • Подробная регистрация

Суммировщик ( llm/summarize.py )

Обрабатывает и форматирует данные клинических испытаний:

  • Организует испытания по фазам
  • Извлекает ключевую информацию (идентификатор NCT, резюме, условия и т. д.)
  • Создает читабельную сводку разметки

Реализация шаблона узла

В этом проекте реализован шаблон PocketFlow Node, который обеспечивает модульный, удобный в обслуживании подход к построению рабочих процессов ИИ:

Базовые классы узлов ( utils/node.py )

  • Узел : базовый класс с методами prep , exec и post для обработки данных.
  • BatchNode : расширение для пакетной обработки нескольких элементов
  • Поток : организует выполнение узлов в последовательности.

Узлы внедрения ( clinicaltrials/nodes.py )

  1. QueryTrialsNode :
    # Queries clinicaltrials.gov API def prep(self, shared): return shared["mutation"] def exec(self, mutation): return query_clinical_trials(mutation) def post(self, shared, mutation, result): shared["trials_data"] = result shared["studies"] = result.get("studies", []) return "summarize"
  2. РезюмироватьTrialsNode :
    # Formats trial data into readable summaries def prep(self, shared): return shared["studies"] def exec(self, studies): return format_trial_summary(studies) def post(self, shared, studies, summary): shared["summary"] = summary return None # End of flow

Поток исполнения

Сервер MCP создает и запускает поток:

# Create nodes query_node = QueryTrialsNode() summarize_node = SummarizeTrialsNode() # Create flow flow = Flow(start=query_node) flow.add_node("summarize", summarize_node) # Run flow with shared context shared = {"mutation": mutation} result = flow.run(shared)

Этот шаблон разделяет подготовку, выполнение и постобработку, делая код более поддерживаемым и тестируемым. Для получения более подробной информации см. проектную документацию .

Использование

  1. Установите зависимости с помощью uv:
    uv pip install -r requirements.txt
  2. Настройте рабочий стол Claude:
    • Конфигурация в ~/Library/Application Support/Claude/claude_desktop_config.json уже должна быть настроена
  3. Запустите Claude Desktop и задайте такие вопросы:
    • «Какие клинические испытания доступны для мутаций EGFR L858R?»
    • «Проводятся ли какие-либо испытания мутаций BRAF V600E?»
    • «Расскажите мне об испытаниях перестроек ALK»
  4. Используйте ресурсы, задавая вопросы:
    • «Можете ли вы рассказать мне больше о мутации KRAS G12C?»

Интеграция с Claude Desktop

Вы можете настроить этот проект как инструмент Claude Desktop MCP. Используйте заполнители путей в своей конфигурации и замените их на ваши фактические пути:

"mutation-clinical-trials-mcp": { "command": "{PATH_TO_VENV}/bin/python", "args": [ "{PATH_TO_PROJECT}/clinicaltrials_mcp_server.py" ], "description": "Matches genetic mutations to relevant clinical trials and provides summaries." }

Переменные пути:

  • {PATH_TO_VENV} : Полный путь к каталогу вашей виртуальной среды.
  • {PATH_TO_PROJECT} : полный путь к каталогу, содержащему файлы вашего проекта.

Инструкция по установке:

  1. Клонируйте репозиторий на локальный компьютер.
  2. Установите uv, если у вас его еще нет:
    curl -LsSf https://astral.sh/uv/install.sh | sh # macOS/Linux # or iwr -useb https://astral.sh/uv/install.ps1 | iex # Windows PowerShell
  3. Создайте виртуальную среду и установите зависимости за один шаг:
    uv venv .venv uv pip install -r requirements.txt
  4. При необходимости активируйте виртуальную среду:
    source .venv/bin/activate # macOS/Linux .venv\Scripts\activate # Windows
  5. Определите полный путь к вашей виртуальной среде и каталогу проекта.
  6. Обновите свою конфигурацию, используя эти конкретные пути.

Примеры:

  • На macOS/Linux:
    "command": "/Users/username/projects/mutation_trial_matcher/.venv/bin/python"
  • В Windows:
    "command": "C:\\Users\\username\\projects\\mutation_trial_matcher\\.venv\\Scripts\\python.exe"

Советы по поиску пути:

  • Чтобы найти точный путь к интерпретатору Python в виртуальной среде, выполните:
    • which python (macOS/Linux)
    • where python (Windows, после активации venv)
  • В качестве пути к проекту используйте полный путь к каталогу, содержащему clinicaltrials_mcp_server.py .

Будущие улучшения

Полный список запланированных улучшений и будущих работ можно найти в документе future_work.md .

Зависимости

Этот проект опирается на следующие ключевые зависимости:

  • Python 3.7+ — базовая среда выполнения
  • PocketFlow ( pocketflow>=0.0.1 ) — фреймворк для создания модульных рабочих процессов ИИ с использованием шаблона Node
  • MCP SDK ( mcp[cli]>=1.0.0 ) - Официальный SDK Model Context Protocol для создания инструментов Claude Desktop
  • Запросы ( requests==2.31.0 ) - HTTP-библиотека для выполнения вызовов API к clinicaltrials.gov
  • Python-dotenv ( python-dotenv==1.1.0 ) — для загрузки переменных среды из файлов .env

Все зависимости можно установить с помощью uv, как описано в инструкции по установке.

Поиск неисправностей

Если Claude Desktop отключается от сервера MCP:

  • Проверьте логи по адресу: ~/Library/Logs/Claude/mcp-server-clinicaltrials-mcp.log
  • Перезагрузить рабочий стол Клода
  • Убедитесь, что сервер работает правильно.

Процесс разработки

Этот проект был разработан с использованием подхода кодирования с помощью ИИ, следуя принципам агентного кодирования, где люди проектируют, а агенты ИИ реализуют. Оригинальная программа на main была создана 2025-04-30. Реализация была создана с помощью парного программирования с:

  • Виндсерфинг
    • ЧатGPT 4.1
    • Клод 3.7 Сонет

Эти помощники на основе искусственного интеллекта сыграли важную роль в переводе высокоуровневых требований к проектированию в функциональный код, помогли с интеграцией API и структурировали проект в соответствии с передовыми практиками.

Обработка ограничения на количество символов .windsurfrules

Файл PocketFlow .windsurfrules из репозитория шаблонов содержит комплексные правила проекта, но Windsurf устанавливает ограничение в 6000 символов для файлов правил. Это означает, что вы не можете включить весь набор правил непосредственно в свой проект, а важные правила могут быть опущены или усечены.

Для решения этой проблемы рекомендуется два решения:

1. Использование памяти Windsurf 🪁 для хранения правил

Вы можете использовать функцию памяти Windsurf для хранения полного набора правил PocketFlow, даже если они превышают лимит файла .windsurfrules . Такой подход позволяет ссылаться на все соглашения проекта и передовые практики в общении с Windsurf, гарантируя, что ничего не будет потеряно из-за усечения. Пошаговые инструкции и подробное сравнение файлов памяти и правил см. в docs/memory_vs_windsurfrules.md .

2. Использование Context7 для доступа к рекомендациям

Важное примечание : этот проект основан на репозитории PocketFlow-Template-Python , который включает в себя полный файл .windsurfrules . Однако Windsurf имеет ограничение в 6000 символов для файлов правил, что означает, что полные правила PocketFlow не могут быть полностью загружены в память Windsurf.

Чтобы устранить это ограничение, мы создали подробные инструкции по использованию сервера Context7 MCP для доступа к рекомендациям PocketFlow во время разработки. Такой подход позволяет вам использовать всю мощь шаблонов проектирования и лучших практик PocketFlow, не ограничиваясь ограничением по количеству символов.

Для получения подробных инструкций по использованию Context7 с PocketFlow, пожалуйста, обратитесь к нашему руководству Context7 . Это руководство включает в себя:

  • Пошаговая инструкция по настройке Context7 MCP в Windsurf
  • Подсказки на естественном языке для доступа к документации PocketFlow
  • Примеры получения конкретных шаблонов реализации
  • Как сохранить важные закономерности в качестве воспоминаний для дальнейшего использования

Следуя этому руководству, вы сможете соблюдать принципы агентного кодирования PocketFlow при разработке и расширении этого проекта.

Благодарности

Этот проект был создан с использованием PocketFlow-Template-Python в качестве отправной точки. Особая благодарность первоначальным участникам этого проекта за предоставление основы и структуры, которые сделали эту реализацию возможной.

Проект следует методологии агентного кодирования, описанной в исходном шаблоне.

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .


⚠️ Отказ от ответственности

Этот проект является прототипом и предназначен только для исследовательских и демонстрационных целей. Он не должен использоваться для принятия медицинских решений или в качестве замены профессиональной медицинской консультации, диагностики или лечения. Из-за ограничений больших языковых моделей (LLM) информация, предоставляемая этим инструментом, может быть неполной, неточной или устаревшей. Пользователи должны проявлять осторожность и консультироваться с квалифицированными специалистами в области здравоохранения, прежде чем принимать какие-либо решения на основе результатов этой системы.


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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер протокола контекста модели, который позволяет Claude Desktop выполнять поиск на clinicaltrials.gov для соответствующих клинических испытаний на основе генетических мутаций, указанных в запросах на естественном языке.

  1. Статус
    1. Обзор
      1. Структура проекта
        1. Компоненты
          1. Сервер MCP ( clinicaltrials_mcp_server.py )
          2. Модуль запроса ( clinicaltrials/query.py )
          3. Суммировщик ( llm/summarize.py )
        2. Реализация шаблона узла
          1. Базовые классы узлов ( utils/node.py )
          2. Узлы внедрения ( clinicaltrials/nodes.py )
          3. Поток исполнения
        3. Использование
          1. Интеграция с Claude Desktop
            1. Будущие улучшения
              1. Зависимости
                1. Поиск неисправностей
                  1. Процесс разработки
                    1. Обработка ограничения на количество символов .windsurfrules
                      1. Использование памяти Windsurf 🪁 для хранения правил
                      2. Использование Context7 для доступа к рекомендациям
                    2. Благодарности

                      Related MCP Servers

                      • A
                        security
                        F
                        license
                        A
                        quality
                        A Model Context Protocol server that enhances language models with protein structure analysis capabilities, enabling detailed active site analysis and disease-related protein searches through established protein databases.
                        Last updated -
                        2
                        6
                        TypeScript
                      • -
                        security
                        A
                        license
                        -
                        quality
                        A specialized Model Context Protocol server that enhances AI-assisted medical learning by connecting Claude Desktop to PubMed, NCBI Bookshelf, and user documents for searching, retrieving, and analyzing medical education content.
                        Last updated -
                        Python
                        MIT License
                        • Apple
                      • -
                        security
                        F
                        license
                        -
                        quality
                        A Model Context Protocol server providing AI assistants with access to healthcare data tools, including FDA drug information, PubMed research, health topics, clinical trials, and medical terminology lookup.
                        Last updated -
                        6
                        Python
                        • Linux
                        • Apple
                      • A
                        security
                        A
                        license
                        A
                        quality
                        A Model Context Protocol server that enables AI tools like Claude or Cursor to directly interact with FamilySearch's family history data, including searching person records, viewing detailed information, and exploring ancestors and descendants.
                        Last updated -
                        9
                        3
                        TypeScript
                        MIT License
                        • Apple
                        • Linux

                      View all related MCP servers

                      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/pickleton89/mutation-clinical-trial-matching-mcp'

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