Skip to main content
Cada plan incluye una cantidad definida de validaciones por mes. La regla es transparente y consistente entre los tres canales: Inspect UI, API REST y MCP connector.

Resumen rápido

Las acciones con costo 0 corren localmente en el connector MCP o en el cliente. No tocan el motor de validación de Fhiron.

Por canal

Las superficies remotas terminan en POST /api/validate. Un recurso individual consume una unidad. Un Bundle directo consume una unidad por entry (minimo 1, maximo 200 por request). Algunas tools hacen más de un request: No hay canal privilegiado: el mismo número de requests remotos consume la misma cuota. fhiron_validate_bundle y fhiron_compare_profiles orquestan múltiples requests y por eso su costo es mayor. La API REST acepta Idempotency-Key como UUID. Si una conexión falla, reutilizar la misma clave con exactamente el mismo recurso, perfil y versión reutiliza el snapshot de cuota sin descontar, registrar ni emitir nuevamente el webhook. La ruta vuelve a validar en HAPI: no cachea ni reproduce el body HTTP. Una validación nueva debe usar un UUID nuevo; los canales que no conservan la clave cuentan cada request.

Tabla detallada por tool del MCP

El connector @fhiron/mcp-connector expone 10 tools. Cada una tiene un costo claro:

Bundle: el caso que más confunde

Un Bundle en FHIR puede contener cientos o miles de recursos. La tool MCP fhiron_validate_bundle valida cada entry contra su propio perfil. Por eso:
  • Bundle con 12 entries → 12 validaciones.
  • Bundle con 200 entries → 200 validaciones.
  • Bundle con más de 200 entries → se divide en lotes o se valida entry por entry; el BFF no acepta un consumo mayor a 200 unidades en un único request.
Para evitar consumir la cuota sin querer, fhiron_validate_bundle por defecto valida hasta 50 entries por llamada. Si necesitas más, pídele al agente “valida hasta 200 entries”: el modelo le pasa max_server_calls: 200 (límite duro 200 por llamada).

Pipelines de IA con datasets grandes

Si tu agente IA está iterando sobre cientos o miles de recursos para validar un dataset, ten en cuenta:
  • Cada iteración del agente que llame fhiron_validate cuenta 1 validación.
  • Si el agente vuelve a validar el mismo recurso después de aplicar un quick-fix, cuenta 1 más.
  • El linter local (fhiron_lint) es la tool gratuita y determinística para descartar errores estructurales antes de gastar cuota. Pídele al agente “valida con lint primero, después en servidor solo si pasa el lint”.
Esa práctica baja drásticamente el consumo. Las reglas locales cl-* cubren la mayoría de los errores de migración inicial (campos required ausentes, ValueSets mal pegados, fechas no ISO-8601).

Qué pasa al agotar la cuota

Cuando se agota la cuota mensual del plan:
  • La API responde HTTP 429 con un cuerpo JSON describiendo la cuota agotada.
  • Los headers Fhiron-Quota-* indican el detalle mensual:
    • Fhiron-Quota-Limit: cuota del plan (ej: 10000).
    • Fhiron-Quota-Remaining: validaciones restantes (0 cuando se agotó).
    • Fhiron-Quota-Reset: Unix epoch en segundos del próximo reseteo.
  • En el dashboard recibes un aviso por email cuando llegas al 80% del límite.
La cuota se reinicia el primer día del mes siguiente en UTC.

Lo que no cuenta como validación

Para mantener la regla limpia, esto no descuenta del plan:
  • Listar las API keys del tenant.
  • Consultar el dashboard de uso (/dashboard).
  • Recibir webhooks de billing.
  • Que tu IDE descargue un esquema CL Core a través del MCP.
  • El handshake inicial del MCP connector con el servidor.

Headers de respuesta

Cada POST /api/validate exitoso incluye:
Fhiron-Quota-* representa el mes. X-RateLimit-* representa la ventana corta de ráfaga y no debe usarse para calcular la cuota mensual. Si el motor no pudo completar la validación, la respuesta conserva Fhiron-Request-ID pero omite los headers mensuales porque no hubo una decisión de consumo.

Resumen para tu plan

Si tu uso supera el plan Team de forma sostenida, contáctanos para Enterprise. No existe cobro por exceso: al alcanzar la cuota mensual la API responde HTTP 429 hasta el próximo reseteo o hasta subir de plan. Los volúmenes altos se negocian por contrato Enterprise.

Preguntas frecuentes

¿Validar y volver a validar el mismo recurso cuesta dos validaciones? Sí. Cada llamada al motor cuenta. Si solo necesitas confirmar que un cambio menor no rompió nada, usa fhiron_lint primero (gratuito) y reserva la validación de servidor para el final. ¿El MCP cuenta distinto que la API REST? No. Ambos llegan al mismo /api/validate y descuentan idéntico. La diferencia es que el MCP, además, expone tools locales (fhiron_lint, fhiron_apply_fix, etc.) que no descuentan. ¿Hay descuentos por volumen? Los planes mayores ya incluyen un costo por validación más bajo (Team es ~5x más barato por validación que Basic). Para volúmenes Enterprise el descuento se negocia por contrato. ¿Pierdo validaciones no usadas al fin de mes? Sí. La cuota se reinicia el primer día de cada mes calendario, no acumula. ¿Qué pasa si mi agente IA valida 10 000 recursos de un dataset por error? Si tu plan tiene cuota suficiente, se descuentan y listo. Si no, recibes HTTP 429 y el agente puede actuar (avisarte, parar, o esperar). Para batch grande planeado conviene un plan Team o Enterprise, y siempre pasar primero por fhiron_lint para no malgastar cuota en errores estructurales.

Más sobre planes