ヘルスケアMCPサーバー
AI アシスタントにヘルスケア データと医療情報ツールへのアクセスを提供するモデル コンテキスト プロトコル (MCP) サーバー。
概要
ヘルスケアMCPサーバーは、モデルコンテキストプロトコル(MCP)を実装した専用サーバーで、AIアシスタントにヘルスケアデータと医療情報ツールへのアクセスを提供します。これにより、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とカバレッジレポートを備えた広範なテストスイート
インストール
手動インストール
リポジトリをクローンします。
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.pyHTTP/SSE モード(Web クライアント用):
python run.py --http --port 8000
ツールのテスト
新しい 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 lookupAPIリファレンス
Healthcare MCP サーバーは、直接統合用のプログラム API と、Web クライアント用の 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"
}
}
]
}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"
}
]
}汎用ツールの実行
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: 返される結果の最大数
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ライセンス