# FHIR MCP сервер для ШІ-агентів

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

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

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

- **За допомогою безкоштовного ключа пісочниці** для розробників: ваш агент перелічує пацієнтів, читає їхні записи у форматі 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). Підключення до реальних записів відкриються після оновлення політики конфіденційності.

## Підключення за допомогою ключа пісочниці (для розробників)

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/uk/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/uk/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 синтетичних пацієнтів (запитує підтвердження) |

Інструменти для читання позначені як read-only, а скидання — як деструктивне, тому клієнти можуть запитувати перед ризикованими діями. Сервер також пропонує список синтетичних пацієнтів як ресурс і три підказки: резюме для клініциста, імпорт CSV для лабораторії та побудова вашої інтеграції на основі API.

## Як це працює

- **Ті ж правила, що й для API.** Кожен інструмент викликає публічний API з вашим ключем: ті ж області доступу (scopes), обмеження швидкості (rate limits), валідація та аудит. Ключ тільки для читання (read-only) не може записувати.
- **Походження (Provenance).** Усе, що записує агент, фіксується з джерелом `urn:anpheros:mcp`, тому ви завжди можете визначити, що походить від агента.
- **Дані пацієнта — це дані.** Результати інструментів містять примітку про те, що вміст запису ніколи не слід використовувати як інструкції, що є базовим захистом від ін'єкції підказок (prompt injection) через медичні записи.
- **Один запис, за згодою.** Ключі для виробничого API (`sk_live_…`) відхиляються, оскільки вони отримують доступ до кожного пацієнта проєкту. Реальний запис потрапляє до асистента лише через OAuth, після того, як людина його схвалить, і кожне читання реєструється в історії доступу.
- **Стандартне виявлення (discovery).** Без облікових даних сервер відповідає 401 з заголовком `WWW-Authenticate`, що вказує на його захищені OAuth метадані ресурсу (RFC 9728); асистенти реєструються через динамічну реєстрацію клієнта (RFC 7591) з PKCE. Реєстрація приймає лише loopback адреси, схеми додатків відомих редакторів та домени зворотного виклику (callback domains) відомих 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, з Міжнародним резюме пацієнта, та REST-представлення тих самих даних.

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

## Пов'язане

- [Як надати ШІ-агенту доступ до медичних записів](https://developers.anpheros.com/uk/guides/ai-agent-access-medical-records): покроковий посібник у Python
- [Безкоштовна база даних FHIR та пісочниця](https://developers.anpheros.com/uk/guides/free-fhir-database)
- [ШІ-агенти та медичні дані](https://developers.anpheros.com/uk/guides/ai-agents-medical-data)
- [Застосування LLM та медичні дані](https://developers.anpheros.com/uk/guides/llm-healthcare-data)
- [API для охорони здоров'я з дозволом пацієнта](https://developers.anpheros.com/uk/guides/healthcare-api-patient-consent)
