# AIエージェント向けFHIR MCPサーバー

> Claude Code, Cursor, VS Code または Claude Desktop を MCP を介して HL7 FHIR R4 API に接続します。レコードの読み取り、AI対応コンテキスト、書き込み、ラボインポート、サンドボックスリセットのための 20 のツールが、30 の合成患者に対して無料で利用可能です。

Source: https://developers.anpheros.com/ja/guides/mcp

**Anpheros FHIR は、AIエージェント（Claude, Claude Code, Cursor, VS Code, Claude Desktop）が HL7 FHIR R4 ヘルスデータAPIを操作できるようにするリモートMCPサーバーです。** 接続方法は2つあります。

- **無料のサンドボックスキー** を使用する場合（開発者向け）：エージェントは患者をリストし、FHIR形式またはプロビナンス付きのAI対応コンテキストとしてレコードを読み取り、観察結果を書き込み、ラボレポートをインポートし、テストデータをリセットできます。これらはすべて、現実的な履歴を持つ30人の合成患者に対して行われます。
- **OAuth** を使用する場合（個人とその自身のレコード向け）：アシスタントが登録され、個人がAnpherosの同意画面でサインインして承認すると、アシスタントはその1つのレコードを、選択された期間、読み取り専用（個人がそれ以上を許可しない限り）で読み取ることができます。

サーバーアドレス：`https://platform.anpheros.com/mcp` (ストリーミングHTTP、ステートレス)。

## OAuthによる接続 (Claude およびその他のアシスタント)

`https://platform.anpheros.com/mcp` をカスタムコネクタとして追加します (Claude の場合: Settings → Connectors → Add custom connector)。他に設定する必要はありません。アシスタントは認証サーバーを検出し、自己登録し、Anpheros の同意画面を開きます。そこでユーザーは、それがAIアシスタントであること、読み取られる内容がアシスタントを運営する会社に送信されること、読み取れる内容、期間、そして選択後にどこに戻るかを確認できます。アクセスは、それ以上の要求がなく許可されない限り読み取り専用であり、ユーザーはいつでも取り消すことができます。

プライベートベータ期間中は、OAuth接続はサンドボックスレコードを使用します。実際のレコードへの接続は、プライバシーポリシーが更新された後に開かれます。

## Sandboxキーで接続する（開発者向け）

