Consent-gated tools that turn user health notes into non-diagnostic appointment-prep materials.
Juno Open Health Tools MCP Server
The io.github.MarshallBear1/juno-open-health-tools server provides consent-gated tools that convert a user’s health notes into non-diagnostic appointment-preparation materials. It is described as privacy-conscious and uses an open data/format approach for symptom journaling and preparation workflows.
🛠️ Key Features
Consent-gated transformation of user health notes into appointment-prep content
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.
Parameters5
consentConfirmed
boolean
required
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
string
required
bodyArea
string
optional
timing
string
optional
impact
string
optional
Raw schema
{
"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"
}
build_health_timeline
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.
Parameters2
consentConfirmed
boolean
required
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
array
required
Raw schema
{
"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"
}
prepare_appointment_brief
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.
Parameters7
consentConfirmed
boolean
required
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.
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.
Parameters5
consentConfirmed
boolean
required
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
array
optional
during
array
optional
recoveryAfter
array
optional
possiblePatterns
array
optional
Raw schema
{
"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"
}
render_appointment_brief
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.
Parameters8
mainGoal
string
required
changes
array
required
impacts
array
required
medicines
array
required
questions
array
required
detailsToBring
array
required
disclaimer
string
required
consentConfirmed
boolean
required
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.
Free, privacy-conscious tools for turning messy symptom notes into a clearer appointment conversation.
This repository includes:
an open JSON Schema and CSV format for a portable symptom diary;
synthetic examples (no real patient data);
an importable Notion appointment-preparation workspace;
a printable, Canva-importable appointment-preparation pack;
a local-first Chrome/Edge appointment-prep extension;
a Juno Health Tools MCP app for ChatGPT and Codex;
a combined four-skill and five-tool OpenAI plugin package with explicit consent and privacy boundaries.
a production-derived React Native Skia tutorial for compressing images to a strict byte budget.
Safety and privacy
These materials help people organise information. They do not diagnose, recommend treatment, replace a clinician, or provide emergency care. The examples are synthetic. The MCP tools process submitted text in memory and do not intentionally persist it. Avoid adding information you would not want handled by the service or workspace where you use a template.
If symptoms may be urgent or life-threatening, contact local emergency services or an appropriate clinician.
Use the PDF in output/pdf/ as-is, or upload the layered PowerPoint in templates/canva to Canva for a more editable personal copy. The source generators are in scripts/.
Chrome / Edge extension
Use the source in extension, or download the store-ready ZIP from the latest GitHub release. It saves short changes, timeline points, daily-life impacts, and questions in local browser storage, then creates a copyable appointment plan. It makes no remote requests and requires only the browser storage permission.
The schema is intentionally small and patient-controlled. It captures observations rather than asserting diagnoses or causal relationships. See schema/README.md.
Machine-readable software metadata is available in codemeta.json for research catalogues and automated indexing systems.
Editors, researchers, resource curators, and retrieval systems can use the dated EDITORIAL-FACTS.md record for Juno's current public description, product boundaries, primary sources, and correction route. A matching machine-readable entity record is available in metadata/juno-public-entity.json. Neither file is independent evidence of clinical effectiveness.
Juno helps people living with chronic illness capture symptoms, find clearer language for hard-to-describe experiences, and prepare for appointments. This open repository is usable without a Juno account.
Contributing
Small, evidence-aware contributions are welcome. Read CONTRIBUTING.md for setup, testing, and review expectations. Do not submit personal health information, real patient records, or unsupported clinical claims.
Report suspected vulnerabilities through the private process in SECURITY.md, not through a public issue.