Skip to main content
Glama
scollard001

fhir-patient-consent-mcp-server

by scollard001

fhir-patient-consent-mcp-server

Сервер MCP, который позволяет модели задавать вопросы о пациенте, его инсулиновой помпе и том, кому предоставлено согласие на просмотр этих данных, — всё это получается в реальном времени из хранилища FHIR (R4). Никакие данные на сервере не хранятся; каждый ответ — это прямой запрос к FHIR REST в реальном времени.

Он является сопутствующим сервисом к fhir-consent-service (Spring Boot API для записи Patient/Device/Consent в FHIR), но не имеет от него программной зависимости: этот сервер зависит только от формата обмена FHIR, поэтому работает с любой FHIR R4 конечной точкой.

Инструменты

Инструмент

Назначение

find_patient

Найти пациента по номеру MRN и/или фамилии

get_patient

Получить демографические данные одного пациента по FHIR-идентификатору

get_patient_devices

Перечислить устройства пациента (помечает инсулиновые помпы по коду SNOMED CT 469756000)

get_patient_consents

Перечислить согласия на передачу данных (партнёр, цель, категории данных, период)

check_partner_consent

Проверка прав: есть ли у партнёра X активное согласие на доступ к данным пациента Y?

Related MCP server: FHIR MCP Server

Ресурс

fhir-chart://{patientId} — консолидированная JSON-«карта» (демография + устройства + активные согласия) пациента, предназначенная для непосредственного прикрепления к контексту приложением-хостом, а не для сборки моделью через несколько вызовов инструментов. См. docs/architecture.md о том, почему это ресурс, а не шестой инструмент.

Настройка

npm install
npm run build

Подключение к FHIR-серверу

export FHIR_BASE_URL=http://localhost:8081/fhir   # default shown
export FHIR_AUTH_TOKEN=...                         # optional bearer token

Самый простой способ получить данные для запросов: выполните docker compose up -d в каталоге fhir-consent-service (запустится локальный HAPI FHIR JPA-сервер на :8081), создайте пациента, устройство и согласие через его REST API, а затем запрашивайте эти же данные здесь, в этом хранилище.

Запуск напрямую (для тестирования через stdio)

npm run dev

Регистрация в MCP-клиенте

Для Claude Desktop / Claude Code добавьте в свою конфигурацию MCP:

{
  "mcpServers": {
    "fhir-patient-consent": {
      "command": "node",
      "args": ["/absolute/path/to/fhir-patient-consent-mcp-server/dist/index.js"],
      "env": {
        "FHIR_BASE_URL": "http://localhost:8081/fhir"
      }
    }
  }
}

Сначала выполните npm run build, чтобы появился файл dist/index.js.

Примеры вопросов после подключения

  • «Найдите пациента с MRN MRN-778001.»

  • «Какая инсулиновая помпа есть у пациента 123 и какой у неё серийный номер?»

  • «Было ли предоставлено GlucoVue Remote Monitoring согласие на просмотр данных об устройствах пациента 123?»

  • «Покажите полную карту пациента 123.» (использует ресурс fhir-chart://)

Тестирование

npm test

Модульные тесты покрывают работы слой мапперов (src/mappers/*.ts), в том числе логику авторизации по согласия в isConsentActiveForPartner — в частности, обработку отозванных согласий, ещё не начавшихся и истёкших периодов, а также открытых периодов без параметра end, поскольку именно здесь чаще всего возникают трудно заметные ошибки.

В этом репозитории нет интеграционного теста против живого FHIR-сервера (в отличие от fhir-consent-service, в котором используется Testcontainers), потому что у этого сервера нет пути записи, чтобы подготовить тестовые данные: ему пришлось бы зависеть от того репозитория (или дублировать его логику создания ресурсов) только ради тестовых фикстур. Если в репозитории появится скрипт заполнения данных, добавьте такой тест.

Примечание: код написан в песочнице без доступа к npm-реестру, поэтому npm install, npm run build и npm test здесь фактически не выполнялись. Код рассчитан на server.tool / server.resource из @modelcontextprotocol/sdk@^1.12; если в вашей версии SDK эти сигнатуры изменены на registerTool / registerResource, это механическое исправление — сверьтесь с README/CHANGELOG самого SDK.

Структура проекта

src/
├── index.ts              Server entry point, registers all tools/resources
├── fhirClient.ts          Thin fetch-based FHIR REST client
├── tools/                 One file per MCP tool
├── resources/             One file per MCP resource
├── mappers/                FHIR JSON -> summary objects + consent auth logic
└── util/results.ts        Shared tool-result formatting helpers

Замечание о безопасности

Этот сервер не выполняет редактирование PHI и передаёт всё, что возвращает FHIR-конечная точка. При развёртывании на реальных данных о пациентах разместите контроль доступа перед самим FHIR-сервером (этот сервер передаёт FHIR_AUTH_TOKEN как bearer-токен, но он не управляет получением и обновлением токена) и подумайте, какие данные вообще стоит раскрывать MCP-клиенту.

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables querying FHIR healthcare data using natural language, allowing doctors to retrieve patient information, medications, observations, and other healthcare records.
    1
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLM-based agents to interact with FHIR healthcare data through natural language prompts, providing full CRUD operations on FHIR resources, document processing, and semantic search capabilities.
    13
    97
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables seamless integration with FHIR APIs for healthcare applications, allowing users to search, retrieve, create, update, and analyze clinical information through natural language interactions. Supports SMART-on-FHIR authentication and works with various healthcare systems like EPIC and HAPI FHIR servers.

View all related MCP servers

Related MCP Connectors

  • Securely access and manage FHIR healthcare data stored in Medplum.

  • Hosted MCP server exposing US hospital procedure cost data to AI assistants

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scollard001/fhir-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server