# FHIR MCP сервер для ИИ-агентов

> Подключите Claude Code, Cursor, VS Code или Claude Desktop к HL7 FHIR R4 API через MCP: 20 инструментов для чтения записей, контекст, готовый для ИИ, запись, импорт лабораторных данных и сброс песочницы, на 30 синтетических пациентах, бесплатно.

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

**Anpheros FHIR — это удаленный MCP-сервер, который позволяет ИИ-агенту (Claude, Claude Code, Cursor, VS Code, Claude Desktop) работать с API HL7 FHIR R4 для медицинских данных.** Он подключается двумя способами:

- **С бесплатным ключом песочницы** для разработчиков: ваш агент может получать список пациентов, читать их записи в формате FHIR или в виде готового для ИИ контекста с указанием источника, записывать наблюдения, импортировать лабораторные отчеты и сбрасывать тестовые данные, все это на 30 синтетических пациентах с реалистичной историей болезни.
- **С помощью OAuth** для человека и его собственной записи: помощник регистрируется, человек входит в систему и одобряет его на экране согласия Anpheros, после чего помощник может читать эту одну запись в течение выбранного периода, только для чтения, если человек не разрешил большего.

Адрес сервера: `https://platform.anpheros.com/mcp` (потоковая передача HTTP, без сохранения состояния).

## Подключение через OAuth (Claude и другие ассистенты)

Добавьте `https://platform.anpheros.com/mcp` как пользовательский коннектор (в Claude: Settings → Connectors → Add custom connector). Никаких других настроек не требуется: ассистент обнаружит сервер авторизации, зарегистрируется и откроет экран согласия Anpheros. Там пользователь увидит, что это ИИ-ассистент, какие данные отправляются компании, управляющей ассистентом, какие данные он может читать, как долго и куда вернется после выбора. Доступ предоставляется только для чтения, если не было запрошено и разрешено большее, и пользователь может отозвать его в любое время.

Во время закрытого бета-тестирования OAuth-подключения используют записи из песочницы (sandbox). Подключения к реальным записям откроются после обновления политики конфиденциальности.

