← The evidence ledger
Evidence row 383013
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 73a073e6-35cd-435d-82b2-e3d3793bb38c
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- d33c0d3d5ea86860882c2428ec5cab524ec2817f6f52f401b1b2340827d8d866
- Leaf
- 0xb472649c37b94ca9fee0147c1eb04b3034de6e3f49eeae48bba52d09270738ee
What was observed
{
"count": 5,
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
}
]
}What the leaf hashes
{"body":"d33c0d3d5ea86860882c2428ec5cab524ec2817f6f52f401b1b2340827d8d866","id":383013,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793059695922683,"prev":null,"subject":"73a073e6-35cd-435d-82b2-e3d3793bb38c","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.