Skip to main content
Glama
scollard001

fhir-patient-consent-mcp-server

by scollard001

fhir-patient-consent-mcp-server

Un servidor MCP que permite a un modelo hacer preguntas sobre un paciente, su bomba de insulina y quién ha dado su consentimiento para ver esos datos, todo obtenido en directo desde un almacén de FHIR (R4). Este servidor no conserva ningún dato; cada respuesta es una consulta REST de FHIR en tiempo real.

Es un complemento de fhir-consent-service (una API de Spring Boot para escribir Patient/Device/Consent en FHIR), pero no tiene ninguna dependencia de código con él: este servidor solo depende del formato de transporte de FHIR, por lo que funciona con cualquier endpoint de FHIR R4.

Herramientas

Herramienta

Propósito

find_patient

Busca al paciente por MRN y/o apellido.

get_patient

Obtiene los datos demográficos de un paciente por su id FHIR.

get_patient_devices

Lista los dispositivos de un paciente (marca las bombas de insulina mediante SNOMED CT 469756000).

get_patient_consents

Lista los consentimientos de compartición de datos de un paciente (socio, finalidad, categorías de datos, período).

check_partner_consent

Comprobación de autorización: ¿tiene actualmente el socio X un consentimiento activo para el paciente Y?

Related MCP server: FHIR MCP Server

Recurso

fhir-chart://{patientId}: un «historial» JSON consolidado (datos demográficos + dispositivos + consentimientos activos) de un paciente, pensado para que la aplicación anfitriona lo adjunte directamente al contexto en lugar de que lo monte el modelo mediante varias llamadas a herramientas. Consulta docs/architecture.md para saber por qué se trata de un recurso y no de una sexta herramienta.

Configuración

npm install
npm run build

Apuntar a un servidor FHIR

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

La forma más sencilla de disponer de datos que consultar: ejecuta docker compose up -d de fhir-consent-service (inicia un servidor local de HAPI FHIR JPA en :8081) y crea un paciente, un dispositivo y un consentimiento mediante su API REST; después consulta el mismo almacén desde aquí.

Ejecutarlo directamente (para probar con stdio)

npm run dev

Registrarlo en un cliente MCP

Para Claude Desktop / Claude Code, añade esto a la configuración de 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"
      }
    }
  }
}

Ejecuta primero npm run build para que exista dist/index.js.

Preguntas de ejemplo una vez conectado

  • "Busca al paciente con MRN MRN-778001."

  • "¿Qué bomba de insulina tiene la paciente 123 y cuál es su número de serie?"

  • "¿Se le ha dado a GlucoVue Remote Monitoring consentimiento para ver los datos de los dispositivo del paciente 123?"

  • "Muéstrame el historial completo del paciente 123." (ejercita el recurso fhir-chart://)

Pruebas

npm test

Las pruebas unitarias cubren la capa de mappers (src/mappers/*.ts), incluida la lógica de autorización de consentimientos en isConsentActiveForPartner; en particular, su manejo de los consentimientos revocados, de los períodos no iniciados/caducados y de los períodos abiertos (sin end), ya que son los casos en los que es más fácil fallar de forma sutil.

No hay una prueba de integración contra un servidor FHIR real en este repositorio (a diferencia de fhir-consent-service, que usa Testcontainers), porque este servidor no tiene una ruta de escritura para sembrar los datos: dependería de ese repositorio (o duplicaría su lógica de osos de creación de recursos) únicamente para preparar los fixtures de prueba. Sieste repositorio algún día llegara a tener un script de datos de inicio, añade una.

Nota: se ha escrito en un entorno aislado sin acceso al repositorio de npm. no se han llegado a ejecutar npm install / npm run build / npm test aquí equipo. El código está dirigido a @modelcontextprotocol/sdk@^1.12; si en la versión que inst ale, las firmas de server.tool(...) / server.resource(...) del SDK han cambiado a registerTool / registeresubsante, la corrección es mecánica: consulta el README/CHANGELOG del propio SDK.

Estructura del proyecto

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

Nota de seguridad

Este servidor no realiza ninguna redacción de PHI y reenvía lo que devuelve el servidor FHIR. Si se despliega con datos reales de pacientes, pon el control de acceso primeroal del servidor FHIR (este servidor reenvía FHIR_AUTH_TOKEN como token de portador, pero no control de la forma/obtención/renovación de token) and pondera qué debería y qué no debería exponerse a un cliente MCP.

Licencia

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