Qué es
El MCP no solo expone tools y resources, también entrega comportamiento al agente. Desdeinitialize, el servidor devuelve un campo instructions (spec MCP 2024-11-05) con el operating contract que el cliente inyecta como system-level guidance del LLM. Adicionalmente, expone 17 recursos descubribles bajo el URI agent-skill://fhiron-cl/... con el detalle profundo: playbooks por intent, referencia canónica de perfiles, catálogo de códigos de error y ejemplos reproducibles end-to-end.
Todo viene de fábrica al conectar el MCP. No requiere copiar archivos al filesystem ni instalar plugins extra. Funciona idéntico en cualquier cliente MCP-compatible.
Por qué importa
Los LLM tienden a equivocarse de tool. Sin guidance, suelen llamarfhiron_validate (1 crédito) cuando fhiron_lint (gratis) habría detectado el problema. O presentan errores en formato libre, sin citar el perfil que falla. O inventan terminología cuando el catálogo no tiene match.
La skill cierra ese hueco: el LLM arranca sabiendo qué tool usar para qué intent, cómo presentar issues, cuándo aplicar quickFix automático, y cuál es la política de canonical-only. La diferencia se nota desde el primer turn.
Cómo se activa
Cualquier cliente MCP-compatible que conecte el servidor leeinstructions automáticamente al iniciar la sesión:
| Cliente | Comportamiento al conectar |
|---|---|
| Claude Code | Inyecta instructions como system guidance + lista resources en /resources |
| Cursor | Inyecta instructions como system + resources en sidebar MCP |
| Continue.dev | Idem + resources/prompts listables vía @ |
| Gemini Code Assist | Inyecta instructions; resources via comando |
| Grok-Studio | Idem (MCP support desde Q1 2026) |
| ChatGPT (Custom GPT con MCP connector) | instructions como context inicial |
| JetBrains AI | Idem |
Operating contract (5 reglas que rigen al agente)
- Canonical-only. Toda URL citada viene de
hl7.fhir.cl.clcore,hl7.fhir.r4.core,hl7.terminology.r4ohl7.fhir.cl.minsal.eis. Si algo no está en estos paquetes, el agente lo dice explícito y no inventa. - Errores en español neutro chileno (tuteo, sin voseo). Los nombres técnicos quedan en inglés. Cada issue cita el
StructureDefinition.urlque falla. quickFixantes que explicación. Si el issue trae fix mecánico, el agente propone aplicarlo antes de explicar la causa.- Selección de tools consciente de costos. Tools gratis offline primero; escala a tools de pago solo cuando el resultado offline no alcanza. Antes de cada llamada con costo, anuncia el costo.
- Disciplina HL7®/FHIR®. Primera mención por turn con el símbolo registrado; las siguientes sin. Identificadores técnicos nunca lo llevan.
Routing por intent
| Lo que dice el desarrollador | Tools que invoca el agente | Costo |
|---|---|---|
| ”valida este Patient” + JSON | fhiron_lint → fhiron_validate | 0–1 cr |
”qué significa cl-X” | fhiron_explain_code → fhiron_apply_fix | 0 |
| ”dame un ejemplo de Encounter chileno” | fhiron_get_example | 0 |
| ”código de comuna X / fármaco Y” | fhiron_search_terminology | 0 |
| ”escanea mi endpoint” + URL pública | fhiron_score_endpoint | 0 |
| ”qué cambia entre R4 y CL Core” + recurso | fhiron_compare_profiles | 2 cr |
Bundle ("resourceType": "Bundle") | fhiron_validate_bundle | 1 cr/entry |
Recursos descubribles (resources/list)
El MCP expone 17 documentos bajo agent-skill://fhiron-cl/ que el agente puede leer bajo demanda:
| Categoría | URI | Para qué |
|---|---|---|
| Entry point | agent-skill://fhiron-cl/SKILL.md | Decision tree, 5 reglas, handling de inputs no-JSON |
| Triggers | agent-skill://fhiron-cl/triggers.md | Patrones que activan el comportamiento |
| Conventions | agent-skill://fhiron-cl/conventions.md | Style guide y tabla de costos |
| Playbooks (5) | agent-skill://fhiron-cl/playbooks/{validate,explore,repair,score,compare}.md | Orquestación por intent |
| Referencia (3) | agent-skill://fhiron-cl/reference/{profiles-cl,catalogs,error-codes}.md | Perfiles canónicos, catálogos chilenos, diccionario de códigos |
| Ejemplos (6) | agent-skill://fhiron-cl/examples/0{1..6}-*.md | Sesiones end-to-end reproducibles |
Ejemplo de turn
Desarrollador pega:Detecté unPatient. Corrofhiron_lintprimero (offline, gratis). Encontré 3 issues:¿Aplico los 3
cl-run-01:identifier[0].valuecontiene puntos. CL Core CorePacienteCl normaliza el RUN sin puntos:11111111-1.quickFixdisponible.cl-narrative-02: faltatext.div. FHIR® R4 dom-6 lo recomienda.quickFixagrega narrativa mínima.cl-patient-04:genderausente. CorePacienteCl lo recomienda (male·female·other·unknown).quickFix→"unknown"; edítalo si conoces el dato.quickFixautomáticos (offline, gratis) o prefieres revisarlos uno por uno antes?
Capabilities cubiertas
- 8 perfiles CL Core 1.9.4 (CorePacienteCl, CorePrestadorCl, CoreOrganizacionCl, EncounterCL, CoreDiagnosticoCl, CoreAlergiaIntCl, CoreMedicamentoCl, ImmunizationCL).
- 6 perfiles MISSING (
Procedure,MedicationRequest,Coverage,Observationlaboratorio/signos vitales,Composition). La skill aplica recomendaciones sobre R4 base hasta que HL7® Chile los publique. - 60+ códigos
cl-*documentados con severity, profile, quickFix. - Catálogos chilenos: comunas (decreto 817), DEIS, ATC, SNOMED CT, CIE-10, LOINC, CVX, v3-ActCode, CSTipoIdentificador, CSPrevision (MINSAL EIS).
Versionado
La skill se versiona junto al MCP. Cada release de@fhiron/mcp-connector lleva la skill embebida actualizada. Los clientes obtienen actualizaciones con npm update.