Server definition
- Hash
- sha256:18bd9397ca82f75906c864dd77a76ebd3a4331abe864f1ba3a13a3d2a191fe71
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"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).",
"inputSchema": {
"additionalProperties": true,
"properties": {
"attributes": {
"description": "De-identified patient context. v1 accepts free-form jsonb; future templates will enforce schemas.",
"type": "object"
},
"audience_tags": {
"description": "Subset of the 14-tag B5/B6 schema. See list_sandbox_topics for sample topic labels.",
"items": {
"type": "string"
},
"type": "array"
},
"delivery_mode": {
"default": "display",
"description": "v1 is Display-only; Deliver-mode unlocks at Per-Episode tier after BAA.",
"enum": [
"display"
],
"type": "string"
},
"feedback_timeout_days": {
"default": 14,
"type": "integer"
},
"idempotency_key": {
"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.",
"format": "uuid",
"type": "string"
},
"template_id": {
"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.",
"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"
],
"type": "string"
}
},
"required": [
"template_id"
],
"type": "object"
},
"name": "create_patient_stream",
"outputSchema": {
"properties": {
"_meta": {
"additionalProperties": true,
"description": "Legal/disclosure block returned on every 2xx (A1 §6.7).",
"properties": {
"api_version": {
"type": "string"
},
"delivery_mode": {
"type": "string"
},
"license_attribution": {
"type": "string"
},
"no_medical_advice": {
"type": "boolean"
},
"not_samd": {
"type": "boolean"
},
"sequencing_ip_notice": {
"type": "string"
}
},
"type": "object"
},
"first_cue": {
"additionalProperties": true,
"description": "A cued message plus its per-cue receptivity score and audience-safety verdict.",
"properties": {
"arc": {
"additionalProperties": true,
"description": "Where this cue sits in the template's curated arc, or null when the cue is not on a spine. source is 'spine' or 'corpus_continuation'; a corpus-continuation cue (past the arc's end) carries source only, with day/phase/seq/total null.",
"properties": {
"day": {
"description": "The curated arc day of this message.",
"type": [
"integer",
"null"
]
},
"phase": {
"description": "The curated arc phase, e.g. starting_dose / titrating / re_entry.",
"type": [
"string",
"null"
]
},
"seq": {
"description": "1-based position of this message in the spine.",
"type": [
"integer",
"null"
]
},
"source": {
"description": "spine | corpus_continuation",
"type": "string"
},
"total": {
"description": "Total messages in the spine.",
"type": [
"integer",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"body": {
"type": "string"
},
"cue_event_id": {
"type": "integer"
},
"cued_at": {
"description": "ISO 8601 timestamp.",
"type": "string"
},
"day_of_stream": {
"description": "Advisory 1-based wall-clock day the patient is on in this stream (anchored to enrollment). Null on legacy cues issued before day-of-stream tracking.",
"type": [
"integer",
"null"
]
},
"kind": {
"description": "fact | list | tip",
"type": "string"
},
"message_class": {
"type": "string"
},
"message_id": {
"type": "integer"
},
"receptivity": {
"description": "Advisory receptivity in [0.0, 1.0]; 0.5 = neutral/new patient.",
"type": "number"
},
"safety": {
"additionalProperties": true,
"description": "PHI-free audience-safety verdict.",
"type": "object"
},
"source_quote": {
"type": "string"
},
"source_url": {
"type": "string"
}
},
"type": "object"
},
"next_cue_eligible_at": {
"type": [
"string",
"null"
]
},
"rate_limit": {
"additionalProperties": true,
"description": "Discovery monthly cue-cap headroom. Absent on non-Discovery tiers (no cap).",
"properties": {
"limit": {
"description": "Discovery monthly cue cap.",
"type": "integer"
},
"remaining": {
"description": "Cues remaining in the current calendar month (UTC).",
"type": "integer"
},
"reset": {
"description": "Seconds until the cap window resets (start of next calendar month, UTC; same basis as the 429 Retry-After).",
"type": "integer"
}
},
"type": "object"
},
"state": {
"type": "string"
},
"stream_id": {
"description": "Persist this — every later cue/read references it.",
"type": "integer"
}
},
"required": [
"stream_id",
"state",
"first_cue",
"_meta"
],
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"feedback": {
"properties": {
"free_text": {
"type": "string"
},
"idempotency_key": {
"description": "UUID v4 recommended. Same key + same feedback returns the cached cue; conflicting feedback under the same key returns 409.",
"format": "uuid",
"type": "string"
},
"response_action": {
"enum": [
"did_it",
"already_do",
"will_try",
"check_it",
"new_to_me",
"needed_this",
"know_it",
"acknowledge",
"no_response"
],
"type": "string"
}
},
"required": [
"response_action",
"idempotency_key"
],
"type": "object"
},
"stream_id": {
"description": "The stream_id returned by create_patient_stream.",
"type": "integer"
}
},
"required": [
"stream_id",
"feedback"
],
"type": "object"
},
"name": "get_next_cued_message",
"outputSchema": {
"properties": {
"_meta": {
"additionalProperties": true,
"description": "Legal/disclosure block returned on every 2xx (A1 §6.7).",
"properties": {
"api_version": {
"type": "string"
},
"delivery_mode": {
"type": "string"
},
"license_attribution": {
"type": "string"
},
"no_medical_advice": {
"type": "boolean"
},
"not_samd": {
"type": "boolean"
},
"sequencing_ip_notice": {
"type": "string"
}
},
"type": "object"
},
"idempotent": {
"description": "true when this is the cached result of a repeated idempotency_key.",
"type": "boolean"
},
"message": {
"type": "string"
},
"next_cue": {
"additionalProperties": true,
"description": "A cued message plus its per-cue receptivity score and audience-safety verdict.",
"properties": {
"arc": {
"additionalProperties": true,
"description": "Where this cue sits in the template's curated arc, or null when the cue is not on a spine. source is 'spine' or 'corpus_continuation'; a corpus-continuation cue (past the arc's end) carries source only, with day/phase/seq/total null.",
"properties": {
"day": {
"description": "The curated arc day of this message.",
"type": [
"integer",
"null"
]
},
"phase": {
"description": "The curated arc phase, e.g. starting_dose / titrating / re_entry.",
"type": [
"string",
"null"
]
},
"seq": {
"description": "1-based position of this message in the spine.",
"type": [
"integer",
"null"
]
},
"source": {
"description": "spine | corpus_continuation",
"type": "string"
},
"total": {
"description": "Total messages in the spine.",
"type": [
"integer",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"body": {
"type": "string"
},
"cue_event_id": {
"type": "integer"
},
"cued_at": {
"description": "ISO 8601 timestamp.",
"type": "string"
},
"day_of_stream": {
"description": "Advisory 1-based wall-clock day the patient is on in this stream (anchored to enrollment). Null on legacy cues issued before day-of-stream tracking.",
"type": [
"integer",
"null"
]
},
"kind": {
"description": "fact | list | tip",
"type": "string"
},
"message_class": {
"type": "string"
},
"message_id": {
"type": "integer"
},
"receptivity": {
"description": "Advisory receptivity in [0.0, 1.0]; 0.5 = neutral/new patient.",
"type": "number"
},
"safety": {
"additionalProperties": true,
"description": "PHI-free audience-safety verdict.",
"type": "object"
},
"source_quote": {
"type": "string"
},
"source_url": {
"type": "string"
}
},
"type": "object"
},
"normalized_action": {
"description": "null when the submitted response_action was a recognized value; otherwise the acknowledge-class value the well-formed-but-unrecognized action was folded to (forward-compat tolerance). Always present on a cue result; absent on the exhausted-stream result.",
"type": [
"string",
"null"
]
},
"rate_limit": {
"additionalProperties": true,
"description": "Discovery monthly cue-cap headroom. Absent on non-Discovery tiers (no cap).",
"properties": {
"limit": {
"description": "Discovery monthly cue cap.",
"type": "integer"
},
"remaining": {
"description": "Cues remaining in the current calendar month (UTC).",
"type": "integer"
},
"reset": {
"description": "Seconds until the cap window resets (start of next calendar month, UTC; same basis as the 429 Retry-After).",
"type": "integer"
}
},
"type": "object"
},
"sandbox_exhausted": {
"description": "Present + true when the sandbox subset is exhausted; no next_cue then.",
"type": "boolean"
},
"state": {
"type": "string"
},
"stream_id": {
"type": "integer"
}
},
"required": [
"stream_id",
"state",
"_meta"
],
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_sandbox_topics",
"outputSchema": {
"properties": {
"_meta": {
"additionalProperties": true,
"description": "Legal/disclosure block returned on every 2xx (A1 §6.7).",
"properties": {
"api_version": {
"type": "string"
},
"delivery_mode": {
"type": "string"
},
"license_attribution": {
"type": "string"
},
"no_medical_advice": {
"type": "boolean"
},
"not_samd": {
"type": "boolean"
},
"sequencing_ip_notice": {
"type": "string"
}
},
"type": "object"
},
"template_id_for_sandbox": {
"type": "string"
},
"topic_labels": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"topic_labels",
"_meta"
],
"type": "object"
}
},
{
"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",
"inputSchema": {
"additionalProperties": false,
"properties": {
"q": {
"description": "A health question or topic, e.g. \"high blood pressure\", \"sleep\", or \"type 2 diabetes\".",
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"name": "lookup_health_fact",
"outputSchema": {
"properties": {
"attribution": {
"description": "\"Source: <agency> via Uphealth\".",
"type": "string"
},
"disclaimer": {
"type": "string"
},
"fact": {
"additionalProperties": true,
"description": "The single already-public federal message — a fact, list, or tip (see kind).",
"properties": {
"agency": {
"description": "Federal source agency label, e.g. CDC / MedlinePlus / NIDDK.",
"type": "string"
},
"body": {
"type": "string"
},
"kind": {
"description": "fact | list | tip",
"type": "string"
},
"source_url": {
"description": "The federal public-domain source.",
"type": "string"
},
"uphealth_url": {
"description": "The public uphealth.me topic page.",
"type": "string"
}
},
"type": "object"
},
"topic": {
"description": "The matched topic's title.",
"type": "string"
},
"upgrade": {
"additionalProperties": true,
"description": "The free-key upsell — adaptive sequencing lives behind a Discovery key.",
"type": "object"
}
},
"required": [
"fact",
"disclaimer",
"attribution",
"upgrade"
],
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"stream_id": {
"description": "The stream_id returned by create_patient_stream.",
"type": "integer"
}
},
"required": [
"stream_id"
],
"type": "object"
},
"name": "read_stream_state",
"outputSchema": {
"properties": {
"_meta": {
"additionalProperties": true,
"description": "Legal/disclosure block returned on every 2xx (A1 §6.7).",
"properties": {
"api_version": {
"type": "string"
},
"delivery_mode": {
"type": "string"
},
"license_attribution": {
"type": "string"
},
"no_medical_advice": {
"type": "boolean"
},
"not_samd": {
"type": "boolean"
},
"sequencing_ip_notice": {
"type": "string"
}
},
"type": "object"
},
"current_cue": {
"additionalProperties": true,
"type": [
"object",
"null"
]
},
"events_count": {
"type": "integer"
},
"next_cue_eligible": {
"type": "boolean"
},
"rate_limit": {
"additionalProperties": true,
"description": "Discovery monthly cue-cap headroom. Absent on non-Discovery tiers (no cap).",
"properties": {
"limit": {
"description": "Discovery monthly cue cap.",
"type": "integer"
},
"remaining": {
"description": "Cues remaining in the current calendar month (UTC).",
"type": "integer"
},
"reset": {
"description": "Seconds until the cap window resets (start of next calendar month, UTC; same basis as the 429 Retry-After).",
"type": "integer"
}
},
"type": "object"
},
"state": {
"type": "string"
},
"stream_id": {
"type": "integer"
},
"template_id": {
"type": "string"
}
},
"required": [
"stream_id",
"state",
"_meta"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:18bd9397ca82f75906c864dd77a76ebd3a4331abe864f1ba3a13a3d2a191fe71 | sha256sum