{"name":"us.uphealth/mcp","slug":"uphealth-mcp","title":"Uphealth Signal","description":"The adaptive health-messaging engine for apps and agents. Federally-sourced. Not medical advice.","url":"https://mcp.market/server/uphealth-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":16,"stars":null,"forks":null,"downloads_week":45,"last_push_at":null,"license":"MIT"},"uptime":{"percent":100,"checks":5,"ok":5,"last_checked_at":"2026-09-20T19:10:49.492Z","last_ok_at":"2026-09-20T19:10:49.492Z","latency_ms":496},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/ericinsf/uphealth","website":"https://uphealth.us/docs/mcp-quickstart","version":"1.1.7","remotes":[{"type":"streamable-http","url":"https://mcp.uphealth.us/mcp","headers":[{"description":"Optional. Keyless by default — lookup_health_fact needs no token. Add 'Bearer up_sandbox_...' to unlock the keyed patient-stream + cue tools; get a free key from https://uphealth.us/signup to start.","isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@uphealth/mcp-server","version":"1.1.7","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional. Runs keyless by default — lookup_health_fact needs no key. Get a free sandbox key (it begins up_sandbox_) from https://uphealth.us/signup to unlock the keyed patient-stream + cue tools.","isSecret":true,"name":"UPHEALTH_API_KEY"}]}],"tools":[{"name":"create_patient_stream","description":"Create a Signal cued stream for one patient and get the first cue back synchronously. Every cue is federally-sourced, audience-safety-checked, and sequenced on the patient's prior response — so your agent never fabricates health content. Choose a template_id from the signal://catalog resource and pre-satisfy its required audience_tags + patient_context (clinical templates 422 without them). Display mode renders in your app: no PHI, no BAA. Each later cue MUST submit the prior message's feedback — the engine refuses to advance without it (the sequencing moat).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"template_id":{"type":"string","enum":["diabetes_pharma_initiation_30day","general_wellness_daily","heart_pharma_initiation_30day","hypertension_lifestyle_90day","quit_smoking_90day","relapse_prevention_90day","weight_glp1_initiation_30day"],"description":"One of the live Signal templates. Read the signal://catalog resource for each template's required audience_tags + patient_context. On a production key a clinical template 422s if its required tags/context are missing — pre-satisfy them from the catalog. A free sandbox (Discovery) key always cues the curated sandbox corpus."},"attributes":{"type":"object","description":"De-identified patient context. v1 accepts free-form jsonb; future templates will enforce schemas."},"audience_tags":{"type":"array","items":{"type":"string"},"description":"Subset of the 14-tag B5/B6 schema. See list_sandbox_topics for sample topic labels."},"delivery_mode":{"type":"string","enum":["display"],"default":"display","description":"v1 is Display-only; Deliver-mode unlocks at Per-Episode tier after BAA."},"feedback_timeout_days":{"type":"integer","default":14},"idempotency_key":{"type":"string","format":"uuid","description":"Optional. Stripe-style create idempotency: a retried create with the same key returns the ORIGINAL stream instead of minting (and billing) a second one. Forwarded as the Idempotency-Key request header. UUID v4 recommended."}},"required":["template_id"],"additionalProperties":true}},{"name":"get_next_cued_message","description":"Submit the patient's response to the prior cue and get the next one — federally-sourced, audience-safety-checked, and re-sequenced on that feedback. REFUSES WITHOUT PRIOR-MESSAGE FEEDBACK (the moat): the engine will not advance a stream blind, returning 409 if you skip it. response_action is one of the accepted cue vocabulary (see the signal://catalog resource). Same idempotency_key + same feedback returns the cached cue; conflicting feedback under the same key returns 409.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"stream_id":{"type":"integer","description":"The stream_id returned by create_patient_stream."},"feedback":{"type":"object","properties":{"response_action":{"type":"string","enum":["did_it","already_do","will_try","check_it","new_to_me","needed_this","know_it","acknowledge","no_response"]},"free_text":{"type":"string"},"idempotency_key":{"type":"string","format":"uuid","description":"UUID v4 recommended. Same key + same feedback returns the cached cue; conflicting feedback under the same key returns 409."}},"required":["response_action","idempotency_key"]}},"required":["stream_id","feedback"],"additionalProperties":false}},{"name":"list_sandbox_topics","description":"List the curated sandbox topic labels that define the free Discovery corpus — every topic federally-sourced and audience-safety-checked. Use it to preview what content domains exist before creating a stream. Does NOT enumerate messages — the corpus stays internal. For the full live template catalog + gating contract, read the signal://catalog resource.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"lookup_health_fact","description":"Zero setup — NO key required. Returns ONE already-public federal health fact, list, or tip for a question or topic (e.g. \"high blood pressure\", \"sleep\", \"type 2 diabetes\"), with its federal source (CDC / MedlinePlus / NIH) and a link to the public uphealth.me page. Free + rate-limited. For adaptive, patient-specific message sequencing — receptivity-scored cues + audience-safety verdicts over the full library of federally-sourced facts, lists & tips — get a free Discovery key at https://uphealth.us/signup","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"A health question or topic, e.g. \"high blood pressure\", \"sleep\", or \"type 2 diabetes\"."}},"required":["q"],"additionalProperties":false}},{"name":"read_stream_state","description":"Read a stream's current state, its current cued message, and event count. Read-only — does NOT advance the stream or consume a cue. Use it between feedback turns to inspect where a patient is in their federally-sourced, audience-safety-checked sequence.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"stream_id":{"type":"integer","description":"The stream_id returned by create_patient_stream."}},"required":["stream_id"],"additionalProperties":false}}],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-20T16:17:56.309Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:17:56.267Z","components":{"code":{"score":25,"max":25,"notes":["24 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 707ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.uphealth.us/mcp","reachable":true,"authRequired":false,"latencyMs":707,"serverInfo":{"name":"uphealth-mcp","version":"1.1.7"}}],"packages":[{"registryType":"npm","identifier":"@uphealth/mcp-server","version":"1.1.7","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-03T14:48:21.453Z","repositoryUrl":"git+https://github.com/ericinsf/uphealth.git","weeklyDownloads":45}],"repo":{"found":false,"owner":"ericinsf","repo":"uphealth","error":"repo not found"},"icon":{"url":"https://uphealth.us/apple-touch-icon.png?v=20260620","source":"site","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":45,"license":"MIT","lastPushAt":null,"score":16}}}},"grade_history":[],"reviews":[]}