Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,331counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:18bd9397ca82f75906c864dd77a76ebd3a4331abe864f1ba3a13a3d2a191fe71 | sha256sum