Healthcare MCP Server について
Healthcare MCP Server は、FDA の医薬品情報、PubMed、medRxiv、臨床試験、ICD-10 コード、DICOM メタデータ、BMI 計算などの医療・健康情報ツールを AI アシスタントに提供する MCP サーバーです。公的なデータソースに基づいて医療関連の質問に答える開発者やアプリケーションに向いています。DXT 拡張機能、npm パッケージ、ソースからの導入に対応しています。
主な機能
- 01FDA 医薬品情報の検索
- 02PubMed、medRxiv、NCBI Bookshelf の文献検索
- 03臨床試験と ICD-10 コードの検索
- 04DICOM メタデータの抽出と BMI 計算
- 05stdio と HTTP/SSE のインターフェース
活用シーン
- 01アシスタントからの医薬品ラベルや有害事象報告の確認
- 02医学文献と進行中の臨床試験の調査
- 03ICD-10 コードの検索や DICOM ファイルからのメタデータ読み取り
MCP 対応
本プロジェクトは MCP サーバーであり、fda_drug_lookup、pubmed_search、clinical_trials_search、lookup_icd_code、calculate_bmi などのツールを MCP クライアントに公開します。DXT、npm、stdio で導入できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ヘルスケア MCP サーバー
AI アシスタントがヘルスケアデータや医療情報ツールにアクセスできるようにする、Model Context Protocol(MCP)サーバーです。
概要
Healthcare MCP Server は、Model Context Protocol(MCP)を実装し、AI アシスタントがヘルスケアデータや医療情報ツールにアクセスできるようにする、Node.js 製の専用サーバーです。AI モデルは、信頼できる情報源から正確で最新の医療情報を取得できます。このリポジトリには、Node.js による完全な実装を含む単一の DXT パッケージが用意されています。
DXT 拡張機能
このリポジトリには、対応する開発環境に簡単にインストールできる、パッケージ化された DXT(Desktop Extension)ファイルが含まれています。ワンクリックでインストールするには、healthcare-mcp.dxt をダウンロードしてください。
機能
- FDA 医薬品情報:FDA データベースから包括的な医薬品情報を検索して取得します(応答の解析を改善)
- PubMed 研究論文:PubMed の科学論文データベースから医学文献を検索します
- 健康トピック:Health.gov のエビデンスに基づく健康情報にアクセスします(API v4 に更新)
- 臨床試験:進行中および完了済みの臨床試験を検索します(API パラメーターを更新)
- 医療用語:ICD-10 コードと医療用語の定義を検索します
- medRxiv 検索:medRxiv のプレプリント論文を検索します
- 医療計算機:ボディマス指数(BMI)を計算します
- NCBI Bookshelf 検索:NCBI Bookshelf で生物医学関連の書籍や文書を検索します
- DICOM メタデータ抽出:DICOM ファイルからメタデータを抽出します
- キャッシュ:コネクションプーリングを備えた効率的なキャッシュシステムにより、API 呼び出しを減らし、パフォーマンスを向上させます
- 使用状況の追跡:API の使用状況を監視するため、匿名で使用状況を追跡します
- エラー処理:堅牢なエラー処理とログ記録
- 複数のインターフェース:stdio(CLI 用)と HTTP/SSE インターフェースの両方をサポートします
- API ドキュメント:Swagger UI によるインタラクティブな API ドキュメント
- 包括的なテスト:Node.js によるテストと API 検証を含む広範なテストスイート
インストール
オプション 1:DXT 拡張機能(推奨)
- このリポジトリから
healthcare-mcp.dxtをダウンロードします - 対応する MCP クライアント(Claude Desktop など)で開きます
- インストールの案内に従います
- GUI から任意の設定を構成します
オプション 2:Smithery 経由でのインストール
Smithery 経由で、Claude Desktop 用の Healthcare Data and Medical Information Server を自動的にインストールするには:
npx -y @smithery/cli install @Cicatriiz/healthcare-mcp-public --client claude
オプション 3:npm によるインストール
-
パッケージをインストールします:
npm install healthcare-mcp -
サーバーを実行します:
npx healthcare-mcp
オプション 4:ソースからの手動インストール
-
リポジトリをクローンします:
git clone https://github.com/Cicatriiz/healthcare-mcp-public.git cd healthcare-mcp-public/server -
依存関係をインストールします:
npm install -
環境変数を設定します(任意):
# Create .env file from example cp .env.example .env # Edit .env with your API keys (optional) -
サーバーを実行します:
npm start
使用方法
サーバーの実行
-
stdio モード(デフォルト、MCP クライアント用):
npm start -
HTTP/SSE モード(ウェブクライアント用):
npm run server:http
ツールのテスト
組み込みのテストスクリプトを使用して、MCP ツールをテストできます:
# Test all tools
npm test
# Test individual tools
npm run test:fda # Test FDA drug lookup
npm run test:pubmed # Test PubMed search
npm run test:health # Test Health Topics
npm run test:trials # Test Clinical Trials search
npm run test:icd # Test ICD-10 code lookup
API リファレンス
Healthcare MCP Server は、直接統合するためのプログラム 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:試験のステータス(recruiting、completed、active、not_recruiting、または all)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を指定した場合は省略可能)description:検索する病状の説明(codeを指定した場合は省略可能)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"
}
MCP ツール
互換性のあるクライアントを通じて MCP サーバーを使用する場合、次のツールを利用できます。
FDA 医薬品の検索
fda_drug_lookup(drug_name, search_type = "general")
パラメーター:
drug_name:検索する医薬品の名前search_type:取得する情報の種類general:基本的な医薬品情報(デフォルト)label:医薬品のラベル情報adverse_events:報告された有害事象
PubMed 検索
pubmed_search(query, max_results = 5, date_range = "")
パラメーター:
query:医学文献の検索クエリmax_results:返す結果の最大数(デフォルト:5)date_range:指定した年数以内に発行された論文に限定します(例:過去5年間の場合は「5」)
健康トピック
health_topics(topic, language = "en")
パラメーター:
topic:情報を検索する健康トピックlanguage:コンテンツの言語(en または es、デフォルト:en)
臨床試験の検索
clinical_trials_search(condition, status = "recruiting", max_results = 10)
パラメーター:
condition:検索する病状または疾患status:試験のステータス(recruiting、completed、active、not_recruiting、または all)max_results:返す結果の最大数
ICD-10 コードの検索
lookup_icd_code(code = null, description = null, max_results = 10)
パラメーター:
code:検索する ICD-10 コード(descriptionを指定した場合は省略可能)description:検索する病状の説明(codeを指定した場合は省略可能)max_results:返す結果の最大数
medRxiv 検索
medrxiv_search(query, max_results = 10)
パラメーター:
query:medRxiv 論文の検索クエリmax_results:返す結果の最大数
BMI の計算
calculate_bmi(height_meters, weight_kg)
パラメーター:
height_meters:身長(メートル)weight_kg:体重(キログラム)
NCBI Bookshelf 検索
ncbi_bookshelf_search(query, max_results = 10)
パラメーター:
query:NCBI Bookshelf の検索クエリmax_results:返す結果の最大数
DICOM メタデータの抽出
extract_dicom_metadata(file_path)
パラメーター:
file_path:DICOM ファイルへのパス
データソース
この MCP サーバーでは、一般公開されている複数の医療関連 API を利用しています。
- FDA OpenFDA API
- PubMed E-utilities API
- Health.gov API
- ClinicalTrials.gov API
- NLM Clinical Table Search Service for ICD-10-CM
ライセンス
MIT License
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。