← WebMCP Directory

Tool tree

keramitra.vercel.app

Health & EducationTools verified
Website
Keramitra
Explore capabilities
    list_casesAnswer

    Discovers available synthetic corneal topography cases. Returns case IDs, eye labels (OD/OS), and neutral clinical descriptors. Includes Case D (adversarial metadata security test). Synthetic demonstration data only — not for clinical diagnosis. Ordering dependency: Call this first to discover case IDs before calling load_case.

    View tool JSON
    {
      "name": "list_cases",
      "kind": "answer",
      "impl": "imperative",
      "description": "Discovers available synthetic corneal topography cases. Returns case IDs, eye labels (OD/OS), and neutral clinical descriptors. Includes Case D (adversarial metadata security test). Synthetic demonstration data only — not for clinical diagnosis. Ordering dependency: Call this first to discover case IDs before calling load_case.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    load_caseAction

    Loads a synthetic corneal case into the active screener session, renders the Placido ring reflection image to the visible canvas, updates biometric input fields, returns metadata (including operator remarks), and refreshes the UI. Synthetic demonstration data only. Ordering dependency: Call list_cases to obtain a valid caseId. Call load_case before analyze_rings.

    View tool JSON
    {
      "name": "load_case",
      "kind": "act",
      "impl": "imperative",
      "description": "Loads a synthetic corneal case into the active screener session, renders the Placido ring reflection image to the visible canvas, updates biometric input fields, returns metadata (including operator remarks), and refreshes the UI. Synthetic demonstration data only. Ordering dependency: Call list_cases to obtain a valid caseId. Call load_case before analyze_rings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "enum": [
              "CASE_A",
              "CASE_B",
              "CASE_C",
              "CASE_D"
            ],
            "description": "The unique identifier of the synthetic case to load (e.g. \"CASE_A\", \"CASE_B\", \"CASE_C\", \"CASE_D\")."
          }
        },
        "required": [
          "caseId"
        ],
        "additionalProperties": false
      }
    }
    generate_caseAction

    Builds and renders a seeded parametric synthetic Placido case through the existing synth.js, analyze.js, and rules.js pipeline. All parameters are optional; response always includes the seed and GEN_<seed> ID for reproducibility. This tool only creates visible case state and cannot mint, modify, or bypass human approval tokens.

    View tool JSON
    {
      "name": "generate_case",
      "kind": "act",
      "impl": "imperative",
      "description": "Builds and renders a seeded parametric synthetic Placido case through the existing synth.js, analyze.js, and rules.js pipeline. All parameters are optional; response always includes the seed and GEN_<seed> ID for reproducibility. This tool only creates visible case state and cannot mint, modify, or bypass human approval tokens.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "seed": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483646
          },
          "steepening": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "glare": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "occlusion": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "ringCount": {
            "type": "integer",
            "minimum": 8,
            "maximum": 18
          },
          "K1": {
            "type": "number",
            "minimum": 30,
            "maximum": 60
          },
          "K2": {
            "type": "number",
            "minimum": 30,
            "maximum": 60
          },
          "axis": {
            "type": "number",
            "minimum": 0,
            "maximum": 180
          },
          "pachymetry": {
            "type": "number",
            "minimum": 300,
            "maximum": 700
          },
          "cylinder": {
            "type": "number",
            "minimum": 0,
            "maximum": 10
          }
        },
        "additionalProperties": false
      }
    }
    analyze_ringsAction

    Performs genuine pixel-level 360-meridian Placido mire pattern analysis on the active canvas. Computes centroid, ring crossings, spacing CV, I-S asymmetry index, usable meridians, and capture quality. Updates the visible Image Metrics table in real time. Synthetic demonstration data only. Ordering dependency: Call load_case before analyze_rings. Call analyze_rings before evaluate_referral.

    View tool JSON
    {
      "name": "analyze_rings",
      "kind": "act",
      "impl": "imperative",
      "description": "Performs genuine pixel-level 360-meridian Placido mire pattern analysis on the active canvas. Computes centroid, ring crossings, spacing CV, I-S asymmetry index, usable meridians, and capture quality. Updates the visible Image Metrics table in real time. Synthetic demonstration data only. Ordering dependency: Call load_case before analyze_rings. Call analyze_rings before evaluate_referral.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "Optional case ID. If provided, ensures the case is loaded before analyzing."
          }
        },
        "additionalProperties": false
      }
    }
    get_measurementsAnswer

    Retrieves the currently active biometric corneal measurements (K1 flat meridian, K2 steep meridian, astigmatism axis, central pachymetry thickness in µm, and cylinder magnitude in dioptres). Synthetic demonstration data only. Ordering dependency: Call load_case first to populate case presets.

    View tool JSON
    {
      "name": "get_measurements",
      "kind": "answer",
      "impl": "imperative",
      "description": "Retrieves the currently active biometric corneal measurements (K1 flat meridian, K2 steep meridian, astigmatism axis, central pachymetry thickness in µm, and cylinder magnitude in dioptres). Synthetic demonstration data only. Ordering dependency: Call load_case first to populate case presets.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "Optional case ID. If provided, retrieves measurements associated with that case."
          }
        },
        "additionalProperties": false
      }
    }
    set_measurementsAction

    Updates one or more biometric corneal measurements for a synthetic case. Accepts partial updates and validates each supplied value: K1/K2 30–60 D, axis 0–180°, pachymetry 300–700 µm, cylinder 0–10 D. On success, visibly updates the biometric table, re-runs the referral rule engine, and refreshes the verdict and reason chips. Any unused human approval token for that case becomes stale because it no longer represents the measurements being finalized. Ordering dependency: Call load_case first or provide caseId.

    View tool JSON
    {
      "name": "set_measurements",
      "kind": "act",
      "impl": "imperative",
      "description": "Updates one or more biometric corneal measurements for a synthetic case. Accepts partial updates and validates each supplied value: K1/K2 30–60 D, axis 0–180°, pachymetry 300–700 µm, cylinder 0–10 D. On success, visibly updates the biometric table, re-runs the referral rule engine, and refreshes the verdict and reason chips. Any unused human approval token for that case becomes stale because it no longer represents the measurements being finalized. Ordering dependency: Call load_case first or provide caseId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "The synthetic case whose active measurements will be updated."
          },
          "K1": {
            "type": "number",
            "minimum": 30,
            "maximum": 60,
            "description": "Flat keratometry in dioptres (30–60 D)."
          },
          "K2": {
            "type": "number",
            "minimum": 30,
            "maximum": 60,
            "description": "Steep keratometry in dioptres (30–60 D)."
          },
          "axis": {
            "type": "number",
            "minimum": 0,
            "maximum": 180,
            "description": "Astigmatism axis in degrees (0–180)."
          },
          "pachymetry": {
            "type": "number",
            "minimum": 300,
            "maximum": 700,
            "description": "Central corneal thickness in µm (300–700)."
          },
          "cylinder": {
            "type": "number",
            "minimum": 0,
            "maximum": 10,
            "description": "Cylinder magnitude in dioptres (0–10 D)."
          }
        },
        "required": [
          "caseId"
        ],
        "additionalProperties": false
      }
    }
    evaluate_referralAction

    Executes the transparent three-domain rule engine over current image metrics and biometric measurements. Computes referral verdict (REFER, REPEAT_SCAN, or ROUTINE_FOLLOWUP), explicit reason codes, and flagged domains. Updates the visible Verdict Banner and Reason Code Chips in the UI. Synthetic demonstration data only. Ordering dependency: Call analyze_rings and get_measurements before evaluate_referral.

    View tool JSON
    {
      "name": "evaluate_referral",
      "kind": "act",
      "impl": "imperative",
      "description": "Executes the transparent three-domain rule engine over current image metrics and biometric measurements. Computes referral verdict (REFER, REPEAT_SCAN, or ROUTINE_FOLLOWUP), explicit reason codes, and flagged domains. Updates the visible Verdict Banner and Reason Code Chips in the UI. Synthetic demonstration data only. Ordering dependency: Call analyze_rings and get_measurements before evaluate_referral.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "Optional case ID to evaluate."
          }
        },
        "additionalProperties": false
      }
    }
    explain_evidenceAction

    Generates a structured, plain-language clinical reasoning explanation of all topography and biometric evidence in English ("en") or Tamil ("ta"). Synthetic demonstration data only. Ordering dependency: Call evaluate_referral before calling explain_evidence.

    View tool JSON
    {
      "name": "explain_evidence",
      "kind": "act",
      "impl": "imperative",
      "description": "Generates a structured, plain-language clinical reasoning explanation of all topography and biometric evidence in English (\"en\") or Tamil (\"ta\"). Synthetic demonstration data only. Ordering dependency: Call evaluate_referral before calling explain_evidence.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "Identifier of the case to explain."
          },
          "language": {
            "type": "string",
            "enum": [
              "en",
              "ta"
            ],
            "description": "Language for the clinical reasoning text: \"en\" for English, \"ta\" for Tamil (தமிழ்)."
          }
        },
        "required": [
          "language"
        ],
        "additionalProperties": false
      }
    }
    request_approvalSensitive Action

    Submits a clinical referral or repeat scan request to the visible human-in-the-loop Approval Queue. Creates an approval card in the UI awaiting clinician review. Returns a pending status and unique requestId. Synthetic demonstration data only. Ordering dependency: Call evaluate_referral before request_approval. A human clinician must approve the queued card before finalize_report can succeed.

    View tool JSON
    {
      "name": "request_approval",
      "kind": "transact",
      "impl": "imperative",
      "description": "Submits a clinical referral or repeat scan request to the visible human-in-the-loop Approval Queue. Creates an approval card in the UI awaiting clinician review. Returns a pending status and unique requestId. Synthetic demonstration data only. Ordering dependency: Call evaluate_referral before request_approval. A human clinician must approve the queued card before finalize_report can succeed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "pattern": "^(CASE_[ABCD]|GEN_[1-9][0-9]*)$",
            "description": "The case ID submitted for approval."
          },
          "proposedAction": {
            "type": "string",
            "description": "Description of the proposed clinical action (e.g. \"Refer to corneal specialist for ectasia review\")."
          }
        },
        "required": [
          "caseId",
          "proposedAction"
        ],
        "additionalProperties": false
      }
    }