🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@uphealth/mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uphealth/mcp-server

Uphealth Signal — the adaptive health-messaging engine for apps and agents. Drive federally-sourced, audience-safe cued health-message streams from any MCP client — local stdio via npx, or the hosted mcp.uphealth.us endpoint. Not medical advice.

latest
Source
npmnpm
Version
1.1.5
Version published
Maintainers
1
Created
Source

Uphealth Signal MCP server

The adaptive health-messaging engine for apps and agents — federally-sourced, audience-safe. Not medical advice.

The Uphealth MCP server lets any Model Context Protocol client — Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, or your own agent — look up federal health facts and drive a cued health-message stream as five tools (one needs no key). It wraps the Signal API; the model never sees your raw HTTP layer.

Try it with zero setup: lookup_health_fact needs no key — one already-public federal fact per question. For the adaptive stream, get a free sandbox key (no credit card, no PHI, no BAA) at https://uphealth.us/signup, then pick an install method below.

The five tools

ToolWrapsKey?Does
lookup_health_factGET /v1/public/health-factnoneOne already-public federal fact for a question/topic + its source + an uphealth.me link
create_patient_streamPOST /v1/signal/streamsup_…Start a stream from a template; returns the opening cue
get_next_cued_messagePOST /v1/signal/streams/:id/cueup_…Submit the patient's response, get the next message
read_stream_stateGET /v1/signal/streams/:idup_…Read state + current cue without advancing
list_sandbox_topicsGET /v1/signal/sandbox-topicsup_…List the five sandbox topics

The one rule (keyed tools): every cue after the first requires feedback on the prior one (the model passes the patient's response_action). The tool descriptions teach this, so a capable agent drives the loop correctly.

No hosting, no URL. The client launches the server as a subprocess with your key in its environment.

Claude Desktop

claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "uphealth": {
      "command": "npx",
      "args": ["-y", "@uphealth/mcp-server"],
      "env": { "UPHEALTH_API_KEY": "up_sandbox_YOUR_KEY" }
    }
  }
}

Cursor

~/.cursor/mcp.json (or a project's .cursor/mcp.json):

{
  "mcpServers": {
    "uphealth": {
      "command": "npx",
      "args": ["-y", "@uphealth/mcp-server"],
      "env": { "UPHEALTH_API_KEY": "up_sandbox_YOUR_KEY" }
    }
  }
}

VS Code (Copilot agent mode)

.vscode/mcp.json:

{
  "servers": {
    "uphealth": {
      "command": "npx",
      "args": ["-y", "@uphealth/mcp-server"],
      "env": { "UPHEALTH_API_KEY": "up_sandbox_YOUR_KEY" }
    }
  }
}

Claude Code (CLI)

claude mcp add uphealth --env UPHEALTH_API_KEY=up_sandbox_YOUR_KEY -- npx -y @uphealth/mcp-server

Any other stdio MCP client uses the same shape: command npx, args ["-y", "@uphealth/mcp-server"], env UPHEALTH_API_KEY.

Option B — Remote (hosted Streamable HTTP)

The server is also hosted at https://mcp.uphealth.us/mcp. Clients with native remote-MCP support add it directly with an Authorization: Bearer header. For clients that only speak stdio, bridge with mcp-remote:

{
  "mcpServers": {
    "uphealth": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://mcp.uphealth.us/mcp",
        "--header", "Authorization: Bearer up_sandbox_YOUR_KEY"
      ]
    }
  }
}

Verify

Use the MCP Inspector against either transport:

# local stdio
UPHEALTH_API_KEY=up_sandbox_YOUR_KEY npx @modelcontextprotocol/inspector npx -y @uphealth/mcp-server

# hosted
npx @modelcontextprotocol/inspector --transport streamable-http \
  --url https://mcp.uphealth.us/mcp \
  --header "Authorization: Bearer up_sandbox_YOUR_KEY"

Then call create_patient_stream with template_id: "general_wellness_daily", and get_next_cued_message with a response_action (e.g. did_it).

Where it's published

SurfaceCoordinates
npm (this package)@uphealth/mcp-server — stdio via npx
Official MCP registryus.uphealth/mcp (registry.modelcontextprotocol.io)
Hosted remotehttps://mcp.uphealth.us/mcp (Streamable HTTP)
SDKsnpm @uphealth/signal (Node/TS) · PyPI uphealth-signal (Python)
Smitheryuphealth/signal
GlamaListed + claimed (ownership via /.well-known/glama.json on mcp.uphealth.us and the uphealth.us apex)
mcp.souphealth-signal

The npm package page shows the current version; third-party catalogs re-scan on their own schedule, so their displayed version can lag a release or two behind npm and the official registry.

Notes

  • Keep your key private. Treat UPHEALTH_API_KEY like any secret; don't commit client configs containing a live key.
  • Display mode only in the sandbox — no PHI, no BAA. Deliver mode is BAA-gated at the PMPM tier.
  • Discovery quota: 50 cues / calendar month. Over the cap, tools return the over_quota result with an upgrade link.

Keywords

mcp

FAQs

Package last updated on 22 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts