{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.uphealth.us/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/uphealth-mcp.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/uphealth-mcp.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/uphealth-mcp.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 3588,
          "counts": {
            "error": 0,
            "note": 0,
            "warn": 3
          },
          "findings": [
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "create_patient_stream",
              "message": "1 parameter without a description: feedback_timeout_days",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "get_next_cued_message",
              "message": "none of its 2 parameters has a description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC13",
              "severity": "warn",
              "tool": "create_patient_stream",
              "message": "attributes (object with no properties)",
              "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:26:02Z",
        "count": 5,
        "schemaTokens": 3588,
        "status": "ok",
        "tools": [
          {
            "name": "lookup_health_fact",
            "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 \u0026 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"
            },
            "outputSchema": {
              "properties": {
                "attribution": {
                  "description": "\"Source: \u003cagency\u003e 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"
            },
            "annotations": {
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Look up a public health fact, list, or tip (no key)"
            }
          },
          {
            "name": "create_patient_stream",
            "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"
            },
            "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"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Create patient stream"
            }
          },
          {
            "name": "get_next_cued_message",
            "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"
            },
            "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"
            },
            "annotations": {
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": false,
              "title": "Submit feedback, get next cued message"
            }
          },
          {
            "name": "read_stream_state",
            "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"
            },
            "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"
            },
            "annotations": {
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Read stream state"
            }
          },
          {
            "name": "list_sandbox_topics",
            "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"
            },
            "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"
            },
            "annotations": {
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "List sandbox topics"
            }
          }
        ]
      },
      "name": "Uphealth Signal",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@uphealth/mcp-server",
          "version": "1.1.7",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/uphealth-mcp.json",
      "popularity": {
        "npmWeekly": 36
      },
      "registryName": "us.uphealth/mcp",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.uphealth.us/mcp"
        }
      ],
      "repository": "https://github.com/ericinsf/uphealth",
      "reviewed": false,
      "slug": "uphealth-mcp",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=us.uphealth/mcp",
      "summary": "The adaptive health-messaging engine for apps and agents. Federally-sourced. Not medical advice.",
      "updatedAt": "2026-09-03T14:57:04Z",
      "url": "https://www.anchorterminal.com/tools/uphealth-mcp",
      "vendor": "uphealth.us",
      "vendorUrl": "https://uphealth.us/docs/mcp-quickstart",
      "version": "1.1.7",
      "websiteUrl": "https://uphealth.us/docs/mcp-quickstart",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/uphealth-mcp",
    "json": "https://www.anchorterminal.com/tools/uphealth-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/uphealth-mcp.md",
    "slim": "https://www.anchorterminal.com/tools/uphealth-mcp.min.md"
  },
  "markdown": "# Uphealth Signal\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by uphealth.us (https://uphealth.us/docs/mcp-quickstart)\n- Listed because: It's published in the registry under uphealth.us, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: The adaptive health-messaging engine for apps and agents. Federally-sourced. Not medical advice.\n\n## Facts\n\n- MCP registry: `us.uphealth/mcp` 1.1.7\n- Endpoint: https://mcp.uphealth.us/mcp (streamable HTTP)\n- Package: npm `@uphealth/mcp-server` (stdio)\n- Source: https://github.com/ericinsf/uphealth\n- Website: https://uphealth.us/docs/mcp-quickstart\n- npm downloads a week: 36\n- Registry entry updated: 2026-09-03\n\n## Tools\n\n- Tools it lists (5, about 3,588 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:26 UTC):\n  - `lookup_health_fact` (read-only): 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…\n  - `create_patient_stream` (writes): 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…\n  - `get_next_cued_message` (writes): 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…\n  - `read_stream_state` (read-only): 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…\n  - `list_sandbox_topics` (read-only): 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…\n- How its tools read to an agent (0 errors, 3 warnings, 0 notes, about 3,588 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 create_patient_stream: 1 parameter without a description: feedback_timeout_days\n  - warn TC11 get_next_cued_message: none of its 2 parameters has a description\n  - warn TC13 create_patient_stream: attributes (object with no properties)\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/uphealth-mcp.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "Uphealth Signal",
        "url": ""
      }
    ],
    "description": "Uphealth Signal, an MCP server by uphealth.us, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. The adaptive health-messaging engine for apps and agents. Federally-sourced. Not medical advice.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "Uphealth Signal",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/uphealth-mcp",
    "published": "",
    "section": "indexed",
    "title": "Uphealth Signal: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/tools/uphealth-mcp"
  },
  "tokens": {
    "markdown": 850,
    "slim": 780
  },
  "version": 1
}
