fhir-mcp-server-medagentbench について
fhir-mcp-server-medagentbench は、実際の FHIR エンドポイントなしで MedAgentBench エージェントをテストする Python 製 MCP サーバーです。FHIR 操作を模擬し、送信されるはずの HTTP リクエストをテキストで返します。
主な機能
- 01FHIR の検索と読み取りを模擬
- 02FHIR リソースの作成を模擬
- 03HTTP リクエストをテキストで表現
- 04模擬リソースとツールを公開
活用シーン
- 01実際の FHIR API なしで MedAgentBench エージェントをテスト
- 02生成された FHIR リクエスト表現を確認
MCP 対応
MCP クライアントに、検索、読み取り、リソース作成などの模擬 FHIR リソースとツールを公開します。FHIR サーバーへ HTTP リクエストを送らず、リクエスト内容をテキストで返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
fhir-mcp-server-medagentbench
MedAgentBench 環境向けに設計された、Python ベースの MCP(MedAgentBench Communications Protocol)サーバーです。このサーバーは、FHIR(Fast Healthcare Interoperability Resources)API とのやり取りをシミュレートします。
FHIR サーバーに実際の HTTP リクエストを送信する代わりに、FHIR 操作の MCP リクエストを傍受し、実行されるはずだった HTTP リクエストのテキスト表現を返します(例:GET https://fhir.example.com/Patient/123 または POST https://fhir.example.com/Observation\n{...})。これにより、稼働中の FHIR エンドポイントを用意せずに、MedAgentBench エージェントをテストできます。
特長
- MCP ハンドラーを実装します:
list_resources:利用可能なシミュレート対象リソース(現在はCapabilityStatement)を一覧表示します。read_resource:URI で指定された FHIR リソースの読み取りをシミュレートします。list_tools:利用可能な FHIR シミュレーションツールを一覧表示します。call_tool:FHIR 操作の実行をシミュレートします:search_fhir:FHIR リソースの検索をシミュレートします。read_fhir:URI で指定された特定の FHIR リソースの読み取りをシミュレートします。create_fhir_resource:新しい FHIR リソースの作成をシミュレートします。
- MCP 通信に
mcp-serverライブラリを使用します。 - Poetry を使用して設定およびパッケージ化されています。
pytestとpytest-asyncioによる非同期ユニットテストが含まれています。
インストール
Python >= 3.10 と Poetry がインストールされていることを確認してください。
poetry install
設定
サーバーを実行する前に、環境変数 FHIR_BASE_URL を設定する必要があります。この URL は、シミュレートされたリクエスト文字列の構築に使用されます。
export FHIR_BASE_URL="https://your-fhir-server-base.com/fhir"
# Or for local testing:
# export FHIR_BASE_URL="http://localhost:8080/fhir"
使用方法
設定後、インストールされたスクリプトを使用してサーバーを実行します:
fhir-mcp-server-medagentbench
サーバーは標準入出力を介して MCP リクエストの待ち受けを開始します。
開発
セットアップ
リポジトリをクローンし、開発ツールを含む依存関係をインストールします:
git clone https://github.com/MikeHolcomb/mcp-fhir-python-medagentbench.git
cd mcp-fhir-python-medagentbench
poetry install --with dev
リントとフォーマット
このプロジェクトでは、コードスタイル(black、isort)の適用と問題のチェック(flake8、mypy)に pre-commit を使用します。
# Run all checks on staged files (usually run automatically on commit)
poetry run pre-commit run
# Run all checks on all files
poetry run pre-commit run --all-files
# Or run tools individually
poetry run black .
poetry run isort .
poetry run flake8 src tests
poetry run mypy src
テスト
テストは tests/ ディレクトリにあり、pytest を使用します。
poetry run pytest
# Run with coverage report
poetry run pytest --cov=src
MCP ハンドラーが非同期であるため、テストには pytest-asyncio が必要です。
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については LICENSE ファイルを参照してください(ただし、LICENSE ファイルが存在しない場合は作成が必要になることがあります)。
コントリビューション
コントリビューションを歓迎します!Issue を作成するか、プルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。