## Подключение с помощью 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_…" }
    }
  }
}
```

Затем попросите вашего агента, например: *"List the sandbox patients, pick the one with diabetes and summarise her last six months of HbA1c."*

## Инструменты

| Инструмент | Назначение |
|---|---|
| `list_patients` | пациенты проекта: 30 синтетических персон и любые созданные вами |
| `get_patient_context` | контекст для одного пациента, готовый для ИИ, в пределах лимита токенов, каждый элемент помечен источником |
| `get_patient_summary` | Международная сводка пациента (FHIR `$summary`) на запрашиваемом вами языке |
| `get_timeline` | записи в хронологическом порядке по типам ресурсов |
| `get_health_patterns` | бета: что изменилось и что повторяется, каждое наблюдение с его периодом, доказательствами и ограничениями; не диагнозы ([руководство](https://developers.anpheros.com/ru/guides/health-patterns)) |
| `get_pattern_evidence` | бета: каждый ресурс, связанный с одним наблюдением |
| `get_series` | бета: одно измерение как одно значение в день, с указанием качества данных |
| `compare_periods` | бета: одно измерение в двух выбранных вами периодах |
| `search_fhir` | стандартный поиск FHIR R4, возвращающий Bundle |
| `read_fhir_resource` | один ресурс или его более ранняя версия |
| `get_provenance` | кто создал ресурс, когда и из какой системы |
| `lookup_code` | коды LOINC по тексту или коду (для лекарств используйте `search_health_terms`) |
| `search_health_terms` | публичный каталог симптомов, состояний и методов лечения по названию на 20 языках, синониму, бренду или коду ([руководство](https://developers.anpheros.com/ru/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 отчет о лабораторных исследованиях становится лабораторными наблюдениями |
| `sandbox_status` | записывает использованные сегодня данные, пациентов, хранилище, выполняет сброс |
| `reset_sandbox` | восстанавливает 30 синтетических пациентов (запрашивает подтверждение) |

Инструменты для чтения помечены как доступные только для чтения, а сброс помечен как деструктивный, поэтому клиенты могут запрашивать подтверждение перед выполнением рискованных действий. Сервер также предлагает список синтетических пациентов в виде ресурса и три подсказки: сводка для клинициста, импорт CSV-файла лаборатории и создание вашей интеграции на основе API.

## Как это работает

- **Те же правила, что и для API.** Каждый инструмент вызывает публичный API с вашим ключом: те же области действия, ограничения скорости, валидация и аудит. Ключ только для чтения не может записывать.
- **Происхождение.** Все, что записывает агент, фиксируется с указанием источника `urn:anpheros:mcp`, поэтому вы всегда можете определить, что было создано агентом.
- **Данные пациента — это данные.** Результаты работы инструментов содержат примечание о том, что содержимое записей никогда не должно использоваться в качестве инструкций, что является базовой защитой от внедрения подсказок через медицинские записи.
- **Одна запись, с согласия.** Ключи API для производственной среды (`sk_live_…`) отклоняются, поскольку они получают доступ ко всем пациентам проекта. Реальная запись попадает к ассистенту только через OAuth, после одобрения этого человека, и каждое чтение регистрируется в его истории доступа.
- **Стандартное обнаружение.** Без учетных данных сервер отвечает кодом 401 с заголовком `WWW-Authenticate`, указывающим на метаданные его ресурса, защищенного OAuth (RFC 9728); ассистенты регистрируются через динамическую регистрацию клиентов (RFC 7591) с использованием PKCE. Регистрация принимает только loopback-адреса, схемы приложений известных редакторов и домены обратных вызовов известных AI-ассистентов.

## Часто задаваемые вопросы

### Что такое MCP сервер?
MCP (Model Context Protocol) — это открытый протокол, с помощью которого ИИ-агенты и помощники по написанию кода вызывают внешние инструменты. MCP сервер для FHIR позволяет агенту напрямую читать и записывать медицинские записи, вместо того чтобы вставлять данные в чат.

### Это бесплатно?
Да. MCP сервер работает на бесплатном песочнице: 30 синтетических пациентов на проект, до 10 000 записей в день, без карты.

### Может ли помощник прочитать запись реального пациента?
Только через OAuth, после того как человек одобрит помощника на экране согласия, на выбранный им период, и только его собственную запись (или запись того, кого он опекает). Во время закрытого бета-тестирования OAuth-соединения используют записи песочницы.

### Какую версию FHIR он использует?
HL7 FHIR R4 (4.0.1), тот же API, что и https://platform.anpheros.com/fhir/R4, с International Patient Summary, и REST-представление тех же данных.

### Работает ли это с ChatGPT?
Коннекторы ChatGPT используют OAuth с динамической регистрацией клиента, которую сервер поддерживает, и его домен обратного вызова принимается. Мы протестировали поток с официальным клиентом MCP SDK; если соединение ChatGPT не удается, напишите на support@anpheros.com. Claude Code, Cursor и VS Code также работают с ключом песочницы.

## Связанные материалы

- [Как предоставить ИИ-агенту доступ к медицинским записям](https://developers.anpheros.com/ru/guides/ai-agent-access-medical-records): пошаговое руководство на Python
- [Бесплатная FHIR база данных и песочница](https://developers.anpheros.com/ru/guides/free-fhir-database)
- [ИИ-агенты и медицинские данные](https://developers.anpheros.com/ru/guides/ai-agents-medical-data)
- [LLM-приложения и медицинские данные](https://developers.anpheros.com/ru/guides/llm-healthcare-data)
- [API для здравоохранения с согласия пациента](https://developers.anpheros.com/ru/guides/healthcare-api-patient-consent)
