Juno Open Health Tools

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

我该使用它吗

质量与安全性

A
描述质量
94%
模式完整度
85%
命名质量
92%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'reflect_on_flare' description lacks action verb在 reflect_on_flare 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,339token 数(工具定义)
~4.8 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.83%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `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
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具
已验证未记录版本5 个工具
已验证未记录版本5 个工具