Healsens FHIR MCP について
Healsens FHIR MCP は、FHIR R4 または R5 システムを AI エージェントに接続するチーム向けの読み取り専用サーバーです。組み込みの適合性定義と接続先の CapabilityStatement を組み合わせ、型付きの読み取りや検索、対応する操作を支援します。
主な機能
- 01FHIR R4 と R5 に対応
- 02型付きリソースの読み取りと検索
- 03キャッシュ付きのライブ機能検出
- 04組み込みの適合性定義
- 05読み取り専用操作の呼び出し
- 06stdio と SSE でのホスティング
活用シーン
- 01指定した FHIR エンドポイントからリソースを取得
- 02FHIR 対応のパラメーターで検索
- 03エンドポイントの機能とスキーマを確認
MCP 対応
MCP クライアントに、FHIR の読み取り、検索、検出、読み取り専用操作のツールと、スキーマやガイドのリソースを提供します。stdio または SSE で動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
healsens-fhirmcp
FHIR R4 および R5 対応の、適合性を考慮したオープンソースの MCP サーバーです。
healsens-fhirmcp は、すでに FHIR を公開している医療システム向けに、Healsens が実装した MCP です。こうしたシステムのデータを、AI エージェントが安全かつ予測可能に、薄いプロキシでは実現しにくい高いスキーマ認識能力を備えて活用できるようにします。設定された FHIR ベース URL の前段に配置され、リソースの読み取り、型付き検索、適合性の検出、安全な読み取り専用操作に対応する、用途を絞った MCP インターフェイスを提供します。
基本的な考え方はシンプルです。サーバーが対象の FHIR API の理解を助けることで、モデルの性能が向上します。このプロジェクトでは、FHIR バージョンに対応した適合性アーティファクトを組み込み、接続先サーバーの実際の CapabilityStatement と組み合わせることで、ツール呼び出しが実際のエンドポイントの構造、意味、機能に基づいて行われるようにします。
このプロジェクトが生まれた理由
医療分野の AI 統合で起こる失敗の多くは、予測可能です。汎用 HTTP ラッパーでは公開範囲が広くなりすぎ、モデルは検索パラメーターを推測し、サーバー間の FHIR の違いによって、単純なタスクでさえ壊れやすいプロンプトエンジニアリングが必要になります。healsens-fhirmcp は、この問題を直接解決するために設計されています。
チームに実用的な MCP レイヤーを提供します。このレイヤーの特長は次のとおりです。
- エンドポイントに依存しないのではなく、FHIR を認識します
- プロンプトだけの想定ではなく、実際の適合性メタデータに基づきます
- 読み取り専用のツールセットと固定された接続先サーバーにより、設計上安全です
- stdio またはネイティブ SSE を使用した本番環境の統合フローで利用できます
このリポジトリは、おもちゃのサンプルではなく、医療分野の MCP 導入に向けた具体的で信頼できる基盤を実装者に提供するため、オープンソース化されています。
デモへのアクセス
プロジェクトを評価しているチーム向けに、ライブデモを利用できます。アクセスを申請するには、contact[at]healsens[dot]com にメールでお問い合わせください。
提供機能
- 接続先 FHIR サーバーを 1 つ設定
- 読み取り専用の MCP ツールインターフェイス
- FHIR R4 および R5 に対応
- コア
StructureDefinitionおよびOperationDefinitionレジストリを内蔵 - キャッシュ機能付きのライブ
CapabilityStatement取得 - 型付き読み取りと型付き検索
- 保守的な読み取り専用操作の呼び出し
fhirmcp://URI スキームによる検出用およびスキーマ用リソース- ネイティブの stdio および SSE ホスティングモード
MCP ツール
fhir_readfhir_searchfhir_capability_statementfhir_structure_definitionfhir_operation_definitionfhir_invoke_operation
MCP リソース
fhirmcp://server/guidefhirmcp://server/overviewfhirmcp://server/capability-statementfhirmcp://schema/structure-definitionsfhirmcp://schema/structure-definition/{selector}fhirmcp://schema/operation-definitionsfhirmcp://schema/operation-definition/{selector}fhirmcp://server/search-guide
設計原則
- 適合性を最優先:サーバーは、内蔵された FHIR アーティファクトと接続先の最新の
CapabilityStatementを使用して、ツールの動作を調整します。 - 設計上、読み取り専用:この実装は、安全な取得、検出、サポート対象の読み取り専用操作に意図的に絞っています。
- 予測可能な統合インターフェイス:接続先は 1 つに設定し、スキーマは明示的に、動作範囲は限定しています。
- 実環境での相互運用性:FHIR R4 と R5 の両方に対応し、起動時にサーバー固有の機能を検出します。
このプロジェクトは、完全な FHIR SDK、汎用プロキシ、書き込み可能なオーケストレーションレイヤーを目指すものではありません。
クイックスタート
- examples/config.yaml をコピーし、
target.base_urlに FHIR R4 または R5 サーバーの URL を設定します。 - サーバーで認証が必要な場合は、設定ファイルで指定されている名前のベアラートークン環境変数をエクスポートします。
- ベンダー提供の適合性アーティファクトを同期します。
- サーバーをビルドし、stdio または SSE で実行します。
./scripts/sync_fhir_core_defs.sh
go mod tidy
go build -o bin/healsens-fhirmcp ./cmd/healsens-fhirmcp
FHIRMCP_CONFIG=./examples/config.yaml ./bin/healsens-fhirmcp
server.transport: stdio の場合、バイナリは stdin と stdout を使用する従来型のサブプロセス MCP サーバーとして動作します。server.transport: sse の場合、デフォルトで http://127.0.0.1:8081/sse にネイティブ SSE MCP エンドポイントを公開します。
SSE モード
examples/config.yaml のトランスポートブロックを設定します。
server:
transport: sse
listen_address: 127.0.0.1:8081
sse_path: /sse
cors:
enabled: true
allowed_origins:
- http://localhost:8788
次に、サーバーを起動します。
go build -o bin/healsens-fhirmcp ./cmd/healsens-fhirmcp
FHIRMCP_CONFIG=./examples/config.yaml ./bin/healsens-fhirmcp
MCP SSE エンドポイントは次のとおりです。
http://127.0.0.1:8081/sse
クライアントがブラウザーコンテキストで実行される場合、server.cors は SSE エンドポイントとその POST メッセージエンドポイントへのクロスオリジンアクセスを制御します。allowed_origins には、信頼するブラウザーのオリジンを正確に指定してください。
開発
make sync-coreは、ベンダー管理されている FHIR R4 および R5 の成果物を更新します。make buildは、stdio モードまたは SSE モード用のサーバーバイナリをビルドします。make testは、ユニットテストと統合テストを実行します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。