Physician-governed GI tools: claim verification, teaching retrieval, HRM and instrument scoring
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fact-check pasted text (a social post, caption, or sentence): canonical wording or its full explicit negation can receive a scoped governed verdict; other matches return unresolved reviewed candidates with evidence. No video retrieval or individual medical advice.
Fact-check pasted text (a social post, caption, or sentence): canonical wording or its full explicit negation can receive a scoped governed verdict; other matches return unresolved reviewed candidates with evidence. No video retrieval or individual medical advice.
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
}Legacy HRM operation quarantined after rule discrepancies were reproduced against reviewed teaching. Returns needs_review without classification. Do not invoke to obtain a diagnosis; this compatibility name is omitted from new plugin products.
| Argument | Type | Description |
|---|---|---|
| metrics* | object | |
| position | string | |
| provocative | object | |
| manufacturer | string | |
| secondary_testing | object |
{
"type": "object",
"required": [
"metrics"
],
"properties": {
"metrics": {
"type": "object",
"properties": {
"dl_s": {
"type": "number"
},
"irp_mmhg": {
"type": "number"
},
"pct_weak": {
"type": "number"
},
"pct_failed": {
"type": "number"
},
"dci_mmhg_cm_s": {
"type": "number"
},
"pct_premature": {
"type": "number"
},
"pct_fragmented": {
"type": "number"
},
"pct_panesophageal": {
"type": "number"
},
"pct_hypercontractile": {
"type": "number"
}
}
},
"position": {
"enum": [
"supine",
"upright"
],
"type": "string"
},
"provocative": {
"type": "object"
},
"manufacturer": {
"enum": [
"Medtronic",
"Laborie",
"Diversatek",
"Unknown"
],
"type": "string"
},
"secondary_testing": {
"type": "object"
}
},
"additionalProperties": false
}Get the claim ledger (claim → evidence rows) for a module, when published.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$"
}
},
"additionalProperties": false
}The current GASTROLOGER_CLINICAL_STATE: version, corpus/section/module Merkle roots, counts and hash scheme — pin an answer to an exact knowledge state.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Resolve up to 10 claims (by claim_ids or free-text query) into an evidence bundle: statements, verdicts, review dates, evidence pointers, canonical URLs, clinical-state pin. Optional locale (BCP-47) reports human-localized module availability; canonical identifiers are language-independent. Bulk export beyond 10 claims is the paid tier (x402) at /api/premium/evidence-pack.
| Argument | Type | Description |
|---|---|---|
| query | string | |
| locale | string | |
| claim_ids | array |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 500
},
"locale": {
"type": "string",
"pattern": "^[a-zA-Z]{2,3}(-[A-Za-z0-9]{2,8})*$"
},
"claim_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{3,40}$"
},
"maxItems": 10
}
},
"additionalProperties": false
}Dated evidence-review log for all modules.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get one canonical verification record (statement, verdict, review date, evidence module, machine URLs) by its slug or claim id.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{3,110}$"
}
},
"additionalProperties": false
}List every clinician teaching module and patient chapter: title, canonical URL, evidence-review date.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Query the evidence-backed clinical relationship graph (subject–predicate–object triples over diseases, medications, tests, findings, guidelines). Every relation cites governed claim IDs and/or evidence registry IDs. Filter by node text (subject/object), predicate (treated_by, evaluated_by, contraindicated_by, increases_risk_of, reduces_risk_of, causes, associated_with, suggests, argues_against, complicated_by, recommended_by, supported_by, conflicts_with, supersedes, requires_context_of), kind, or a claim_id. Also GET /api/tools/relations.
| Argument | Type | Description |
|---|---|---|
| kind | string | filter subject_kind or object_kind (disease, medication, test, finding, guideline, risk_factor, mechanism, intervention) |
| node | string | substring match against subject_id/object_id |
| limit | number | |
| claim_id | string | |
| predicate | string |
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "filter subject_kind or object_kind (disease, medication, test, finding, guideline, risk_factor, mechanism, intervention)"
},
"node": {
"type": "string",
"description": "substring match against subject_id/object_id"
},
"limit": {
"type": "number",
"maximum": 25
},
"claim_id": {
"type": "string"
},
"predicate": {
"type": "string"
}
},
"additionalProperties": false
}Read ONE module's full teaching text (markdown) with required citation. Not for bulk corpus assembly.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$"
}
},
"additionalProperties": false
}Route a free-text GI ask to the Gastrologer object that owns it: a governed claim, teaching module, instrument (IBS-SSS/GERD-Q), atlas region, prep-timeline workflow, or relationship. Returns a confidence-ordered routing decision (resolved | ambiguous | needs_review) with canonical URLs — it routes, it does not answer. Unmatched asks are recorded as coverage-gap signals that drive what the corpus builds next.
| Argument | Type | Description |
|---|---|---|
| ask* | string | free-text information need, e.g. "current guidance for Barrett's surveillance" |
{
"type": "object",
"required": [
"ask"
],
"properties": {
"ask": {
"type": "string",
"maxLength": 500,
"description": "free-text information need, e.g. \"current guidance for Barrett's surveillance\""
}
},
"additionalProperties": false
}Resolve one supplied proposition against governed claims. Only preserved canonical wording or its full explicit negation is certified; lexical candidates and changed qualifiers remain unresolved. Does not search external evidence.
| Argument | Type | Description |
|---|---|---|
| claim* | string |
{
"type": "object",
"required": [
"claim"
],
"properties": {
"claim": {
"type": "string"
}
},
"additionalProperties": false
}Score a governed clinical instrument from structured responses: IBS-SSS (ibs-sss, 5 slider items 0-100 + days×10, total 0-500) and GERD-Q (gerd-q, 6 choice items, total 0-18, ≥8 consistent with GERD). Returns total, percent of max, band label + interpretation, and the instrument citation. Every item is required; invalid/missing responses are rejected without defaulting or clamping. Educational scoring — not a diagnosis. Also POST /api/tools/score-instrument.
| Argument | Type | Description |
|---|---|---|
| responses* | object | item_id → numeric value (see instrument spec at /tools/instruments.json) |
| instrument* | string |
{
"type": "object",
"required": [
"instrument",
"responses"
],
"properties": {
"responses": {
"type": "object",
"description": "item_id → numeric value (see instrument spec at /tools/instruments.json)"
},
"instrument": {
"enum": [
"ibs-sss",
"gerd-q"
],
"type": "string"
}
},
"additionalProperties": false
}Search canonical GI fact-check verifications by free text; returns matching governed claims with canonical /verify/ URLs.
| Argument | Type | Description |
|---|---|---|
| limit | number | |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"maximum": 10
},
"query": {
"type": "string"
}
},
"additionalProperties": false
}Search clinician teaching modules AND patient chapters by free-text query (title, description, and body text); returns matching modules with snippets.
| Argument | Type | Description |
|---|---|---|
| limit | number | |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"maximum": 10
},
"query": {
"type": "string"
}
},
"additionalProperties": false
}Verify one clinical claim against the published corpus root via its Merkle inclusion proof (optionally against a bundle_hash you hold). Returns the claim content only when it is physician-activated or clinician-adjudicated.
| Argument | Type | Description |
|---|---|---|
| claim_id* | string | |
| bundle_hash | string |
{
"type": "object",
"required": [
"claim_id"
],
"properties": {
"claim_id": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{3,40}$"
},
"bundle_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
},
"additionalProperties": false
}