1. [platform.anpheros.com/dashboard](https://platform.anpheros.com/dashboard/) でGoogleでサインインし、「**Get a sandbox key**」を選択します。`sk_test_…`キーと30人の合成患者を持つプロジェクトが提供されます。
2. キーを環境変数（例：`ANPHEROS_KEY`）に設定し、ツールにサーバーを追加します。

**Claude Code**

```bash
claude mcp add --transport http anpheros-fhir https://platform.anpheros.com/mcp --header "Authorization: Bearer $ANPHEROS_KEY"
```

**Cursor**（プロジェクト内の`~/.cursor/mcp.json`または`.cursor/mcp.json`）

```json
{
  "mcpServers": {
    "anpheros-fhir": {
      "url": "https://platform.anpheros.com/mcp",
      "headers": { "Authorization": "Bearer ${env:ANPHEROS_KEY}" }
    }
  }
}
```

**VS Code**（`.vscode/mcp.json`）

```json
{
  "servers": {
    "anpheros-fhir": {
      "type": "http",
      "url": "https://platform.anpheros.com/mcp",
      "headers": { "Authorization": "Bearer ${env:ANPHEROS_KEY}" }
    }
  }
}
```

**Claude Desktop**（`claude_desktop_config.json`、`mcp-remote`ブリッジ経由）

```json
{
  "mcpServers": {
    "anpheros-fhir": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://platform.anpheros.com/mcp", "--header", "Authorization: Bearer ${ANPHEROS_KEY}"],
      "env": { "ANPHEROS_KEY": "sk_test_…" }
    }
  }
}
```

その後、エージェントに次のような質問をします：「サンドボックスの患者をリストアップし、糖尿病の患者を選んで、彼女の過去6ヶ月間のHbA1cを要約してください。」

## ツール

| ツール | 機能 |
|---|---|
| `list_patients` | プロジェクトの患者：30体の合成ペルソナと、あなたが作成した患者 |
| `get_patient_context` | 1人の患者のAI対応コンテキスト。トークン予算内で、各項目はソースとともにラベル付けされます |
| `get_patient_summary` | International Patient Summary (FHIR `$summary`)。指定した言語で |
| `get_timeline` | リソースタイプを横断した日付順のレコード |
| `get_health_patterns` | ベータ版：変更点と繰り返し発生する項目。各所見には期間、証拠、制限事項が含まれます。診断ではありません ([guide](https://developers.anpheros.com/ja/guides/health-patterns)) |
| `get_pattern_evidence` | ベータ版：1つの所見の背後にあるすべてのリソース |
| `get_series` | ベータ版：1日あたり1つの値としての測定値、データ品質付き |
| `compare_periods` | ベータ版：選択した2つの期間における1つの測定値 |
| `search_fhir` | 標準的なFHIR R4検索。Bundleを返します |
| `read_fhir_resource` | 1つのリソース、またはその古いバージョン |
| `get_provenance` | リソースを作成した人物、日時、およびシステム |
| `lookup_code` | LOINCコードをテキストまたはコードで (医薬品の場合は、`search_health_terms` を使用) |
| `search_health_terms` | 症状、病状、治療法の公開カタログ。20言語での名前、同義語、ブランド名、またはコードで ([guide](https://developers.anpheros.com/ja/guides/anpheros-search)) |
| `get_health_term` | コード、名前、MedlinePlus要約、ソースリンク、および引用されたEMA / FDAの適応症を含むカタログエントリ |
| `validate_fhir_resource` | リソースを保存せずにチェックします |
| `create_fhir_resource` | リソースを検証してから書き込みます |
| `create_patient` | プロジェクト内の新しい架空の患者 |
| `import_lab_report` | CSV、HL7 v2 ORU^R01、またはJSONの検査レポートが、検査結果のObservationに変換されます |
| `sandbox_status` | 使用中のもの、患者、ストレージ、リセットを書き込みます |
| `reset_sandbox` | 30体の合成患者を復元します (確認を求めます) |

読み取りツールは読み取り専用としてマークされ、リセットは破壊的としてマークされているため、クライアントは危険な操作の前に確認を求めることができます。サーバーは、合成患者のリストをリソースとして、および3つのプロンプトを提供します。それらは、臨床医の要約、検査CSVのインポート、およびAPI上での統合の構築です。

## 動作について

- **API と同じルール。** すべてのツールは、あなたのキーを使用して公開 API を呼び出します。スコープ、レート制限、検証、監査はすべて同じです。読み取り専用キーでは書き込みはできません。
- **来歴。** エージェントが書き込むすべてのものは、ソース `urn:anpheros:mcp` とともに記録されるため、エージェントから何が来たのかを常に確認できます。
- **患者データはデータです。** ツールの結果には、レコードの内容は指示として決して従ってはならないという注記が付いており、医療記録を介したプロンプトインジェクションに対する基本的な防御策となります。
- **同意を得た 1 つのレコード。** 本番 API キー (`sk_live_…`) は拒否されます。これは、プロジェクトのすべての患者に到達するためです。実際のレコードは、OAuth を介して、その人が承認した後でのみアシスタントに到達し、すべての読み取りはその人のアクセス履歴に記録されます。
- **標準的な検出。** クレデンシャルがない場合、サーバーは 401 で応答し、OAuth で保護されたリソースメタデータ (RFC 9728) を指す `WWW-Authenticate` ヘッダーを返します。アシスタントは、動的クライアント登録 (RFC 7591) を介して PKCE で登録されます。登録では、ループバックアドレス、既知のエディターのアプリスキーム、および既知の AI アシスタントのコールバックドメインのみが受け入れられます。

## よくある質問

### MCPサーバーとは何ですか？
MCP（Model Context Protocol）は、AIエージェントやコーディングアシスタントが外部ツールを呼び出すためのオープンプロトコルです。FHIR用のMCPサーバーを使用すると、データをチャットに貼り付ける代わりに、エージェントが直接健康記録を読み書きできます。

### 無料ですか？
はい。MCPサーバーは無料のサンドボックスで動作します。プロジェクトごとに30人の合成患者、1日あたり最大10,000回の書き込みが可能で、カードは不要です。

### アシスタントは実際の患者の記録を読むことができますか？
OAuth経由でのみ可能です。その人が同意画面でアシスタントを承認し、選択した期間、そして自分の記録（またはケアしている人の記録）のみが対象となります。プライベートベータ期間中は、OAuth接続はサンドボックスの記録を使用します。

### どのFHIRバージョンを使用しますか？
HL7 FHIR R4 (4.0.1)です。これは、International Patient Summaryと同じAPIであり、同じデータのRESTビューです。https://platform.anpheros.com/fhir/R4,

### ChatGPTと連携しますか？
ChatGPTコネクタは、サーバーがサポートする動的クライアント登録を備えたOAuthを使用し、そのコールバックドメインは受け入れられます。公式MCP SDKクライアントでフローをテストしました。ChatGPT接続が失敗した場合は、support@anpheros.comまでご連絡ください。Claude Code、Cursor、VS Codeもサンドボックスキーで動作します。

## 関連情報

- [AIエージェントに医療記録へのアクセス権を付与する方法](https://developers.anpheros.com/ja/guides/ai-agent-access-medical-records): Pythonによるステップバイステップチュートリアル
- [無料のFHIRデータベースとサンドボックス](https://developers.anpheros.com/ja/guides/free-fhir-database)
- [AIエージェントと医療データ](https://developers.anpheros.com/ja/guides/ai-agents-medical-data)
- [LLMアプリケーションとヘルスケアデータ](https://developers.anpheros.com/ja/guides/llm-healthcare-data)
- [患者の同意を得たヘルスケアAPI](https://developers.anpheros.com/ja/guides/healthcare-api-patient-consent)
