Juno Open Health Tools

Consent-gated tools that turn user health notes into non-diagnostic appointment-prep materials.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
94%
Integridad del esquema
85%
Calidad de los nombres
92%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'reflect_on_flare' description lacks action verben reflect_on_flare

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,339Tokens (definiciones de herramientas)
~4.8 KBTamaño de respuesta típico
Impacto moderado en la atención (1.83% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "juno-open-health-tools": {
      "url": "https://juno-health-tools.vercel.app/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://juno-health-tools.vercel.app/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (5)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢find_symptom_words(consentConfirmed, description, bodyArea, timing, impact)

After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI or infer a diagnosis or cause.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "consentConfirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user explicitly agrees to transient processing of their non-identifying, user-authored health notes. Do not submit PHI, medical-record identifiers, contact details, credentials, or provider documents."
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "bodyArea": {
      "type": "string",
      "maxLength": 2000
    },
    "timing": {
      "type": "string",
      "maxLength": 2000
    },
    "impact": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "consentConfirmed",
    "description"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "originalDescription": {
      "type": "string",
      "maxLength": 2000
    },
    "prompts": {
      "type": "object",
      "properties": {
        "sensation": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "timing": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "pattern": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "impact": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "sensation",
        "timing",
        "pattern",
        "impact"
      ],
      "additionalProperties": false
    },
    "starterSentence": {
      "type": "string",
      "maxLength": 10000
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "originalDescription",
    "prompts",
    "starterSentence",
    "disclaimer"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢build_health_timeline(consentConfirmed, observations)

After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or invent dates or diagnoses.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "consentConfirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user explicitly agrees to transient processing of their non-identifying, user-authored health notes. Do not submit PHI, medical-record identifiers, contact details, credentials, or provider documents."
    },
    "observations": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "maxLength": 80
          },
          "observation": {
            "type": "string",
            "maxLength": 2000
          },
          "category": {
            "type": "string",
            "maxLength": 120
          },
          "impact": {
            "type": "string",
            "maxLength": 1000
          },
          "uncertainty": {
            "type": "string",
            "maxLength": 500
          }
        },
        "required": [
          "observation"
        ]
      }
    }
  },
  "required": [
    "consentConfirmed",
    "observations"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "timeline": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "maxLength": 80
          },
          "observation": {
            "type": "string",
            "maxLength": 2000
          },
          "category": {
            "type": "string",
            "maxLength": 120
          },
          "impact": {
            "type": "string",
            "maxLength": 1000
          },
          "uncertainty": {
            "type": "string",
            "maxLength": 500
          }
        },
        "required": [
          "date",
          "observation",
          "category",
          "impact",
          "uncertainty"
        ],
        "additionalProperties": false
      }
    },
    "changePoints": {
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "maxLength": 80
          },
          "observation": {
            "type": "string",
            "maxLength": 2000
          },
          "category": {
            "type": "string",
            "maxLength": 120
          },
          "impact": {
            "type": "string",
            "maxLength": 1000
          },
          "uncertainty": {
            "type": "string",
            "maxLength": 500
          }
        },
        "required": [
          "date",
          "observation",
          "category",
          "impact",
          "uncertainty"
        ],
        "additionalProperties": false
      }
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "timeline",
    "changePoints",
    "disclaimer"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢prepare_appointment_brief(consentConfirmed, mainGoal, changes, impacts, medicines, ...)

After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accept PHI or provide medical advice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "consentConfirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user explicitly agrees to transient processing of their non-identifying, user-authored health notes. Do not submit PHI, medical-record identifiers, contact details, credentials, or provider documents."
    },
    "mainGoal": {
      "type": "string",
      "maxLength": 2000
    },
    "changes": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "impacts": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "medicines": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "questions": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "detailsToBring": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    }
  },
  "required": [
    "consentConfirmed",
    "mainGoal"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "mainGoal": {
      "type": "string",
      "maxLength": 2000
    },
    "changes": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "impacts": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "medicines": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "questions": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "detailsToBring": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "mainGoal",
    "changes",
    "impacts",
    "medicines",
    "questions",
    "detailsToBring",
    "disclaimer"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢reflect_on_flare(consentConfirmed, baselineBefore, during, recoveryAfter, possiblePatterns)

After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal claims. Do not accept PHI.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "consentConfirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user explicitly agrees to transient processing of their non-identifying, user-authored health notes. Do not submit PHI, medical-record identifiers, contact details, credentials, or provider documents."
    },
    "baselineBefore": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "during": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "recoveryAfter": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    },
    "possiblePatterns": {
      "default": [],
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000
      }
    }
  },
  "required": [
    "consentConfirmed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "baselineBefore": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "during": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "recoveryAfter": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "possiblePatternsToObserve": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "baselineBefore",
    "during",
    "recoveryAfter",
    "possiblePatternsToObserve",
    "disclaimer"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢render_appointment_brief(mainGoal, changes, impacts, medicines, questions, ...)

After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; do not add PHI.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mainGoal": {
      "type": "string",
      "maxLength": 2000
    },
    "changes": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "impacts": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "medicines": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "questions": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "detailsToBring": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    },
    "consentConfirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user explicitly agrees to transient processing of their non-identifying, user-authored health notes. Do not submit PHI, medical-record identifiers, contact details, credentials, or provider documents."
    }
  },
  "required": [
    "mainGoal",
    "changes",
    "impacts",
    "medicines",
    "questions",
    "detailsToBring",
    "disclaimer",
    "consentConfirmed"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "mainGoal": {
      "type": "string",
      "maxLength": 2000
    },
    "changes": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "impacts": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "medicines": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "questions": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "detailsToBring": {
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1500
      }
    },
    "disclaimer": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "mainGoal",
    "changes",
    "impacts",
    "medicines",
    "questions",
    "detailsToBring",
    "disclaimer"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada5 herramientas
verificadoversión no registrada5 herramientas