헬스케어 MCP 서버
AI 보조원에게 의료 데이터와 의료 정보 도구에 대한 접근 권한을 제공하는 MCP(모델 컨텍스트 프로토콜) 서버입니다.
개요
Healthcare MCP Server는 AI 비서가 의료 데이터 및 의료 정보 도구에 접근할 수 있도록 모델 컨텍스트 프로토콜(MCP)을 구현하는 특수 서버입니다. AI 모델이 신뢰할 수 있는 출처에서 정확하고 최신의 의료 정보를 검색할 수 있도록 지원합니다.
Related MCP server: MCP Toolkit
특징
FDA 약물 정보 : FDA 데이터베이스에서 포괄적인 약물 정보를 검색하고 검색합니다.
PubMed Research : PubMed의 과학 기사 데이터베이스에서 의학 문헌 검색
건강 주제 : Health.gov에서 증거 기반 건강 정보에 접근하세요
임상 시험 : 진행 중이거나 완료된 임상 시험 검색
의학 용어 : ICD-10 코드와 의학 용어 정의를 찾아보세요
캐싱 : API 호출을 줄이고 성능을 향상시키기 위한 연결 풀링을 갖춘 효율적인 캐싱 시스템
사용 추적 : API 사용을 모니터링하기 위한 익명 사용 추적
오류 처리 : 강력한 오류 처리 및 로깅
다중 인터페이스 : stdio(CLI용) 및 HTTP/SSE 인터페이스 모두 지원
API 문서 : Swagger UI를 사용한 대화형 API 문서
종합 테스트 : pytest 및 커버리지 보고를 포함한 광범위한 테스트 모음
설치
수동 설치
저장소를 복제합니다.
지엑스피1
가상 환경 만들기:
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)
서버를 실행합니다:
용법
다양한 운송 수단으로 운행
도구 테스트
새로운 pytest 기반 테스트 모음을 사용하여 MCP 도구를 테스트할 수 있습니다.
# 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 모드에서 실행할 경우 다음 엔드포인트를 사용할 수 있습니다.
건강 검진
서버와 해당 서비스의 상태를 반환합니다.
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}
매개변수:
응답 예시:
{
"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}
매개변수:
응답 예시:
{
"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"
}
}
]
}
ICD-10 코드 조회
GET /api/medical_terminology?code={code}&description={description}&max_results={max_results}
매개변수:
code : 검색할 ICD-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"
}
]
}
일반 도구 실행
요청 본문:
{
"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 = "")
매개변수:
건강 주제
health_topics(topic: str, language: str = "en")
매개변수:
임상 시험 검색
clinical_trials_search(condition: str, status: str = "recruiting", max_results: int = 10)
매개변수:
condition : 검색할 건강 상태 또는 질병
status : 평가판 상태(모집 중, 완료, 활성, 모집 안 함 또는 모두)
max_results : 반환할 최대 결과 수
ICD-10 코드 조회
lookup_icd_code(code: str = None, description: str = None, max_results: int = 10)
매개변수:
code : 검색할 ICD-10 코드(설명이 제공된 경우 선택 사항)
description : 검색할 건강 상태 설명(코드가 제공된 경우 선택 사항)
max_results : 반환할 최대 결과 수
데이터 소스
이 MCP 서버는 공개적으로 사용 가능한 여러 가지 의료 API를 활용합니다.
프리미엄 버전(아직 개발 중)
이 버전은 Healthcare MCP Server의 무료 버전이며 사용 제한이 있습니다. 고급 기능과 더 높은 사용 제한을 원하시면 프리미엄 버전을 확인해 보세요.
무제한 API 호출
고급 의료 데이터 도구
사용자 정의 통합
우선 지원
특허
MIT 라이센스