Uphealth Signal is a health-messaging engine that lets an assistant look up public federal health facts and run cued, federally sourced patient message streams.
What you can do
Look up a single public federal health fact, list or tip on a topic, with its CDC, MedlinePlus or NIH source and a public page link, without any key and under rate limits. Create a cued patient stream from a template and receive the first cue synchronously. Submit a patient's response to the prior cue and get the next cue, re-sequenced on that feedback. Read a stream's current state, current cued message and event count without advancing it. List the curated sandbox topic labels that define the free Discovery corpus.
When to use it
Use it when an app or agent needs to deliver federally sourced health messages to patients in a guided sequence, or when you just need a quick public health fact with a citable federal source. The keyless lookup is enough for simple fact questions; the stream tools are for structured, response-driven messaging.
Requirements
Runs as a remote endpoint or as a local npm package over stdio. No key is needed for the fact lookup. The patient-stream and cue tools need a free sandbox key, supplied as the UPHEALTH_API_KEY environment variable or as an Authorization bearer token. Network access is required.
Before you install
The stream tools create and advance patient messaging records and send patient responses back to the service, so treat that data as sensitive. The engine refuses to advance a stream without prior-message feedback. Content is federally sourced and explicitly not medical advice, so it should not be presented as clinical guidance. Keys are optional but are secrets and should be kept out of logs.
Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/us.uphealth%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.
Look up a public health fact, list, or tip (no key)
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
Parametersqrequired
create_patient_stream
Create patient stream
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).
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.
Parametersfeedbackrequiredstream_idrequired
read_stream_state
Read stream state
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.
Parametersstream_idrequired
list_sandbox_topics
List sandbox topics
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.
Takes no parameters.
Version history
1
v1.1.7LatestSep 16, 2026
Score
75%
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Reached in the last 30 daysRequired25 pts
Auth declaredRequired10 pts
Tools listedRequired15 pts
DescriptionRequired15 pts
Logo10 pts
Documentation15 pts
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
License10 pts
Declare a license in the repository or the registry entry.