langcare-mcp-fhir について
LangCare MCP FHIR は、EPIC、Cerner、OpenEMR などの FHIR ベースの電子カルテに AI エージェントを接続する Go 製の MCP サーバーです。エージェントに患者データの読み書きを行わせたい医療現場を対象にしています。任意の FHIR R4 リソースに対応する4つの汎用操作と、臨床ワークフローのスキル集を提供します。
主な機能
- 01読み取り、検索、作成、更新の4つの汎用 FHIR 操作
- 02EPIC、Cerner、OpenEMR、GCP などのバックエンドに対応
- 03stdio と Streamable HTTP のトランスポートに対応
- 04OAuth2、SMART on FHIR、mTLS による認証
- 05ログでのデフォルトの PHI マスキング
- 0640 以上の臨床ワークフロースキルガイド
活用シーン
- 01氏名と生年月日で患者を検索し本人確認を行う
- 02患者の検査値、バイタルサイン、投薬情報を要約する
- 03構造化された記録を FHIR リソースに変換して電子カルテに書き込む
MCP 対応
MCP サーバーとして fhir_read、fhir_search、fhir_create、fhir_update の4つのツールと、MCP Apps の対話型ビューを MCP クライアントに公開します。MCP クライアントと電子カルテのバックエンドの間に立つプロキシとして、バックエンドの認証を担います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LangCare MCP FHIR Server
FHIR ベースの EMR 向けエンタープライズグレードの MCP サーバーです。エンタープライズグレードのセキュリティを備え、Go で完全に実装されており、あらゆる FHIR R4 リソースタイプで動作する汎用 FHIR 操作を 4 つ提供します。EPIC、Cerner、OpenEMR、GCP Healthcare API、およびあらゆる汎用 FHIR R4 サーバーをサポートします。
40 以上の臨床スキルライブラリ が付属しています。薬剤管理、検査結果の解釈、臨床意思決定支援、文書作成、集団医療などを網羅する、エージェントに依存しないワークフローガイドです。✨ 新機能:Claude Managed Agents(Anthropic Managed Agents API 上で動作する、本番環境対応の臨床 AI エージェント 9 種)、MCP Apps(Claude Desktop 内の対話型臨床 UI)、Healthcare Voice Agent(FHIR を利用するリアルタイム音声 AI)、さらに MCP をネイティブに扱わないエージェントフレームワーク向けの LangCare CLI で拡張できます。
インストール
npm でインストールします:
npm install -g @langcare/langcare-mcp-fhir
または、インストールせずに直接使用します:
npx @langcare/langcare-mcp-fhir -config /path/to/config.yaml
クイック設定
LangCare MCP FHIR は Claude を FHIR ベースの EMR システムに接続します。バックエンドを指定する YAML 設定ファイルが必要です。
1. 設定テンプレートを取得する
バックエンドを選択します:
- EPIC: config.epic.example.yaml
- Cerner: config.cerner.example.yaml
- OpenEMR: config.openemr.example.yaml
- GCP Healthcare API: config.gcp.example.yaml
- 任意の FHIR R4 サーバー: config.base.example.yaml
2. Claude Desktop を設定する
Claude Desktop の設定ファイル(~/.config/Claude/claude_desktop_config.json)に追加します:
{
"mcpServers": {
"langcare-mcp-fhir": {
"command": "langcare-mcp-fhir",
"args": ["-config", "/path/to/your/config.yaml"]
}
}
}
macOS では、設定ファイルは通常、次の場所にあります:
~/Library/Application\ Support/Claude/claude_desktop_config.json
3. Claude Desktop を再起動する
Claude Desktop を終了して再度開きます。これで FHIR ツールが利用できるようになります。
詳細なセットアップ方法が必要ですか? ローカルテストガイドをご覧ください。
アーキテクチャ
この MCP サーバーは、AI エージェントと FHIR R4 サーバーの間でインテリジェントなプロキシとして機能します。Model Context Protocol(MCP)を通じて汎用 FHIR 操作を 4 つ公開し、あらゆる FHIR リソースタイプに対応した AI 搭載ワークフローを実現します。
主な設計:
- MCP SDK: 公式の
github.com/modelcontextprotocol/go-sdk(Anthropic/Google が保守) - FHIR クライアント: あらゆる FHIR R4 サーバーで動作する汎用 HTTP クライアント
- トランスポート: stdio および Streamable HTTP
- バックエンド: 既存の FHIR サーバーへのプロキシ(データベース不要)
- 言語: 高いパフォーマンスと信頼性を実現する 100% Go
4 つの汎用 MCP ツール
すべてのツールは、あらゆる FHIR リソースタイプ(Patient、Observation、Medication など)で動作します:
1. fhir_read
タイプと ID を指定して FHIR リソースを読み取ります。
{
"resourceType": "Patient",
"id": "example-123"
}
2. fhir_search
クエリパラメーターを使用してFHIRリソースを検索します。
{
"resourceType": "Patient",
"queryParams": "name=John&birthdate=gt1990-01-01"
}
3. fhir_create
新しいFHIRリソースを作成します。
{
"resourceType": "Observation",
"resource": {
"resourceType": "Observation",
"status": "final",
"code": { ... },
"subject": { "reference": "Patient/123" }
}
}
4. fhir_update
既存のFHIRリソースを更新します。
{
"resourceType": "Patient",
"id": "example-123",
"resource": {
"resourceType": "Patient",
"id": "example-123",
"name": [{ "family": "Smith" }]
}
}
セキュリティアーキテクチャ
LangCare MCP FHIR は、HIPAA 準拠の医療データアクセスのために、2 層のセキュリティモデルを実装しています。
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Claude │ Auth1 │ MCP Server │ Auth2 │ FHIR API │
│ Client │────────▶│ (Go) │────────▶│ (EMR) │
└─────────────┘ └──────────────┘ └─────────────┘
Auth1: MCP Client Authentication (Bearer Token/API Key)
Auth2: FHIR Backend Authentication (Bearer/OAuth2/SMART on FHIR)
セキュリティ機能
- ✅ HTTP トランスポートの暗号化に TLS 1.3 を使用
- ✅ ログ内の PHI のスクラブ(デフォルトで有効)
- ✅ HIPAA 準拠の監査ログ
- ✅ PHI の永続的な保存なし(ステートレスプロキシ)
- ✅ 環境変数によるシークレット管理(設定ファイルには保存しません)
- ✅ 自動トークン更新に対応した OAuth 2.0
- ✅ サービス間通信に対応した mTLS
- ✅ クライアントごとのレート制限
対応している認証方式
- ベアラートークン - シンプルな API キー認証
- OAuth2 - トークン更新機能を備えた完全な OAuth2 フロー
- SMART on FHIR バックエンドサービス - EPIC、OpenEMR、その他の SMART 準拠 EMR 向けの
private_key_jwt(RS384) - SMART on FHIR - EPIC、Cerner、OpenEMR、その他の EMR 標準
- Basic Auth - ユーザー名とパスワードによる認証
- カスタム - 追加の認証方式に対応可能な拡張性
セキュリティに関する完全なドキュメントについては、セキュリティガイドをご覧ください。
- HIPAA 準拠チェックリスト
- EPIC/Cerner/GCP 向け OAuth 設定
- Kubernetes セキュリティマニフェスト
- 認証情報の管理手順
- 監査ログの実装
MCP Apps(インタラクティブ UI)
LangCare MCP FHIR には、組み込みの MCP Apps が付属しています。これは、Claude Desktop などの MCP 対応ホスト内で直接実行できる、インタラクティブでリッチな UI ビューです。従来のチャットベースのツール出力とは異なり、MCP Apps は同じ基盤の FHIR ツールを使用しながら、チャート、テーブル、インタラクティブな操作要素を備えた React ベースのインターフェース全体を描画します。
仕組み: 各アプリは単一ファイルの HTML バンドル(React + TypeScript、Vite でコンパイル)であり、コンパイル時に go:embed を使用して Go バイナリに埋め込まれます。実行時には、MCP サーバーが各アプリを MCP リソース(text/html;profile=mcp-app)と、_meta.ui.resourceUri で関連付けられた専用の MCP ツールの両方として登録します。MCP ホストがツールを呼び出すと、リソースを取得して UI を描画します。アプリは app.callServerTool() を介してサーバーの汎用 FHIR ツール(fhir_search、fhir_read など)を呼び出すため、データ取得時に LLM を介した往復は発生しません。
通常のツール出力に対する利点:
- 豊かな視覚化 — SVG チャート、色分けされたカード、展開可能な詳細パネル
- インタラクティブな操作 — 検索フィールド、日付範囲ピッカー、クリックして展開できる行
- 決定論的なデータ取得 — アプリは FHIR ツールを直接呼び出すため、データ取得に LLM は関与しません
- 外部依存関係ゼロ — すべてが単一の HTML ファイルにインライン化され、バイナリに埋め込まれます
- オフラインで動作 — CDN、外部スクリプト、FHIR API 呼び出し以外のネットワークリクエストはありません
組み込みアプリ
| アプリ | ツール | 説明 |
|---|---|---|
| FHIR エクスプローラー | fhir_explorer | インタラクティブな FHIR リソースブラウザー。JSON の詳細ビューを使って、任意の FHIR R4 リソースタイプを検索、読み取り、作成、更新できます。 |
| 患者カルテレビュー | patient_chart_review | 患者の人口統計情報、活動中の疾患、投薬、バイタル、検査結果、およびバイタルの推移チャート(経時的な血圧と体重)を表示する臨床ダッシュボードです。 |
どちらのアプリも、MCP Apps パターンを示すリファレンス実装です。アーキテクチャの詳細と新しいアプリの構築方法については、apps/README.md をご覧ください。
Claude Desktop 内で実行中の患者カルテレビュー
AI エージェントは LangCare MCP FHIR Server を使用して、医療従事者が 4 つの FHIR ツールを通じて患者の健康記録にアクセスし、管理できるよう支援します。サーバーが EMR 認証を処理するため、エージェントは厳格なプライバシーと正確性の基準を維持しながら、臨床ワークフローに集中できます。
エージェントの機能:
- 検索、読み取り、作成、更新 - あらゆる FHIR R4 リソース(Patient、Observation、Medication など)
- 患者のプライバシー - 部分的な識別情報を使用し、更新前に本人確認を行う
- 臨床的正確性 - データを検証し、標準コード(LOINC、SNOMED、RxNorm)を使用する
- 専門的なコミュニケーション - 背景、所見、次のステップを含めて回答を構成する
一般的なワークフロー:
- 患者の検索: 氏名/生年月日で検索 → 本人確認 → 詳細情報をすべて読み取る
- 臨床レビュー: 検査結果、バイタル、薬剤を取得 → 基準範囲とともに提示する
- 記録作成: 構造化データを抽出 → FHIR リソースにマッピング → 確認 → 作成する
- 更新: 既存のリソースを検証 → 変更 → 変更内容を確認 → 更新する
システムのサポート:
- あらゆる FHIR R4 リソースタイプに対応(DocumentReference、Binary、Media を含む 60 種類以上)
- EPIC、Cerner、OpenEMR、GCP Healthcare API への認証とトークン更新を自動処理
- 監査ログを備えた HIPAA 準拠の PHI 処理
- 臨床データアクセスに対応する包括的な OAuth2 スコープ
📖 完全ガイド: エージェントプロンプトガイド - システムプロンプト、ツールの例、ワークフロー、エラー処理
臨床スキルライブラリ(任意)
MCP サーバーの 4 つの FHIR ツール(fhir_search、fhir_read、fhir_create、fhir_update)を使って、複雑な医療タスクを実行する方法を AI エージェントに教える、40 種類以上のエージェント非依存の臨床ワークフローガイドです。
- 任意 - なくても MCP サーバーは動作します
- ポータブル - Claude、ChatGPT、Gemini、その他あらゆる AI エージェントで使用できます
- エビデンスに基づく - USPSTF、ADA、ACC/AHA、CDC、ACOG、KDIGO などの学会ガイドラインに基づいています
- コピーしてすぐ使用可能 - スキルの
SKILL.mdをエージェントのシステムプロンプトまたはカスタム指示に追加します
スキルのカテゴリ(40 スキル)
| カテゴリ | スキル数 | 例 |
|---|---|---|
| 患者データと要約 | 5 | 患者基本情報、臨床要約(CCD 形式)、問題リストの監査、アレルギーの確認、保険適用範囲 |
| 薬剤管理 | 5 | 薬剤照合、薬物相互作用(CYP450)、服薬遵守(MPR/PDC)、Beers Criteria、オピオイドリスク(ORT/MME) |
| 検査・診断 | 5 | 検査結果の解釈、重大値(CAP/CLIA)、術前検査、糖尿病パネル(ADA)、腎機能(KDIGO) |
| 臨床意思決定支援 | 5 | 敗血症(qSOFA/SOFA)、心血管リスク(ASCVD/HEART)、VTE(Wells/Caprini)、転倒リスク(Morse)、肺炎(CURB-65) |
| ケアの調整 | 5 | 退院計画(LACE)、紹介、ケアギャップ(USPSTF)、ケア移行(I-PASS)、フォローアップタスク |
| 文書作成 | 5 | SOAP ノート、H&P、経過記録、退院サマリー、処置記録 |
| 集団ヘルス | 5 | 患者パネルの概要、質指標(HEDIS)、慢性疾患レジストリ、予防接種状況(CDC)、予防医療の遵守状況 |
| 専門分野 | 5 | 出生前ケア(ACOG)、小児の成長(WHO/CDC)、メンタルヘルス(PHQ-9/GAD-7)、腫瘍学(TNM/RECIST)、慢性疼痛 |
全カタログとリンク: skills/README.md
スキルの使用方法
- skills/core/ ディレクトリを確認し、スキルを選びます
- スキルの
SKILL.mdの内容を、AI エージェントのシステムプロンプトまたはカスタム指示にコピーします - 各スキルの
references/サブディレクトリにある参照ファイルには、詳細な臨床知識(スコアリング基準、コード表、閾値)が含まれており、臨床的正確性をさらに高めるために任意で追加できます
# Example: Add medication-reconciliation skill to your agent
skills/core/medication-management/medication-reconciliation/
├── SKILL.md # Copy this into agent instructions
└── references/
├── reconciliation-process.md # Joint Commission standards
└── high-risk-medications.md # ISMP high-alert drug list
連携ガイド: Claude | ChatGPT | Gemini
コミュニティからの貢献を歓迎します - ガイドラインについては CONTRIBUTING.md をご覧ください。
開発とテスト
ソースからビルドする
make build
ローカルで実行する(stdio モード)
make run
# or
./bin/langcare-mcp-fhir -config configs/config.local.yaml
HTTP モードで実行する(Streamable HTTP)
make run-http
# or
./bin/langcare-mcp-fhir -http -port 8080 -config configs/config.yaml
Streamable HTTP トランスポートを使用して /mcp でサーバーを起動し、/health でヘルスチェックを行います。
テストを実行する
make test
コードをリントする
make lint
Fly.io にデプロイする(リモート Streamable HTTP)
Streamable HTTP トランスポートを使用するリモート MCP サーバーとしてデプロイすると、どこからでも、あらゆる MCP 対応 AI エージェントがアクセスできます。
# Install Fly CLI
brew install flyctl
fly auth login
# Create app
fly apps create --name langcare-mcp-dev
# Set CONFIG_FILE in fly/fly.dev.toml [env] block for your provider (EPIC or GCP)
# Then set secrets (EPIC example):
fly secrets set \
EPIC_BASE_URL="https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4" \
EPIC_CLIENT_ID="your-client-id" \
EPIC_TOKEN_URL="https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token" \
EPIC_PRIVATE_KEY_B64="$(base64 < keys/epic/private-key.pem)" \
MCP_AUTH_TOKENS="your-token" \
--app langcare-mcp-dev
# Deploy
fly deploy -c fly/fly.dev.toml --app langcare-mcp-dev
# Verify
curl https://langcare-mcp-dev.fly.dev/health
任意の MCP クライアントを次の URL に接続します。
URL: https://langcare-mcp-dev.fly.dev/mcp
Auth: Authorization: Bearer your-token
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"langcare-fhir": {
"url": "https://langcare-mcp-dev.fly.dev/mcp",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
EPIC および GCP Healthcare API プロバイダーをサポートしています。プロバイダーの設定、シークレット、デプロイ手順の詳細については、fly/README.md を参照してください。
EPIC を使ったローカルテスト
EPIC の認証情報の設定とローカルテストの手順については、以下を参照してください。
このガイドでは、以下について説明します。
- RSA キーと JWKS の生成
- EPIC 認証情報の設定
- サーバーのローカル実行
- Claude Desktop でのテスト
- よくある問題のトラブルシューティング
認証情報の簡易テスト:
# Test your EPIC credentials before running the server
go run test/test_epic_token.go "your-client-id" "/path/to/private-key.pem"
プロジェクト構成
langcare-mcp-fhir/
├── cmd/
│ └── server/
│ └── main.go # Entry point
├── internal/
│ ├── apps/ # MCP Apps (embedded UIs)
│ │ ├── embed.go # go:embed directive for HTML bundles
│ │ ├── registry.go # App metadata, tool names, resource URIs
│ │ └── dist/ # Built HTML bundles (copied by build)
│ │ ├── fhir-explorer.html # FHIR Explorer single-file bundle
│ │ └── patient-chart-review.html # Patient Chart Review single-file bundle
│ ├── audit/
│ │ └── logger.go # HIPAA audit logging
│ ├── config/
│ │ └── config.go # YAML configuration loading
│ ├── fhir/
│ │ ├── client.go # FHIR HTTP client interface
│ │ ├── types.go # FHIR client types
│ │ └── providers/ # Backend implementations
│ │ ├── base.go # Base HTTP provider
│ │ ├── epic.go # EPIC OAuth2 provider
│ │ ├── cerner.go # Cerner OAuth2 provider
│ │ ├── openemr.go # OpenEMR SMART Backend Services provider
│ │ └── gcp.go # GCP Healthcare API provider
│ ├── mcp/
│ │ └── server.go # MCP server + app registration
│ ├── middleware/
│ │ ├── auth.go # MCP authentication
│ │ └── rate_limit.go # Rate limiting
│ ├── tools/ # MCP tool implementations
│ │ ├── registry.go # Tool registry
│ │ ├── fhir_read.go # Read FHIR resource
│ │ ├── fhir_search.go # Search FHIR resources
│ │ ├── fhir_create.go # Create FHIR resource
│ │ └── fhir_update.go # Update FHIR resource
│ └── transport/
│ ├── stdio.go # stdio transport (Claude Desktop)
│ └── http.go # Streamable HTTP transport (production)
├── apps/ # MCP App source code (React + TypeScript)
│ ├── README.md # App development guide
│ ├── package.json # Shared dependencies (React 19, MCP Apps SDK)
│ ├── vite.config.ts # Vite build config (single-file output)
│ ├── tsconfig.json # TypeScript config
│ ├── fhir-explorer/ # FHIR Explorer app
│ │ ├── index.html
│ │ └── src/
│ │ ├── app.tsx
│ │ └── global.css
│ └── patient-chart-review/ # Patient Chart Review app
│ ├── index.html
│ └── src/
│ ├── app.tsx
│ └── global.css
├── scripts/
│ ├── build-apps.sh # Build all apps → internal/apps/dist/
│ ├── create_jwks.sh # Generate JWKS from public key (EPIC)
│ └── create_jwks_openemr.sh # Generate JWKS from public key (OpenEMR)
├── pkg/
│ └── types/
│ └── errors.go # Custom error types
├── configs/
│ ├── config.epic.example.yaml # Example configuration for EPIC
│ ├── config.cerner.example.yaml # Example configuration for Cerner
│ ├── config.openemr.example.yaml # Example configuration for OpenEMR
│ ├── config.gcp.example.yaml # Example configuration for GCP
│ └── config.base.example.yaml # Example configuration for any FHIR R4 server
├── docs/
│ ├── AGENT_PROMPT.md # AI agent system prompt
│ ├── EPIC-APP-SECURITY.md # EPIC authentication setup
│ ├── OPENEMR-APP-SECURITY.md # OpenEMR SMART Backend Services setup
│ ├── EPIC-SCOPES.md # OAuth2 scopes reference
│ ├── LOCAL-TESTING.md # Local development guide
│ └── SECURITY.md # Production security guide
├── test/
│ ├── README.md # Test documentation
│ └── test_epic_token.go # EPIC OAuth2 token tester
├── fly/
│ ├── Dockerfile # Multi-stage Go build for Fly.io
│ ├── docker-entrypoint.sh # Key materialization + server startup
│ ├── fly.dev.toml # Fly.io dev deployment config
│ ├── config.fly.epic.yaml # Fly.io EPIC provider config
│ ├── config.fly.gcp.yaml # Fly.io GCP provider config
│ └── README.md # Fly.io deployment guide
├── bin/ # Build output (gitignored)
│ └── langcare-mcp-fhir # Compiled binary
├── go.mod # Go module definition
├── go.sum # Go module checksums
├── Makefile # Build commands
└── README.md # This file
注: 以下は gitignore 対象であり、コミットされません。
keys/- 秘密鍵と認証情報config.local.*.yaml- ローカル設定ファイルbin/- コンパイル済みバイナリ.env- 環境変数apps/node_modules/、apps/dist/、apps/dist-tmp/- アプリのビルド成果物
ヘルスケア音声エージェント
患者が自身の健康記録について質問し、EMR から直接取得した情報に基づく音声回答を受け取れる、リアルタイム音声 AI です。
技術スタック: 音声パイプラインには PipeCat(オープンソース、Daily.co)を使用し、STT、LLM オーケストレーション、3 秒未満のレイテンシーを実現する TTS を提供します。臨床的な推論とツール呼び出しには Claude を使用します。LangCare MCP FHIR Server(オープンソース、Go)は、あらゆる FHIR R4 EMR(Epic、Cerner、GCP Healthcare API)へのステートレスプロキシとして機能します。
MCP が連携を担います。 PipeCat のネイティブ MCP クライアントは、起動時に FHIR ツールを自動検出します。患者が「服用中の薬は何ですか?」と尋ねると、Claude が fhir_search を呼び出し、PipeCat が MCP サーバーに転送し、データが返され、Claude が自然な音声で回答します。ツールスキーマを手動で用意する必要はありません。
3 層の HIPAA 認証: セッション開始前に発信者の身元を確認し、MCP にはベアラートークンを使用し、EMR には OAuth2/SMART on FHIR を使用します。PHI は一切保存されません。
すべて置き換え可能です。 Claude を Gemini に、DeepGram を Google STT に、Daily を WebSocket に置き換えられます。MCP FHIR レイヤーと臨床用プロンプトはそのまま使用できます。
LangCare CLI
4 つの FHIR MCP ツール(fhir_search、fhir_read、fhir_create、fhir_update)を HTTP 経由の CLI サブコマンドとして提供するコマンドラインインターフェイスです。MCP にネイティブ対応していない AI エージェントのフレームワーク(LangChain、smolagents、CrewAI、AutoGen、およびサブプロセスを呼び出せる任意のフレームワーク)向けに構築されています。CLI が内部で MCP セッションのハンドシェイクを処理するため、エージェントはプロトコルの知識がなくても、標準出力から整形済みの JSON を取得できます。
# Install
pip install "langcare-cli @ git+https://github.com/langcare/langcare-mcp-fhir.git#subdirectory=cli"
# Use
langcare fhir search Patient --query "name=John"
langcare fhir read Patient 123
langcare fhir create Observation --data @obs.json
langcare fhir update Patient 123 --data @patient.json
Skills Library にある 40 以上の臨床スキルは、そのまま動作します。スキルが参照するのは抽象的なツール名であり、トランスポートではありません。CLI をエージェントフレームワークのサブプロセスツールとして登録すれば、スキルを変更せずに実行できます。
ドキュメント
はじめに
- 📖 ローカル開発とテストのガイド - ローカル環境のセットアップとテストに関する完全ガイド
- 🚀 インストールと設定 - 上記のクイックセットアップガイド
エージェントの統合
- 🤖 エージェント向けプロンプトガイド - LangCare MCP FHIR を使用する AI エージェント向けの完全ガイド(ツールの使用例、ワークフロー、ベストプラクティス)
セキュリティと認証
- 🛡️ セキュリティドキュメント - セキュリティアーキテクチャと HIPAA 準拠の完全ガイド
- 🔐 EPIC セットアップガイド - JWT 認証、キーの生成、JWKS の登録
- 🔐 OpenEMR セットアップガイド - SMART on FHIR Backend Services(
private_key_jwt/RS384)のセットアップ、JWKS の生成、OpenEMR API クライアントの登録 - 📋 EPIC スコープのリファレンス - FHIR リソース向け OAuth2 スコープの完全ガイド
- 🔑 認証方式 - 対応している認証方式
デプロイ
- Fly.io デプロイガイド - リモート Streamable HTTP のデプロイ、プロバイダー設定、シークレット、Docker
開発とテスト
- 🧪 テスト方法 - Claude Desktop、MCP Inspector、手動テスト、自動化
- 📦 プロジェクト構成 - ディレクトリ構成とアーキテクチャ
- 🔧 ビルドコマンド - 開発ワークフロー
依存関係
github.com/modelcontextprotocol/go-sdk- 公式 MCP SDKgopkg.in/yaml.v3- 設定の解析golang.org/x/oauth2- OAuth2 クライアントライブラリgithub.com/golang-jwt/jwt/v5- JWT の署名と検証- Go 1.25+
HIPAA 準拠
- PHI のスクラビングはデフォルトで有効です
- 患者識別子はログに記録されません
- HTTP トランスポートで TLS をサポートします
- 適切なエラーのサニタイズを行います
- 監査ログに対応しています
- ステートレスなプロキシ設計(永続ストレージなし)
テスト
公開テストサーバー
デフォルト設定では HAPI FHIR 公開テストサーバー(https://hapi.fhir.org/baseR4)を使用するため、セットアップなしですぐにテストできます。
セットアップのテスト
- 📖 ローカル開発・テストガイド - セットアップ、Claude Desktop と MCP Inspector を使ったテスト、自動化の完全ガイド
- 🔐 EPIC セキュリティのセットアップ - EPIC 認証の詳細ガイド
- 🛡️ セキュリティドキュメント - 本番環境へのデプロイとセキュリティ
Claude Managed Agents
Anthropic Managed Agents API 上に構築された、本番環境対応の臨床 AI エージェント 9 種です。各エージェントは LangCare MCP FHIR Server に接続し、40+ Clinical Skills Library から選定された、各分野に特化した臨床スキルを使用します。セッションは永続的に保存され、platform.claude.com/workspaces/default/sessions で確認でき、対話形式で実行することも、単一のプロンプトで動かすこともできます。
| エージェント | 分野 |
|---|---|
| Medication Management | 薬剤照合、薬物相互作用、Beers Criteria、オピオイドリスク、服薬遵守 |
| Care Coordination | 退院計画、紹介、ケアギャップ、ケア移行、フォローアップタスク |
| Clinical Decision Support | 敗血症 qSOFA、心血管リスク、VTE、転倒リスク、CURB-65 |
| Clinical Triage | 臨床サマリー、重症度、バイタルサインの確認、敗血症の兆候 |
| Documentation | SOAP ノート、H&P、経過記録、退院サマリー、処置記録 |
| Lab & Diagnostics | クリティカル値、糖尿病パネル、検査結果の解釈、術前検査、腎機能 |
| Patient Data | 患者属性、アレルギーの確認、臨床サマリー、保険適用範囲、問題リスト |
| Population Health | 慢性疾患レジストリ、予防接種状況、予防医療、品質指標 |
| Specialty Care | 慢性疼痛、メンタルヘルス、腫瘍学、小児の成長、出生前ケア |
クイックスタート
# 1. Set environment variables
export ANTHROPIC_API_KEY=sk-ant-...
export LANGCARE_MCP_URL=https://langcare-mcp-dev.fly.dev/mcp
export LANGCARE_MCP_TOKEN=your-bearer-token
# 2. Upload skills, create environment + vault, deploy all 9 agents
cd cma/scripts
./setup.sh dev
# 3. Run a session
./run-session.sh <agent-id> <env-id> <vault-id> "Show active medications for patient ID d886a934-5568-42b3-9324-0f0b05fc018c"
setup.sh は冪等で、安全に再実行できます。最後に、セッションに必要な Environment ID と Vault ID が表示されます。
詳しいガイド: cma/README.md — 環境変数、すべてのスクリプトのリファレンス、トラブルシューティング。
コントリビューション
医療従事者、開発者、医療情報技術の専門家からのコントリビューションを歓迎します!
主な貢献方法は 3 つあります。
1. コア MCP サーバー(Go 開発)
- バグ修正とパフォーマンス改善
- 新しい FHIR プロバイダーの実装(AllScripts、Athenahealth など)
- セキュリティ強化とオブザーバビリティ機能
- テストと CI/CD の改善
2. 臨床スキル(医療ワークフロー)
- FHIR を使用した、エビデンスに基づく臨床ワークフロー
- 専門分野別のプロトコル(心臓病学、腫瘍学など)
- 集団医療と品質指標のワークフロー
- 臨床意思決定支援アルゴリズム
スキルはエージェントに依存しないワークフローガイドで、Claude、ChatGPT、Gemini で利用できます。コーディングは不要です。臨床の専門知識と FHIR の知識があれば参加できます!
3. MCP Apps(インタラクティブ UI)
- 新しい臨床または事務向け UI アプリ
- 既存のアプリ(FHIR Explorer、Patient Chart Review)の機能強化
- 医療 UI 向けの再利用可能なコンポーネントとパターン
開発ガイドは apps/README.md をご覧ください。
4. エージェント連携(プラットフォーム設定)
- 新しい AI プラットフォーム向けのセットアップガイド
- デプロイ例(Docker、Kubernetes、クラウド)
- 監視とオブザーバビリティの設定
- CI/CD パイプライン
始めるには: 詳細なガイドライン、コード規約、提出手順については、CONTRIBUTING.md をご覧ください。
貢献者への謝辞: 貢献者は README、リリースノート、スキルや連携機能の作成者クレジットに記載されます。特に優れた貢献者はメンテナーとして招待される場合があります。
ご質問がありますか? GitHub Discussion または issue をご利用ください!
コミュニティ
- GitHub Discussions - 質問したり、アイデアを共有したりできます:https://github.com/langcare/langcare-mcp-fhir/discussions
- GitHub Issues - バグの報告や機能のリクエストができます:https://github.com/langcare/langcare-mcp-fhir/issues
- 貢献ガイド - 貢献方法:https://github.com/langcare/langcare-mcp-fhir/blob/main/CONTRIBUTING.md
- スキル - 臨床ワークフロー:https://github.com/langcare/langcare-mcp-fhir/blob/main/skills/README.md
ライセンス
LICENSE ファイルをご覧ください。
LangCare チームと貢献者によって ❤️ を込めて開発されました。
より優れた AI インフラストラクチャを通じて、医療の向上を目指しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。