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 StructureDefinition y OperationDefinition
  • Obtención en vivo de CapabilityStatement con 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_read
  • fhir_search
  • fhir_capability_statement
  • fhir_structure_definition
  • fhir_operation_definition
  • fhir_invoke_operation

Recursos MCP

  • fhirmcp://server/guide
  • fhirmcp://server/overview
  • fhirmcp://server/capability-statement
  • fhirmcp://schema/structure-definitions
  • fhirmcp://schema/structure-definition/{selector}
  • fhirmcp://schema/operation-definitions
  • fhirmcp://schema/operation-definition/{selector}
  • fhirmcp://server/search-guide

Principios de Diseño

  • Conformidad primero: el servidor utiliza artefactos FHIR integrados junto con el CapabilityStatement objetivo 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

  1. Copia examples/config.yaml y establece target.base_url en tu servidor FHIR R4 o R5.
  2. Exporta la variable de entorno del token de portador indicada en la configuración si tu servidor requiere autenticación.
  3. Sincroniza los artefactos de conformidad incluidos.
  4. 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-core actualiza los artefactos FHIR R4 y R5 incluidos.
  • make build compila el binario del servidor para modo stdio o SSE.
  • make test ejecuta pruebas unitarias y de integración.