MedixHub Model Context Protocol (MCP) Server について
MedixHub Model Context Protocol (MCP) Serverは、MCPを利用するアプリに医療・ヘルスケアAPI機能を提供します。Open Targets、FDAの医薬品ラベル、Monarchの生物医学データを扱い、パラメーター検証と認証に対応します。
主な機能
- 01Open Targets GraphQLクエリ
- 02FDA医薬品ラベル検索
- 03一般名とブランド名の対応付け
- 04Monarch生物医学エンティティ検索
- 05関数パラメーターの検証
- 06APIキーとJWTによる認証
活用シーン
- 01医薬品ラベルと副作用の確認
- 02疾患と標的の関連性の調査
- 03表現型に関連する疾患の検索
- 04遺伝子や生物医学エンティティの検索
MCP 対応
標準メタデータとパラメーター検証を備えた医療機能をMCPクライアントに提供します。Open Targets、FDAの医薬品情報、Monarch検索などが含まれ、関数メタデータは検出用エンドポイントから取得できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MedixHub Model Context Protocol(MCP)サーバー
MedixHub を通じて医療・ヘルスケア API に統合アクセスできる Model Context Protocol(MCP)サーバーです。
特長
- JavaScript のみで実装
- 標準化された MCP メタデータを備えた関数を公開
- パラメーターを検証して関数を実行
- Ollama などの LLM とシームレスに統合
- 認証によって保護された API エンドポイント
- ストリーミングレスポンスに対応
実装済みの関数
このサーバーには、以下の関数の JavaScript 実装が含まれています。
- executeOpenTargetQuery - OpenTarget API に対して GraphQL クエリを実行します
- FDADrugLabelSearch - FDA データベースから医薬品情報を取得します
- get_drug_generic_name - ジェネリック医薬品名とブランド名を相互に変換します
- MonarchSearch - Monarch データベースで遺伝子、疾患、または表現型を検索します
- MonarchDiseasesForMultiplePhenotypes - 複数の表現型に一致する疾患を検索します
OpenTarget 関数
- 疾患情報の検索
- 医薬品の詳細情報と関連情報
- ターゲット(遺伝子/タンパク質)情報
- 疾患とターゲットの関連情報
- 医薬品と疾患の関係
FDA 医薬品ラベル関数
- 医薬品情報の検索
- ジェネリック名とブランド名の相互変換
- 副作用の検索
- 医薬品相互作用の検索
Monarch データベース関数
- 生物医学エンティティの検索
- 疾患と表現型の関連情報
- 遺伝子と表現型の関係
- 複数の表現型に基づく疾患検索
はじめに
前提条件
- Node.js 14 以降
- npm または yarn
インストール
- リポジトリをクローンします
git clone https://github.com/yourusername/medixhub-mcp-server.git
cd medixhub-mcp-server
- 依存関係をインストールします
npm install
- 環境変数を設定します
cp .env.example .env
# Edit .env with your settings
- サーバーを起動します
npm start
自動リロードを有効にして開発する場合:
npm run dev
使用方法
API を実行する
/execute エンドポイントを使用して、登録済みの MedixHub 関数を実行します。
POST /execute
Content-Type: application/json
{
"name": "queryFDADrugLabel",
"parameters": {
"searchFields": {
"drug_name": ["openfda.brand_name", "openfda.generic_name"]
},
"returnFields": ["openfda.generic_name", "warnings"],
"arguments": {
"drug_name": "ibuprofen",
"limit": 1
}
}
}
MedixHub API に直接アクセスする
/medixhub エンドポイントを使用して、API に直接アクセスします。
/medixhub/opentargets/medixhub/opentargets-genetics/medixhub/drug-by-name/medixhub/fda-drug-label/medixhub/drug-generic-name/medixhub/monarch/medixhub/diseases-for-phenotypes
関数のメタデータ
利用可能な関数の情報を取得します。
/functions- 利用可能なすべての関数/functions/medixhub- MedixHub 固有の関数/functions/category/:category- カテゴリ別の関数
API ドキュメント
API ドキュメントの全文は /functions/medixhub で確認できます。
開発
プロジェクト構成
medixhub-mcp-server/
├── server.js # Main server file
├── src/
│ ├── medixhub/ # MedixHub integration
│ ├── middleware/ # Middleware
│ ├── routes/ # Route handlers
│ └── services/ # Services
├── examples/ # Usage examples
└── tests/ # Test suite
新しい関数の追加
レジストリに新しい関数を追加するには、次の手順に従います。
const { registerFunction } = require('./src/services/functionRegistry');
registerFunction('myNewFunction', {
name: 'myNewFunction',
description: 'Description of what this function does',
parameters: {
// Parameter schema
},
function: async (params) => {
// Implementation
return result;
}
});
テストの実行
npm test
認証
このサーバーは、次の 2 種類の認証方式に対応しています。
- API キー:キーを使用するシンプルな認証方式
- JWT トークン:より細かいアクセス制御が可能な方式
本番モードでは、関数の検出を除くすべてのエンドポイントで認証が必要です。
環境変数
次の環境変数を使用してサーバーを設定します。
PORT:サーバーのポート(デフォルト:3000)NODE_ENV:環境('development' または 'production')OLLAMA_API_URL:Ollama API の URLAPI_KEYS:有効な API キーをカンマ区切りで並べたリストFDA_API_KEY:FDA 医薬品データベースの API キー
利用可能なすべてのオプションについては .env.example を参照してください。
パフォーマンスに関する考慮事項
- サーバーはすべての API 呼び出しを非同期で処理します
- 不正利用を防ぐため、レート制限が有効になっています
- タイムアウト処理により、リクエストがハングするのを防ぎます
- ストリームを効率的に処理することで、メモリ使用量を最適化します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。