{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_g8uupa8kyd9z","handle":"juno-open-health-tools","url":"https://wellknown.network/agents/juno-open-health-tools","links":{"self":"https://wellknown.network/agents/juno-open-health-tools/record.json","html":"https://wellknown.network/agents/juno-open-health-tools","markdown":"https://wellknown.network/agents/juno-open-health-tools/record.md","api":"https://wellknown.network/api/v1/agents/juno-open-health-tools","status":"https://wellknown.network/api/v1/agents/juno-open-health-tools/status","claim":"https://wellknown.network/agents/juno-open-health-tools/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/juno-open-health-tools/claim.json","badge":"https://wellknown.network/agents/juno-open-health-tools/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/juno-open-health-tools/history","tools":"https://wellknown.network/api/v1/agents/juno-open-health-tools/tools"},"ard":{"identifier":"urn:air:juno-health-tools.vercel.app:server:juno-open-health-tools","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Juno Open Health Tools","summary":"Consent-gated tools that turn user health notes into non-diagnostic appointment-prep materials.","description":"Consent-gated tools that turn user health notes into non-diagnostic appointment-prep materials.","publisher":{"name":"MarshallBear1","url":null},"homepage":null,"repository":"https://github.com/MarshallBear1/juno-open-health-tools","version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://juno-health-tools.vercel.app/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-01T01:22:03.976147Z","publishedAt":"2026-08-01T01:22:03.976147Z","registryName":"io.github.MarshallBear1/juno-open-health-tools"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[],"categories":[],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-11T06:23:32.685Z","lastProbedAt":"2026-10-11T06:23:32.685Z","statusComputedAt":"2026-10-11T06:24:21.741Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":154,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T06:23:32.685Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":127,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T00:28:23.789Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":131,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T18:27:29.120Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:24:19.554Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":139,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:31:35.443Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":230,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T21:27:21.645Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":162,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:32:47.245Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":134,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:37.638Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":176,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T02:25:45.917Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":156,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:24:06.525Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":167,"error":null,"detail":{"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"toolCount":5,"toolsHash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","serverName":"Juno Health Tools","capabilities":["resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"find_symptom_words","description":"After explicit consent, organise only the user's non-identifying description into neutral sensation, timing, pattern, and impact vocabulary. Do not accept PHI o"},{"name":"build_health_timeline","description":"After explicit consent, sort only non-identifying, user-authored observations into a factual chronology while preserving uncertainty. Do not accept PHI or inven"},{"name":"prepare_appointment_brief","description":"After explicit consent, turn minimal non-identifying goals, changes, impact, user-stated medicines, and questions into a concise appointment brief. Do not accep"},{"name":"reflect_on_flare","description":"After explicit consent, structure only non-identifying, user-authored before, during, and after observations; turn suspected patterns into questions, not causal"},{"name":"render_appointment_brief","description":"After the user's existing consent, render the non-identifying output of prepare_appointment_brief as an accessible card. Call prepare_appointment_brief first; d"}],"package":null,"toolSurface":{"id":"ts_wtwyv28cxafe","endpointId":"ep_c8q73trpqyyt","hash":"4500c173bc758f60715e4e1b81ca1412895d67919d22b5f6081dea9765598d8f","toolCount":5,"serverName":"Juno Health Tools","serverVersion":"1.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T11:26:48.989Z","lastSeenAt":"2026-10-11T06:23:32.698Z","observations":106,"toolNames":["find_symptom_words","build_health_timeline","prepare_appointment_brief","reflect_on_flare","render_appointment_brief"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_c8q73trpqyyt","url":"https://juno-health-tools.vercel.app/api/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T11:24:19.565Z","auth":{"observedAt":"2026-10-10T11:24:19.621Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T11:24:19.646Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.vercel.app","issuer":{"commonName":"WR1","organization":"Google Trust Services"},"validFrom":"2026-08-29T19:48:09.000Z","validTo":"2026-11-27T19:48:08.000Z","daysToExpiry":47,"sanCount":1,"fingerprint256":"8F:46:C4:A0:A2:89:BF:DE:40:60:D0:69:86:F2:AF:76:1E:E6:2D:66:8D:DE:97:2E:6B:EF:46:87:EE:4F:60:93"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.MarshallBear1/juno-open-health-tools","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.MarshallBear1%2Fjuno-open-health-tools","firstSeenAt":"2026-09-06T05:22:04.958Z","fetchedAt":"2026-10-09T23:22:42.494Z","normalizedAt":"2026-10-09T23:22:42.494Z"}]},"firstSeenAt":"2026-09-06T05:22:04.958Z","updatedAt":"2026-10-11T06:25:17.119Z"}