Сервер MCP для здравоохранения
Сервер протокола контекста модели (MCP), предоставляющий помощникам на базе искусственного интеллекта доступ к данным здравоохранения и инструментам медицинской информации.
Обзор
Healthcare MCP Server — специализированный сервер, реализующий протокол контекста модели (MCP) для предоставления помощникам ИИ доступа к данным здравоохранения и инструментам медицинской информации. Он позволяет моделям ИИ извлекать точную и актуальную медицинскую информацию из авторитетных источников.
Related MCP server: MCP Toolkit
Функции
Информация о лекарственных препаратах FDA : поиск и извлечение полной информации о лекарственных препаратах из базы данных FDA.
PubMed Research : Поиск медицинской литературы в базе данных научных статей PubMed.
Темы здравоохранения : доступ к научно обоснованной информации о здоровье на Health.gov
Клинические испытания : Поиск текущих и завершенных клинических испытаний
Медицинская терминология : поиск кодов МКБ-10 и определений медицинской терминологии.
Кэширование : эффективная система кэширования с пулом соединений для сокращения вызовов API и повышения производительности.
Отслеживание использования : анонимное отслеживание использования для мониторинга использования API
Обработка ошибок : надежная обработка и ведение журнала ошибок.
Несколько интерфейсов : поддержка интерфейсов stdio (для CLI) и HTTP/SSE
Документация API : интерактивная документация API с пользовательским интерфейсом Swagger
Комплексное тестирование : обширный набор тестов с pytest и отчетами о покрытии
Установка
Установка через Smithery
Чтобы автоматически установить сервер медицинских данных и медицинской информации для Claude Desktop через Smithery :
npx -y @smithery/cli install @Cicatriiz/healthcare-mcp-public --client claudeРучная установка
Клонируйте репозиторий:
git clone https://github.com/Cicatriiz/healthcare-mcp-public.git cd healthcare-mcp-publicСоздайте виртуальную среду:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateУстановить зависимости:
pip install -r requirements.txtНастройте переменные среды (необязательно):
# Create .env file from example cp .env.example .env # Edit .env with your API keys (optional)Запускаем сервер:
python run.py
Использование
Работа в различных видах транспорта
Режим stdio (по умолчанию, для Cline):
python run.pyРежим HTTP/SSE (для веб-клиентов):
python run.py --http --port 8000
Тестирование инструментов
Вы можете протестировать инструменты MCP с помощью нового тестового набора на основе pytest:
# Run all tests with pytest and coverage
python -m tests.run_tests --pytest
# Run a specific test file
python -m tests.run_tests --test test_fda_tool.py
# Test the HTTP server
python -m tests.run_tests --server --port 8000Для обеспечения обратной совместимости вы по-прежнему можете запускать старые тесты:
# Run all tests (old style)
python -m tests.run_tests
# Test individual tools (old style)
python -m tests.run_tests --fda # Test FDA drug lookup
python -m tests.run_tests --pubmed # Test PubMed search
python -m tests.run_tests --health # Test Health Topics
python -m tests.run_tests --trials # Test Clinical Trials search
python -m tests.run_tests --icd # Test ICD-10 code lookupСсылка на API
Сервер Healthcare MCP предоставляет как программный API для прямой интеграции, так и RESTful HTTP API для веб-клиентов.
Конечные точки RESTful API
При работе в режиме HTTP доступны следующие конечные точки:
Проверка здоровья
GET /healthВозвращает состояние сервера и его служб.
Поиск лекарств FDA
GET /api/fda?drug_name={drug_name}&search_type={search_type}Параметры:
drug_name: Название препарата для поискаsearch_type: Тип информации для извлеченияgeneral: Основная информация о препарате (по умолчанию)label: Информация о маркировке лекарственных средствadverse_events: Зарегистрированные неблагоприятные события
Пример ответа:
{
"status": "success",
"drug_name": "aspirin",
"search_type": "general",
"total_results": 25,
"results": [
{
"brand_name": "ASPIRIN",
"generic_name": "ASPIRIN",
"manufacturer": "Bayer Healthcare",
"product_type": "HUMAN OTC DRUG",
"route": "ORAL",
"active_ingredients": [
{
"name": "ASPIRIN",
"strength": "325 mg/1"
}
]
}
]
}Поиск PubMed
GET /api/pubmed?query={query}&max_results={max_results}&date_range={date_range}Параметры:
query: Поисковый запрос по медицинской литературеmax_results: Максимальное количество возвращаемых результатов (по умолчанию: 5, максимум: 50)date_range: Ограничить статьями, опубликованными в течение нескольких лет (например, «5» для последних 5 лет)
Пример ответа:
{
"status": "success",
"query": "diabetes treatment",
"total_results": 123456,
"date_range": "5",
"articles": [
{
"pmid": "12345678",
"title": "New advances in diabetes treatment",
"authors": ["Smith J", "Johnson A"],
"journal": "Journal of Diabetes Research",
"publication_date": "2023-01-15",
"abstract": "This study explores new treatment options...",
"url": "https://pubmed.ncbi.nlm.nih.gov/12345678/"
}
]
}Темы о здоровье
GET /api/health_finder?topic={topic}&language={language}Параметры:
topic: Здоровье тема для поиска информацииlanguage: язык для контента (en или es, по умолчанию: en)
Пример ответа:
{
"status": "success",
"search_term": "diabetes",
"language": "en",
"total_results": 15,
"topics": [
{
"title": "Diabetes Type 2",
"url": "https://health.gov/myhealthfinder/topics/health-conditions/diabetes/diabetes-type-2",
"last_updated": "2023-05-20",
"section": "Health Conditions",
"description": "Information about managing type 2 diabetes",
"content": ["Diabetes is a disease...", "Treatment options include..."]
}
]
}Поиск клинических испытаний
GET /api/clinical_trials?condition={condition}&status={status}&max_results={max_results}Параметры:
condition: Медицинское состояние или заболевание, которое нужно найтиstatus: Статус испытания (набор, завершен, активен, не_набор или все)max_results: Максимальное количество возвращаемых результатов (по умолчанию: 10, максимум: 100)
Пример ответа:
{
"status": "success",
"condition": "breast cancer",
"search_status": "recruiting",
"total_results": 256,
"trials": [
{
"nct_id": "NCT12345678",
"title": "Study of New Treatment for Breast Cancer",
"status": "Recruiting",
"phase": "Phase 2",
"study_type": "Interventional",
"conditions": ["Breast Cancer", "HER2-positive Breast Cancer"],
"locations": [
{
"facility": "Memorial Hospital",
"city": "New York",
"state": "NY",
"country": "United States"
}
],
"sponsor": "National Cancer Institute",
"url": "https://clinicaltrials.gov/study/NCT12345678",
"eligibility": {
"gender": "Female",
"min_age": "18 Years",
"max_age": "75 Years",
"healthy_volunteers": "No"
}
}
]
}Поиск кода МКБ-10
GET /api/medical_terminology?code={code}&description={description}&max_results={max_results}Параметры:
code: код МКБ-10 для поиска (необязательно, если указано описание)description: Описание медицинского состояния для поиска (необязательно, если указан код)max_results: Максимальное количество возвращаемых результатов (по умолчанию: 10, максимум: 50)
Пример ответа:
{
"status": "success",
"search_type": "description",
"search_term": "diabetes",
"total_results": 25,
"codes": [
{
"code": "E11",
"description": "Type 2 diabetes mellitus",
"category": "Endocrine, nutritional and metabolic diseases"
},
{
"code": "E10",
"description": "Type 1 diabetes mellitus",
"category": "Endocrine, nutritional and metabolic diseases"
}
]
}Исполнение универсального инструмента
POST /mcp/call-toolТекст запроса:
{
"name": "fda_drug_lookup",
"arguments": {
"drug_name": "aspirin",
"search_type": "general"
},
"session_id": "optional-session-id"
}Программный API
При программном использовании сервера MCP доступны следующие функции:
Поиск лекарств FDA
fda_drug_lookup(drug_name: str, search_type: str = "general")Параметры:
drug_name: Название препарата для поискаsearch_type: Тип информации для извлеченияgeneral: Основная информация о препарате (по умолчанию)label: Информация о маркировке лекарственных средствadverse_events: Зарегистрированные неблагоприятные события
Поиск PubMed
pubmed_search(query: str, max_results: int = 5, date_range: str = "")Параметры:
query: Поисковый запрос по медицинской литературеmax_results: Максимальное количество возвращаемых результатов (по умолчанию: 5)date_range: Ограничить статьями, опубликованными в течение нескольких лет (например, «5» для последних 5 лет)
Темы о здоровье
health_topics(topic: str, language: str = "en")Параметры:
topic: Здоровье тема для поиска информацииlanguage: язык для контента (en или es, по умолчанию: en)
Поиск клинических испытаний
clinical_trials_search(condition: str, status: str = "recruiting", max_results: int = 10)Параметры:
condition: Медицинское состояние или заболевание, которое нужно найтиstatus: Статус испытания (набор, завершен, активен, не_набор или все)max_results: Максимальное количество возвращаемых результатов
Поиск кода МКБ-10
lookup_icd_code(code: str = None, description: str = None, max_results: int = 10)Параметры:
code: код МКБ-10 для поиска (необязательно, если указано описание)description: Описание медицинского состояния для поиска (необязательно, если указан код)max_results: Максимальное количество возвращаемых результатов
Источники данных
Этот сервер MCP использует несколько общедоступных API-интерфейсов здравоохранения:
Премиум-версия (еще в разработке)
Это бесплатная версия Healthcare MCP Server с ограничениями на использование. Для расширенных функций и более высоких ограничений на использование ознакомьтесь с нашей премиум-версией:
Неограниченные вызовы API
Расширенные инструменты обработки данных в здравоохранении
Индивидуальные интеграции
Приоритетная поддержка
Лицензия
Лицензия Массачусетского технологического института