Juno Open Health Tools
Consent-gated tools that turn user health notes into non-diagnostic appointment-prep materials.
使うべきか
品質と安全性
検出事項(1)
- LOWreflect_on_flare 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"juno-open-health-tools": {
"url": "https://juno-health-tools.vercel.app/api/mcp"
}
}
}リモートエンドポイント
https://juno-health-tools.vercel.app/api/mcpstreamable-httpできること
ツール一覧
ツール(5)
🟢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.
入力スキーマ
{
"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"
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
}出力スキーマ
{
"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.
入力スキーマ
{
"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"
}出力スキーマ
{
"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
}コミュニティ
エビデンス