addrbookFor publishers
← 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.

How to check it · This row as JSON