The Gastrologer — GI clinical tools for agents

Physician-governed GI tools: claim verification, teaching retrieval, HRM and instrument scoring

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
70%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,023Tokens (tool definitions)
~584 BTypical response size
Moderate attention impact (1.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "clinical": {
      "url": "https://thegastrologer.com/api/mcp"
    }
  }
}

Remote endpoints

https://thegastrologer.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (15)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_modules

List every clinician teaching module and patient chapter: title, canonical URL, evidence-review date.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢search_teaching(query, limit)

Search clinician teaching modules AND patient chapters by free-text query (title, description, and body text); returns matching modules with snippets.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "number",
      "maximum": 10
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢read_module(slug)

Read ONE module's full teaching text (markdown) with required citation. Not for bulk corpus assembly.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_claims(slug)

Get the claim ledger (claim → evidence rows) for a module, when published.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_evidence_log

Dated evidence-review log for all modules.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_corpus_state

The current GASTROLOGER_CLINICAL_STATE: version, corpus/section/module Merkle roots, counts and hash scheme — pin an answer to an exact knowledge state.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢verify_claim_hash(claim_id, bundle_hash)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "claim_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{3,40}$"
    },
    "bundle_hash": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    }
  },
  "required": [
    "claim_id"
  ],
  "additionalProperties": false
}
🟢check_gi_claim(text)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}
🟢resolve_gi_claim(claim)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string"
    }
  },
  "required": [
    "claim"
  ],
  "additionalProperties": false
}
🟢search_gi_verifications(query, limit)

Search canonical GI fact-check verifications by free text; returns matching governed claims with canonical /verify/ URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "number",
      "maximum": 10
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢get_gi_verification(slug)

Get one canonical verification record (statement, verdict, review date, evidence module, machine URLs) by its slug or claim id.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[A-Za-z0-9-]{3,110}$"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_evidence_bundle(claim_ids, query, locale)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "claim_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z0-9-]{3,40}$"
      },
      "maxItems": 10
    },
    "query": {
      "type": "string",
      "maxLength": 500
    },
    "locale": {
      "type": "string",
      "pattern": "^[a-zA-Z]{2,3}(-[A-Za-z0-9]{2,8})*$"
    }
  },
  "additionalProperties": false
}
🟢classify_hrm_metrics(metrics, manufacturer, position, provocative, secondary_testing)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "metrics": {
      "type": "object",
      "properties": {
        "irp_mmhg": {
          "type": "number"
        },
        "dci_mmhg_cm_s": {
          "type": "number"
        },
        "dl_s": {
          "type": "number"
        },
        "pct_failed": {
          "type": "number"
        },
        "pct_panesophageal": {
          "type": "number"
        },
        "pct_premature": {
          "type": "number"
        },
        "pct_hypercontractile": {
          "type": "number"
        },
        "pct_weak": {
          "type": "number"
        },
        "pct_fragmented": {
          "type": "number"
        }
      }
    },
    "manufacturer": {
      "type": "string",
      "enum": [
        "Medtronic",
        "Laborie",
        "Diversatek",
        "Unknown"
      ]
    },
    "position": {
      "type": "string",
      "enum": [
        "supine",
        "upright"
      ]
    },
    "provocative": {
      "type": "object"
    },
    "secondary_testing": {
      "type": "object"
    }
  },
  "required": [
    "metrics"
  ],
  "additionalProperties": false
}
🟢score_clinical_instrument(instrument, responses)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "instrument": {
      "type": "string",
      "enum": [
        "ibs-sss",
        "gerd-q"
      ]
    },
    "responses": {
      "type": "object",
      "description": "item_id → numeric value (see instrument spec at /tools/instruments.json)"
    }
  },
  "required": [
    "instrument",
    "responses"
  ],
  "additionalProperties": false
}
🟢query_relations(node, predicate, kind, claim_id, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "node": {
      "type": "string",
      "description": "substring match against subject_id/object_id"
    },
    "predicate": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "description": "filter subject_kind or object_kind (disease, medication, test, finding, guideline, risk_factor, mechanism, intervention)"
    },
    "claim_id": {
      "type": "string"
    },
    "limit": {
      "type": "number",
      "maximum": 25
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded15 tools