fhir-patient-consent-mcp-server
fhir-patient-consent-mcp-server
Сервер MCP, который позволяет модели задавать вопросы о пациенте, его инсулиновой помпе и том, кому предоставлено согласие на просмотр этих данных, — всё это получается в реальном времени из хранилища FHIR (R4). Никакие данные на сервере не хранятся; каждый ответ — это прямой запрос к FHIR REST в реальном времени.
Он является сопутствующим сервисом к fhir-consent-service (Spring Boot API для записи Patient/Device/Consent в FHIR), но не имеет от него программной зависимости: этот сервер зависит только от формата обмена FHIR, поэтому работает с любой FHIR R4 конечной точкой.
Инструменты
Инструмент | Назначение |
| Найти пациента по номеру MRN и/или фамилии |
| Получить демографические данные одного пациента по FHIR-идентификатору |
| Перечислить устройства пациента (помечает инсулиновые помпы по коду SNOMED CT |
| Перечислить согласия на передачу данных (партнёр, цель, категории данных, период) |
| Проверка прав: есть ли у партнёра 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-клиенту.
Лицензия
This server cannot be installed
Maintenance
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
- AlicenseAqualityDmaintenanceEnables 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.1397MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables 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.
- AlicenseNot gradedqualityCmaintenanceEnables natural-language querying of a mock legacy healthcare database and returns validated FHIR resources (Patient, Observation, Condition).MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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