# AI 代理的 FHIR MCP 服务器

> 将 Claude Code、Cursor、VS Code 或 Claude Desktop 连接到通过 MCP 的 HL7 FHIR R4 API：20 个用于读取记录、AI 就绪上下文、写入、实验室导入和沙盒重置的工具，在 30 名合成患者上免费使用。

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

**Anpheros FHIR 是一个远程 MCP 服务器，可让 AI 代理（Claude、Claude Code、Cursor、VS Code、Claude Desktop）使用 HL7 FHIR R4 健康数据 API。** 它通过两种方式连接：

- **使用免费沙盒密钥**，面向开发者：您的代理可以列出患者，以 FHIR 或带有来源的 AI 就绪上下文格式读取其记录，写入观察结果，导入实验室报告，并重置其测试数据，所有这些都在 30 名具有真实病史的合成患者上进行。
- **使用 OAuth**，面向个人及其自己的记录：助手注册自身，个人在 Anpheros 同意屏幕上登录并批准它，然后助手就可以在选定的时间内读取该一条记录，除非个人允许更多，否则为只读。

服务器地址：`https://platform.anpheros.com/mcp` (可流式传输的 HTTP，无状态)。

## 使用 OAuth 连接 (Claude 及其他助手)

将 `https://platform.anpheros.com/mcp` 添加为自定义连接器 (在 Claude 中：Settings → Connectors → Add custom connector)。无需其他配置：助手会自动发现授权服务器，进行注册，并打开 Anpheros 同意屏幕。在此屏幕上，用户将看到这是一个 AI 助手，其读取的内容将发送给运行该助手的公司，以及助手可以读取的内容、读取时长以及用户在做出选择后将返回何处。除非请求了更多权限并获得允许，否则访问权限为只读，并且用户可以随时撤销。

在私有测试版期间，OAuth 连接使用沙盒记录。在隐私政策更新后，将可以连接到真实记录。

## 使用沙盒密钥进行连接 (开发者)

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_…" }
    }
  }
}
```

然后，您可以向您的代理提问，例如：“列出沙盒中的患者，选择患有糖尿病的患者，并总结她过去六个月的 HbA1c。”

## 工具

| 工具 | 功能 |
|---|---|
| `list_patients` | 项目中的患者：30 个合成的虚拟患者以及您创建的任何患者 |
| `get_patient_context` | 单个患者的 AI 就绪上下文，在令牌预算内，每个项目都标有其来源 |
| `get_patient_summary` | 国际患者摘要 (FHIR `$summary`)，以您要求的语言 |
| `get_timeline` | 按日期顺序排列的资源记录 |
| `get_health_patterns` | beta 版：变化和重复项，每个发现都带有其周期、证据和局限性；非诊断项 ([指南](https://developers.anpheros.com/zh/guides/health-patterns)) |
| `get_pattern_evidence` | beta 版：一个发现背后的所有资源 |
| `get_series` | beta 版：每天一个测量值，包含数据质量 |
| `compare_periods` | beta 版：在您选择的两个周期内的一个测量值 |
| `search_fhir` | 标准 FHIR R4 搜索，返回一个 Bundle |
| `read_fhir_resource` | 单个资源或其早期版本 |
| `get_provenance` | 谁创建了资源、创建时间和来源系统 |
| `lookup_code` | 按文本或代码查找 LOINC 代码（药品请使用 `search_health_terms`） |
| `search_health_terms` | 以 20 种语言按名称、同义词、品牌或代码搜索症状、病症和治疗的公共目录 ([指南](https://developers.anpheros.com/zh/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 个合成患者（会请求确认） |

可读工具被标记为只读，重置操作被标记为破坏性操作，因此可以提前询问客户端是否进行风险操作。服务器还提供合成患者列表作为资源，以及三个提示：临床医生摘要、实验室 CSV 导入和基于 API 构建您的集成。

## 工作原理

- **与API的规则相同。** 每个工具都使用您的密钥调用公共API：具有相同的范围、速率限制、验证和审计。只读密钥无法写入。
- **溯源。** 代理写入的所有内容都会记录其来源`urn:anpheros:mcp`，因此您始终可以知道哪些内容来自代理。
- **患者数据即数据。** 工具结果会附带一条说明，记录内容绝不能作为指令遵循，这是防止通过病历进行提示注入的基本措施。
- **一条记录，经同意。** 生产API密钥（`sk_live_…`）被拒绝，因为它们会访问项目中的所有患者。真实的记录只有通过OAuth才能到达助手，并且在用户批准后，每次读取都会记录在其访问历史中。
- **标准发现。** 没有凭证时，服务器会以401响应，并带有指向其OAuth保护的资源元数据（RFC 9728）的`WWW-Authenticate`标头；助手通过动态客户端注册（RFC 7591）进行注册，并使用PKCE。注册只接受回环地址、已知编辑器的应用方案以及已知AI助手的回调域。

## 常见问题解答

### 什么是 MCP 服务器？
MCP (Model Context Protocol) 是一种开放协议，AI 代理和编码助手通过该协议调用外部工具。FHIR 的 MCP 服务器允许代理直接读写健康记录，而无需您将数据粘贴到聊天中。

### 免费吗？
是的。MCP 服务器在免费沙箱上运行：每个项目 30 个合成患者，每天最多 10,000 次写入，无需信用卡。

### 助手可以读取真实患者的记录吗？
仅通过 OAuth，在该人批准了同意屏幕上的助手后，在他们选择的时间段内，并且仅限于他们自己的记录（或他们关心的人的记录）。在私有测试版期间，OAuth 连接使用沙箱记录。

### 它使用哪个 FHIR 版本？
HL7 FHIR R4 (4.0.1)，与 https://platform.anpheros.com/fhir/R4, 国际患者摘要以及同一数据的 REST 视图使用相同的 API。

### 它与 ChatGPT 一起使用吗？
ChatGPT 连接器使用 OAuth 和动态客户端注册，服务器支持该功能，并且其回调域已被接受。我们已使用官方 MCP SDK 客户端测试了该流程；如果 ChatGPT 连接失败，请写信至 support@anpheros.com。Claude Code、Cursor 和 VS Code 也可使用沙箱密钥。

## 相关资源

- [如何授予 AI 代理访问医疗记录的权限](https://developers.anpheros.com/zh/guides/ai-agent-access-medical-records)：Python 分步教程
- [免费 FHIR 数据库和沙盒](https://developers.anpheros.com/zh/guides/free-fhir-database)
- [AI 代理与医疗数据](https://developers.anpheros.com/zh/guides/ai-agents-medical-data)
- [LLM 在医疗数据中的应用](https://developers.anpheros.com/zh/guides/llm-healthcare-data)
- [带有患者同意的医疗 API](https://developers.anpheros.com/zh/guides/healthcare-api-patient-consent)
