healsens-fhirmcp
Servidor MCP de código abierto y consciente de la conformidad para FHIR R4 y R5.
Documentación
healsens-fhirmcp
Servidor MCP de código abierto y consciente de la conformidad para FHIR R4 y R5.
healsens-fhirmcp es la implementación MCP de Healsens para sistemas de salud que ya exponen FHIR y quieren hacer que esos datos sean utilizables por agentes de IA de manera segura, predecible y con una conciencia de esquema mucho mejor de lo que un proxy ligero puede proporcionar. Se sitúa frente a una URL base FHIR configurada y expone una superficie MCP enfocada y de solo lectura para lectura de recursos, búsqueda tipada, descubrimiento de conformidad y operaciones seguras de solo lectura.
La idea central es simple: los modelos funcionan mejor cuando el servidor les ayuda a entender la API FHIR objetivo. Este proyecto incorpora artefactos de conformidad FHIR con versiones coincidentes y los combina con el CapabilityStatement en vivo del servidor conectado para que las llamadas a herramientas se mantengan fundamentadas en la forma, semántica y capacidades del endpoint real.
Por Qué Existe Este Proyecto
La mayoría de las integraciones de IA en salud fallan de maneras predecibles: los envoltorios HTTP genéricos exponen demasiada superficie, los modelos adivinan los parámetros de búsqueda y las diferencias de FHIR entre servidores convierten tareas que de otro modo serían simples en una ingeniería de prompts frágil. healsens-fhirmcp está diseñado para resolver ese problema directamente.
Proporciona a los equipos una capa MCP práctica que es:
- Consciente de FHIR en lugar de agnóstico del endpoint
- fundamentada en metadatos de conformidad reales en lugar de suposiciones basadas solo en prompts
- segura por diseño con un conjunto de herramientas de solo lectura y un servidor objetivo fijo
- utilizable en flujos de integración de producción a través de stdio o SSE nativo
Este repositorio es de código abierto para brindar a los implementadores una base concreta y creíble para implementaciones de MCP en salud, no solo un ejemplo de juguete.
Acceso a la Demo
Hay una demo en vivo disponible para equipos que evalúan el proyecto. Para solicitar acceso, envía un correo a contact[at]healsens[dot]com.
Qué Proporciona
- Un único servidor objetivo FHIR configurado
- Superficie de herramientas MCP de solo lectura
- Soporte para FHIR R4 y R5
- Registros centrales integrados
StructureDefinitionyOperationDefinition - Obtención en vivo de
CapabilityStatementcon caché - Lectura tipada y búsqueda tipada
- Invocación conservadora de operaciones de solo lectura
- Recursos de descubrimiento y esquema bajo el esquema URI
fhirmcp:// - Modos de alojamiento nativos stdio y SSE
Herramientas MCP
fhir_readfhir_searchfhir_capability_statementfhir_structure_definitionfhir_operation_definitionfhir_invoke_operation
Recursos MCP
fhirmcp://server/guidefhirmcp://server/overviewfhirmcp://server/capability-statementfhirmcp://schema/structure-definitionsfhirmcp://schema/structure-definition/{selector}fhirmcp://schema/operation-definitionsfhirmcp://schema/operation-definition/{selector}fhirmcp://server/search-guide
Principios de Diseño
- Conformidad primero: el servidor utiliza artefactos FHIR integrados junto con el
CapabilityStatementobjetivo en vivo para dar forma al comportamiento de las herramientas. - Solo lectura por diseño: esta implementación se centra intencionalmente en la recuperación segura, el descubrimiento y las operaciones de solo lectura admitidas.
- Superficie de integración predecible: un objetivo configurado, esquemas explícitos, comportamiento acotado.
- Interoperabilidad en el mundo real: soporta tanto FHIR R4 como R5, incluido el descubrimiento de capacidades específicas del servidor al inicio.
El proyecto deliberadamente no intenta ser un SDK FHIR completo, un proxy genérico o una capa de orquestación con capacidad de escritura.
Inicio Rápido
- Copia examples/config.yaml y establece
target.base_urlen tu servidor FHIR R4 o R5. - Exporta la variable de entorno del token de portador indicada en la configuración si tu servidor requiere autenticación.
- Sincroniza los artefactos de conformidad incluidos.
- Compila y ejecuta el servidor a través de stdio o SSE.
./scripts/sync_fhir_core_defs.sh
go mod tidy
go build -o bin/healsens-fhirmcp ./cmd/healsens-fhirmcp
FHIRMCP_CONFIG=./examples/config.yaml ./bin/healsens-fhirmcp
Con server.transport: stdio, el binario se comporta como un servidor MCP de subproceso tradicional sobre stdin y stdout. Con server.transport: sse, expone un endpoint MCP SSE nativo en http://127.0.0.1:8081/sse de forma predeterminada.
Modo SSE
Configura el bloque de transporte en examples/config.yaml:
server:
transport: sse
listen_address: 127.0.0.1:8081
sse_path: /sse
cors:
enabled: true
allowed_origins:
- http://localhost:8788
Luego inicia el servidor:
go build -o bin/healsens-fhirmcp ./cmd/healsens-fhirmcp
FHIRMCP_CONFIG=./examples/config.yaml ./bin/healsens-fhirmcp
Tu endpoint MCP SSE será:
http://127.0.0.1:8081/sse
Si el cliente se ejecuta en un contexto de navegador, server.cors controla el acceso entre orígenes para el endpoint SSE y su endpoint de mensajes POST. allowed_origins debe contener los orígenes exactos del navegador en los que confías.
Desarrollo
make sync-coreactualiza los artefactos FHIR R4 y R5 incluidos.make buildcompila el binario del servidor para modo stdio o SSE.make testejecuta pruebas unitarias y de integración.