fhir-patient-consent-mcp-server
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 |
| Busca al paciente por MRN y/o apellido. |
| Obtiene los datos demográficos de un paciente por su id FHIR. |
| Lista los dispositivos de un paciente (marca las bombas de insulina mediante SNOMED CT |
| Lista los consentimientos de compartición de datos de un paciente (socio, finalidad, categorías de datos, período). |
| 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 buildApuntar a un servidor FHIR
export FHIR_BASE_URL=http://localhost:8081/fhir # default shown
export FHIR_AUTH_TOKEN=... # optional bearer tokenLa 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 devRegistrarlo 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 testLas 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 testaquí equipo. El código está dirigido a@modelcontextprotocol/sdk@^1.12; si en la versión que inst ale, las firmas deserver.tool(...)/server.resource(...)del SDK han cambiado aregisterTool/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 helpersNota 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
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