Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,526Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:2505f92282514139fd2cd2fca684b013b6278201ce033812e39cd24242b400a3
What it is
What a remote MCP server returned when asked what it offers: 87 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Find all access pathways for a GLP-1 drug (Ozempic, Wegovy, Mounjaro, Zepbound) given patient eligibility factors. Ranks pathways by monthly cost, flags prior-authorization rules and step-therapy, and returns the recommended appeal strategy if denial is likely.\n\nWHEN TO USE: User specifically asks about GLP-1 drugs (Ozempic, Wegovy, Mounjaro, Zepbound) — coverage, prior-auth strategy, step-therapy alternatives.\n\nWHEN NOT: For non-GLP-1 prescriptions (use optimize_prescription).", "inputSchema": { "properties": { "bmi": { "type": "number" }, "current_copay": { "type": "number" }, "has_cvd": { "type": "boolean" }, "has_diabetes": { "type": "boolean" }, "insurer": { "type": "string" }, "medicare": { "type": "boolean" }, "state": { "type": "string" }, "tried_step_therapy": { "description": "Drug names already tried under step therapy, e.g. ['metformin'].", "items": { "type": "string" }, "type": "array" } }, "required": [ "insurer", "bmi" ], "type": "object" }, "name": "analyze_glp1_pathways", "outputSchema": null }, { "description": "[Taxonomy VII.120 — baseline response (public data only)] Generate component arguments for an appeal letter: medical-necessity, contract, policy.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.\n\nEXAMPLES:\n- Argument blocks for CO-50 with UHC: `{\"denial_code\":\"CO-50\",\"insurer\":\"UnitedHealthcare\"}`", "inputSchema": { "properties": { "cpt_code": { "type": "string" }, "denial_code": { "type": "string" }, "icd10_code": { "type": "string" }, "insurer": { "type": "string" } }, "type": "object" }, "name": "appeal_argument_generator", "outputSchema": null }, { "description": "[Taxonomy VII.129 — baseline response (public data only)] Find the correct escalation path for a denied claim (internal appeal → external review → DOI).\n\nWHEN TO USE: User needs to know the deadlines and agencies for each step of appealing a denial. Pass state (e.g. 'CA') and insurer for state-specific and insurer-specific values.\n\nWHEN NOT: Without state/insurer — still works but returns generic federal defaults. Follow up with state for best answer.\n\nEXAMPLES:\n- CA / UnitedHealthcare escalation path: `{\"state\":\"CA\",\"insurer\":\"UnitedHealthcare\"}`", "inputSchema": { "properties": { "insurer": { "description": "Insurer canonical name, e.g. 'UnitedHealthcare', 'Aetna'. Used to look up payer-specific appeal windows.", "type": "string" }, "state": { "description": "Two-letter US state code. State-specific external-review deadlines and DOI agency URL are returned when we have them (top 16 states).", "type": "string" } }, "type": "object" }, "name": "appeal_escalation_path_finder", "outputSchema": null }, { "description": "[Taxonomy E.25 — delegates to estimate_appeal_success] Given a denial, predict the probability of a successful appeal. Returns probability with 95% CI, sample size, and recommended appeal-strategy tags.\n\nWHEN TO USE: User or caller wants a probabilistic estimate (denial likelihood, appeal success, payment delay, etc.) to decide whether to pursue a path.\n\nWHEN NOT: For hard facts (dollar amounts, code definitions, deadlines). Predictions carry confidence bands; call out the uncertainty when you relay the number.", "inputSchema": { "properties": { "cpt_code": { "type": "string" }, "denial_reason": { "type": "string" }, "insurer": { "type": "string" }, "state": { "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code" ], "type": "object" }, "name": "appeal_success_predictor", "outputSchema": null }, { "description": "Scan multiple medical bills in one call. Returns per-bill anomaly lists + total recovery estimate across the batch. Input is a list of {bill_text, provider?, insurer?} items (max 10 per call). Much faster than serial scan_bill_for_errors when handling a bulk upload.\n\nWHEN TO USE: User has multiple bills or EOBs to review at once (e.g. a family's bills from one visit, or a year of statements).\n\nWHEN NOT: For a single bill (use scan_bill_for_errors).", "inputSchema": { "properties": { "bills": { "items": { "properties": { "bill_text": { "maxLength": 50000, "type": "string" }, "insurer": { "maxLength": 100, "type": "string" }, "provider": { "maxLength": 200, "type": "string" } }, "required": [ "bill_text" ], "type": "object" }, "maxItems": 10, "type": "array" } }, "required": [ "bills" ], "type": "object" }, "name": "batch_scan_bills", "outputSchema": null }, { "description": "[Taxonomy X.179 — baseline response (public data only)] Predict risk that a planned service will trigger an unexpected large bill.\n\nWHEN TO USE: User planning a service and wants to know if it will trigger an unexpected-large-bill situation. Pass expected_charge_usd and optionally cpt_code to get Medicare-ratio context.\n\nWHEN NOT: For a bill already received — scan_bill_for_errors first.\n\nEXAMPLES:\n- Check shock risk on $5,000 office visit: `{\"expected_charge_usd\":5000,\"cpt_code\":\"99213\"}`", "inputSchema": { "properties": { "cpt_code": { "description": "Optional CPT code; when provided, the response includes the Medicare national rate and charge-to-Medicare ratio.", "type": "string" }, "expected_charge_usd": { "description": "The expected out-of-pocket charge in USD (no currency symbol).", "type": "number" }, "threshold_usd": { "description": "Override the default shock threshold (default = KFF 2024 average individual deductible = $1,735).", "type": "number" } }, "required": [ "expected_charge_usd" ], "type": "object" }, "name": "bill_shock_predictor", "outputSchema": null }, { "description": "[Taxonomy III.51 — baseline response (public data only)] Delta between billed charge and payer-allowed amount for a claim line.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "properties": { "allowed_usd": { "type": "number" }, "billed_usd": { "type": "number" } }, "required": [ "billed_usd", "allowed_usd" ], "type": "object" }, "name": "billing_charge_vs_allowed_delta", "outputSchema": null }, { "description": "[Taxonomy C.16 — delegates to scan_bill_for_errors] Detect CPT unbundling (billing components of a procedure separately to inflate the claim). Uses the CMS NCCI edits plus payer-specific bundling rules.\n\nWHEN TO USE: Caller is building or validating a claim payload before submission — format, structure, completeness, alignment.\n\nWHEN NOT: For an already-submitted and denied claim, use generate_appeal_letter. For market pricing context, use benchmark_payer_rate.", "inputSchema": { "properties": { "cpt_codes": { "items": { "type": "string" }, "type": "array" }, "dos": { "description": "Date of service, YYYY-MM-DD.", "type": "string" }, "payer": { "type": "string" } }, "required": [ "cpt_codes" ], "type": "object" }, "name": "bundling_violation_detector", "outputSchema": null }, { "description": "[Taxonomy III.39 — baseline response (public data only)] Estimate a fair cash price for a service in a given region (no-insurance path).\n\nWHEN TO USE: Uninsured/self-pay user wants a fair-market cash price for a service. Returns Medicare national as a floor + commercial-multiple band.\n\nWHEN NOT: For insurance-covered scenarios (deductible_impact_calculator + coinsurance_simulator).\n\nEXAMPLES:\n- Cash price for office visit: `{\"cpt_code\":\"99213\",\"zip3\":\"902\"}`", "inputSchema": { "properties": { "cpt_code": { "type": "string" }, "zip3": { "type": "string" } }, "required": [ "cpt_code" ], "type": "object" }, "name": "cash_price_estimator", "outputSchema": null }, { "description": "[Taxonomy H.41 — baseline response (public data only)] For a given service + patient plan, determine whether cash-pay + charity-care beats insurance billing.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "properties": { "cash_price": { "type": "number" }, "cpt_code": { "type": "string" }, "deductible_remaining": { "type": "number" }, "insurance_cost_estimate": { "type": "number" } }, "required": [ "cpt_code" ], "type": "object" }, "name": "cash_vs_insurance_optimizer", "outputSchema": null }, { "description": "[Taxonomy C.14 — delegates to scan_bill_for_errors] Detect internal contradictions in a claim: time mismatches, mutually exclusive codes, missing required fields, patient-gender/procedure mismatches.\n\nWHEN TO USE: Caller is building or validating a claim payload before submission — format, structure, completeness, alignment.\n\nWHEN NOT: For an already-submitted and denied claim, use generate_appeal_letter. For market pricing context, use benchmark_payer_rate.", "inputSchema": { "properties": { "claim_payload": { "description": "Structured claim (CPT + ICD + dates + amounts).", "type": "object" } }, "required": [ "claim_payload" ], "type": "object" }, "name": "claim_consistency_checker", "outputSchema": null }, { "description": "[Taxonomy IV.75 — baseline response (public data only)] Detect duplicated service lines within a single claim.\n\nWHEN TO USE: Caller is building or validating a claim payload before submission — format, structure, completeness, alignment.\n\nWHEN NOT: For an already-submitted and denied claim, use generate_appeal_letter. For market pricing context, use benchmark_payer_rate.", "inputSchema": { "properties": { "claim": { "type": "object" } }, "required": [ "claim" ], "type": "object" }, "name": "claim_duplicate_line_detector", "outputSchema": null }, { "description": "[Taxonomy VII.128 — baseline response (public data only)] Generate a rebuttal to a payer's denial rationale point-by-point.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "claim_rebuttal_generator", "outputSchema": null }, { "description": "[Taxonomy VII.132 — baseline response (public data only)] Build a claim reconsideration request (lighter-weight than a formal appeal).\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "claim_reconsideration_builder", "outputSchema": null }, { "description": "[Taxonomy II.25 — baseline response (public data only)] Check a set of CPT codes against NCCI bundling rules (distinct from modifier-based unbundling).\n\nWHEN TO USE: User asks about medical codes: what a CPT/ICD/HCPCS code means, whether a code combination is valid, or how to map between them.\n\nWHEN NOT: For full bill scans (use scan_bill_for_errors). For appealing a coding-related denial (use generate_appeal_letter).", "inputSchema": { "properties": { "cpt_codes": { "description": "Array of CPT codes to check for NCCI bundling violations.", "items": { "type": "string" }, "type": "array" } }, "required": [ "cpt_codes" ], "type": "object" }, "name": "code_bundle_validator", "outputSchema": null }, { "description": "[Taxonomy A.5 — delegates to scan_bill_for_errors] Detect CPT unbundling, mutually exclusive code pairs, and NCCI edit violations in a set of codes. Implemented by the bill scanner's anomaly engine.\n\nWHEN TO USE: User asks about medical codes: what a CPT/ICD/HCPCS code means, whether a code combination is valid, or how to map between them.\n\nWHEN NOT: For full bill scans (use scan_bill_for_errors). For appealing a coding-related denial (use generate_appeal_letter).", "inputSchema": { "properties": { "cpt_codes": { "description": "Array of CPT codes to check for conflicts.", "items": { "type": "string" }, "type": "array" }, "icd10_codes": { "description": "Optional diagnosis codes for medical-necessity conflict checks.", "items": { "type": "string" }, "type": "array" } }, "required": [ "cpt_codes" ], "type": "object" }, "name": "code_conflict_detector", "outputSchema": null }, { "description": "[Taxonomy III.49 — baseline response (public data only)] Simulate member coinsurance exposure across plan-design variants.\n\nWHEN TO USE: User wants to model their coinsurance share of a post-deductible charge. Pass charge_usd and optionally coinsurance_rate.\n\nWHEN NOT: For flat-copay services (copay_model).\n\nEXAMPLES:\n- Simulate 20% coinsurance on $1K: `{\"charge_usd\":1000,\"coinsurance_rate\":0.2}`", "inputSchema": { "properties": { "charge_usd": { "type": "number" }, "coinsurance_rate": { "description": "Coinsurance rate as a decimal (e.g. 0.20 for 20%). Default is KFF 2024 avg (18%).", "maximum": 1, "minimum": 0, "type": "number" } }, "required": [ "charge_usd" ], "type": "object" }, "name": "coinsurance_simulator", "outputSchema": null }, { "description": "[Taxonomy III.50 — baseline response (public data only)] Model member copay for a service by plan-design class.\n\nWHEN TO USE: User wants the typical copay for a service type (primary / specialist / er). Uses KFF EHBS 2024 averages.\n\nWHEN NOT: For patient-specific plan details — copay varies by plan design.\n\nEXAMPLES:\n- Typical specialist copay: `{\"service_type\":\"specialist\"}`", "inputSchema": { "properties": { "service_type": { "description": "Service category. Returns KFF EHBS 2024 average copay for that category.", "enum": [ "primary", "specialist", "er", "emergency" ], "type": "string" } }, "type": "object" }, "name": "copay_model", "outputSchema": null }, { "description": "[Taxonomy II.21 — baseline response (public data only)] For a given CPT, surface the ICD-10 codes typically paired with it for medical-necessity support.\n\nWHEN TO USE: User has a CPT code and wants to know what ICD-10 diagnoses commonly pair with it for medical-necessity support.\n\nWHEN NOT: For specific payer policy lookups (code_validation).\n\nEXAMPLES:\n- Common ICDs for 99213: `{\"cpt_code\":\"99213\"}`", "inputSchema": { "properties": { "cpt_code": { "description": "Single CPT/HCPCS code, e.g. '99213'. Returns common ICD-10 pairings from the public co-occurrence table.", "type": "string" } }, "required": [ "cpt_code" ], "type": "object" }, "name": "cpt_to_icd_mapper", "outputSchema": null }, { "description": "Decode a CARC (Claim Adjustment Reason Code) denial code into plain English. Returns meaning, category, whether it's typically reversible on appeal, and appeal guidance. Source: public X12 External Code List + CMS/ERISA public rules. Free, no auth.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "carc_code": { "description": "CARC/RARC code, e.g. 'CO-16', '16', 'CO-50'.", "maxLength": 20, "type": "string" } }, "required": [ "carc_code" ], "type": "object" }, "name": "decode_denial", "outputSchema": null }, { "description": "[Taxonomy III.48 — baseline response (public data only)] Estimate how a planned service will draw against the member's deductible.\n\nWHEN TO USE: User wants to know how a specific charge affects their deductible (how much draws down, remaining after, post-deductible exposure).\n\nWHEN NOT: For total annual out-of-pocket across a year (healthcare_budget_forecaster).\n\nEXAMPLES:\n- Compute deductible drawdown for $4K charge: `{\"charge_usd\":4000,\"deductible_remaining_usd\":1735}`", "inputSchema": { "properties": { "charge_usd": { "type": "number" }, "deductible_remaining_usd": { "type": "number" } }, "required": [ "charge_usd" ], "type": "object" }, "name": "deductible_impact_calculator", "outputSchema": null }, { "description": "[Taxonomy VII.131 — baseline response (public data only)] Explain a CARC/RARC denial code in plain language with common causes.\n\nWHEN TO USE: User asks 'what does CO-16 mean' or similar — any CARC/RARC code. Returns full X12 table entry when available with meaning, category, typical root cause, primary remediation, and reversibility flag.\n\nWHEN NOT: For drafting an appeal (generate_appeal_letter). For the full escalation path (appeal_escalation_path_finder).\n\nEXAMPLES:\n- Explain CARC CO-16: `{\"code\":\"CO-16\"}`\n- Explain CARC CO-50 (medical necessity): `{\"code\":\"CO-50\"}`", "inputSchema": { "properties": { "code": { "description": "CARC/RARC denial code only, e.g. 'CO-16', 'CO-50', 'PR-1'. The tool looks up the code in the public X12 table. Passing the full expanded reason is tolerated (prefix extracted automatically) but the short code is preferred.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "name": "denial_code_explainer", "outputSchema": null }, { "description": "[Taxonomy VI.106 — baseline response (public data only)] Classify a denial letter or remittance advice into normalized denial-reason categories.\n\nWHEN TO USE: User or caller wants a probabilistic estimate (denial likelihood, appeal success, payment delay, etc.) to decide whether to pursue a path.\n\nWHEN NOT: For hard facts (dollar amounts, code definitions, deadlines). Predictions carry confidence bands; call out the uncertainty when you relay the number.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "denial_reason_classifier", "outputSchema": null }, { "description": "[Taxonomy VII.121 — baseline response (public data only)] Build a denial-response package tailored to the denial reason code.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.\n\nEXAMPLES:\n- Build response package for CO-197: `{\"denial_reason\":\"CO-197\",\"insurer\":\"Aetna\",\"cpt_code\":\"45378\",\"amount\":1850}`", "inputSchema": { "properties": { "amount": { "type": "number" }, "cpt_code": { "type": "string" }, "denial_reason": { "description": "CARC denial code, e.g. 'CO-16'.", "type": "string" }, "insurer": { "type": "string" } }, "type": "object" }, "name": "denial_response_builder", "outputSchema": null }, { "description": "[Taxonomy VII.123 — baseline response (public data only)] Assemble a complete dispute case file including claim, denial, evidence, and timeline.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "dispute_case_builder", "outputSchema": null }, { "description": "Probability an appeal will be approved, derived from outcome-labeled data weighted by label provenance (IRO determinations, EOB reversals, physician confirmations). Returns probability + 95% CI + sample_size + expected_days_to_resolution + tracking_id. Report the actual outcome later via POST /api/outcomes/record with the same tracking_id to improve future estimates.\n\nWHEN TO USE: User or caller wants probability-of-reversal before spending time on an appeal. Returns probability + confidence interval.\n\nWHEN NOT: For picking among multiple appeal strategies (appeal_strategy_success_model). As a stand-alone — usually chain into generate_appeal_letter.\n\nEXAMPLES:\n- Gauge CO-50 appeal odds on Aetna: `{\"insurer\":\"Aetna\",\"denial_reason\":\"CO-50\",\"cpt_code\":\"72148\",\"state\":\"TX\",\"amount\":1200}`", "inputSchema": { "properties": { "amount": { "type": "number" }, "cpt_code": { "type": "string" }, "denial_reason": { "description": "medical_necessity | prior_auth | out_of_network | experimental | coding_error", "type": "string" }, "diagnosis": { "maxLength": 200, "type": "string" }, "insurer": { "type": "string" }, "state": { "maxLength": 2, "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code" ], "type": "object" }, "name": "estimate_appeal_success", "outputSchema": null }, { "description": "[Taxonomy VII.124 — baseline response (public data only)] Generate an evidence package supporting a claim or appeal (references, studies, policies).\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "evidence_pack_generator", "outputSchema": null }, { "description": "Human-readable rationale for an appeal probability. Returns {probability, tier, recommended_posture, rationale, expected_days_to_resolution, tracking_id} grounded in aggregate outcome rates — not model feature weights. Use this when the caller wants 'why' in plain English alongside the number.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "amount": { "type": "number" }, "cpt_code": { "type": "string" }, "denial_reason": { "type": "string" }, "diagnosis": { "maxLength": 200, "type": "string" }, "insurer": { "type": "string" }, "state": { "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code" ], "type": "object" }, "name": "explain_appeal_success", "outputSchema": null }, { "description": "[Taxonomy B.8 — delegates to benchmark_payer_rate] Fair-market price distribution for a service: DP-noised percentiles (p10, p25, p50, p75, p90) for the given CPT in a ZIP3 region.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "properties": { "cpt_code": { "type": "string" }, "insurer": { "description": "Optional insurer for payer-specific distribution.", "type": "string" }, "zip3": { "description": "First 3 digits of ZIP.", "type": "string" } }, "required": [ "cpt_code", "zip3" ], "type": "object" }, "name": "fair_price_estimator", "outputSchema": null }, { "description": "[Taxonomy X.181 — baseline response (public data only)] Find applicable financial-assistance programs (hospital charity, 340B, state, pharma).\n\nWHEN TO USE: User needs help paying a medical bill. Pass household_income_usd and family_size for FPL-based eligibility flags across 6 programs (501(r) charity, Medicaid, PE, manufacturer PAPs, 340B, state pools).\n\nWHEN NOT: For insured users with low exposure (use coinsurance_simulator or deductible_impact_calculator).\n\nEXAMPLES:\n- Find assistance for family of 3 at $45K income: `{\"household_income_usd\":45000,\"family_size\":3}`", "inputSchema": { "properties": { "family_size": { "description": "Number of people in the household. Used to compute FPL threshold.", "minimum": 1, "type": "integer" }, "household_income_usd": { "description": "Annual household income in USD. When provided, tool computes FPL ratio and flags likely-eligible programs.", "type": "number" } }, "type": "object" }, "name": "financial_assistance_finder", "outputSchema": null }, { "description": "[Taxonomy X.176 — delegates to financial_risk_exposure_model] Model a member's financial exposure. Alias of financial_risk_exposure_model.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "financial_exposure_model", "outputSchema": null }, { "description": "[Taxonomy H.42 — baseline response (public data only)] Quantify a patient's financial exposure to medical-debt risk given current plan, health status, and historical claim volatility.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "properties": { "chronic_conditions": { "items": { "type": "string" }, "type": "array" }, "emergency_savings": { "type": "number" }, "household_income": { "type": "number" }, "plan_id": { "type": "string" } }, "required": [ "plan_id" ], "type": "object" }, "name": "financial_risk_exposure_model", "outputSchema": null }, { "description": "Format an LLM-citable reference to a previously-attested Medigami MCP response. Input: either the full signed envelope that an earlier attested tool returned, OR just a tracking_id. Returns a short citation string, a public verification URL a third party can open to inspect and cryptographically verify the payload, and a long-form attribution block. Use this after any substantive Medigami tool call (scan, estimate, resolve, benchmark) so the user has a verifiable reference to the specific answer and its expiration date.\n\nWHEN TO USE: After a substantive tool call, generate a citable string + short URL the LLM can paste into its user-facing response for later verification.\n\nWHEN NOT: For non-substantive lookups where citation is unnecessary.\n\nEXAMPLES:\n- Generate a citable URL from a tracking_id: `{\"tracking_id\":\"evt_abc123\"}`", "inputSchema": { "properties": { "envelope": { "description": "Full signed envelope returned by an attested Medigami tool (preferred).", "type": "object" }, "format": { "description": "short = one-line citation string; long = paragraph attribution; both = return both (default).", "enum": [ "short", "long", "both" ], "type": "string" }, "tracking_id": { "description": "tracking_id alone; the resulting URL will still render but the third party must paste the envelope into the verifier form.", "maxLength": 32, "type": "string" } }, "required": [], "type": "object" }, "name": "format_citation", "outputSchema": null }, { "description": "DEPRECATED ALIAS of format_citation — kept for backward compatibility with v0.1.7 clients. New code should call format_citation directly.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "envelope": { "description": "Full signed envelope returned by an attested Medigami tool (preferred).", "type": "object" }, "format": { "description": "short = one-line citation string; long = paragraph attribution; both = return both (default).", "enum": [ "short", "long", "both" ], "type": "string" }, "tracking_id": { "description": "tracking_id alone; the resulting URL will still render but the third party must paste the envelope into the verifier form.", "maxLength": 32, "type": "string" } }, "required": [], "type": "object" }, "name": "format_medigami_citation", "outputSchema": null }, { "description": "Generate a legally-grounded insurance appeal letter for a denied claim. Returns the letter as a template with [PATIENT NAME] and [PROVIDER NAME] placeholders (structured-only PHI posture). Includes legal citations, recommended attachments, and appeal-deadline calendar.\n\nWHEN TO USE: User has a specific claim denied and wants a drafted appeal letter. Requires insurer, denial_reason (CARC code), cpt_code, diagnosis (ICD-10), and dollar amount. Returns an attested letter with reversal rate, insurer-specific tips, recommended attachments.\n\nWHEN NOT: If the user only wants to understand a denial code, use denial_code_explainer first. If they haven't received a formal denial yet, don't draft — clarify status first. For non-CARC disputes (e.g. billing errors pre-adjudication), use scan_bill_for_errors.\n\nEXAMPLES:\n- Draft CO-16 appeal to UHC for office visit: `{\"insurer\":\"UnitedHealthcare\",\"d...", "inputSchema": { "properties": { "amount": { "description": "Dollar amount in dispute (number, no currency symbol).", "type": "number" }, "cpt_code": { "description": "Single CPT/HCPCS code, e.g. '99213' or 'J0585'.", "maxLength": 10, "type": "string" }, "denial_reason": { "description": "CARC/RARC denial code, e.g. 'CO-16' or 'CO-97'. Code only — do NOT include the human-readable expansion of the code.", "maxLength": 50, "type": "string" }, "diagnosis": { "description": "Single ICD-10 code, e.g. 'I10' or 'E11.9'.", "maxLength": 20, "type": "string" }, "insurer": { "description": "Insurer canonical name, e.g. 'UnitedHealthcare', 'Aetna'.", "maxLength": 100, "type": "string" }, "state": { "description": "Two-letter US state code for state-specific disclaimers.", "maxLength": 2, "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code", "diagnosis", "amount" ], "type": "object" }, "name": "generate_appeal_letter", "outputSchema": null }, { "description": "[Taxonomy F.28 — delegates to generate_appeal_letter] [Taxonomy alias] Generate a state-specific insurance appeal letter with UPL-safe disclaimers for 19 US states. Same impl as generate_appeal_letter.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "properties": { "amount": { "type": "number" }, "cpt_code": { "type": "string" }, "denial_reason": { "type": "string" }, "diagnosis": { "type": "string" }, "insurer": { "type": "string" }, "state": { "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code", "diagnosis", "amount" ], "type": "object" }, "name": "generate_appeal_letter_v2", "outputSchema": null }, { "description": "External-review filing deadline for a state + the date of the FINAL adverse determination. Returns the deadline date, the statutory window label + citation, and whether the exact state-specific window still needs verification (most states carry a conservative NAIC-model 4-month floor unless statute-confirmed, e.g. CA/NY). Free, no auth.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "denial_date": { "description": "ISO date (YYYY-MM-DD) of the FINAL adverse determination", "maxLength": 10, "type": "string" }, "state": { "description": "2-letter US state", "maxLength": 2, "type": "string" } }, "required": [ "denial_date" ], "type": "object" }, "name": "get_appeal_deadline", "outputSchema": null }, { "description": "Where and how to file an external review for a given state — the venue name, filing channel (portal/mail/fax), portal URL, and whether expedited review is available. Free, no auth.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "state": { "description": "2-letter US state", "maxLength": 2, "type": "string" } }, "type": "object" }, "name": "get_venue", "outputSchema": null }, { "description": "[Taxonomy X.183 — baseline response (public data only)] Forecast a household's annual healthcare spend based on plan + utilization.\n\nWHEN TO USE: User planning annual healthcare spend, comparing plans, or estimating worst-case exposure.\n\nWHEN NOT: For a specific procedure cost (benchmark_payer_rate).\n\nEXAMPLES:\n- Forecast annual spend range: `{}`", "inputSchema": { "properties": { "plan_deductible_usd": { "type": "number" }, "plan_oop_max_usd": { "type": "number" } }, "type": "object" }, "name": "healthcare_budget_forecaster", "outputSchema": null }, { "description": "[Taxonomy II.22 — baseline response (public data only)] For a given ICD-10, surface the CPT codes typically billed for that diagnosis.\n\nWHEN TO USE: User has an ICD-10 diagnosis and wants to know what CPTs are commonly billed for it.\n\nWHEN NOT: For planning specific services (use benchmark_payer_rate once the CPT is chosen).\n\nEXAMPLES:\n- Common CPTs for essential hypertension: `{\"icd10_code\":\"I10\"}`", "inputSchema": { "properties": { "icd10_code": { "description": "Single ICD-10-CM code, e.g. 'I10'. Returns common CPT candidates.", "type": "string" } }, "required": [ "icd10_code" ], "type": "object" }, "name": "icd_to_cpt_mapper", "outputSchema": null }, { "description": "[Taxonomy III.46 — baseline response (public data only)] Inflation-adjusted price comparison across years for a CPT.\n\nWHEN TO USE: User has a historical dollar amount and wants it adjusted for medical-care inflation to a given year.\n\nWHEN NOT: For current market prices (benchmark_payer_rate).\n\nEXAMPLES:\n- Adjust $1K 3yr forward at medical CPI: `{\"base_amount_usd\":1000,\"years\":3}`", "inputSchema": { "properties": { "base_amount_usd": { "type": "number" }, "years": { "maximum": 50, "minimum": 0, "type": "number" } }, "required": [ "base_amount_usd", "years" ], "type": "object" }, "name": "inflation_adjusted_price_model", "outputSchema": null }, { "description": "[Taxonomy H.39 — baseline response (public data only)] Given a patient's historical claim patterns, rank available insurance plans by expected annual cost.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "properties": { "chronic_conditions": { "items": { "type": "string" }, "type": "array" }, "historical_spend": { "description": "Prior-year OOP spend.", "type": "number" }, "household_size": { "type": "integer" }, "income_band": { "type": "string" }, "zip_code": { "type": "string" } }, "required": [ "zip_code" ], "type": "object" }, "name": "insurance_plan_optimizer", "outputSchema": null }, { "description": "[Taxonomy F.31 — baseline response (public data only)] Parse an insurer's response letter or EOB into structured fields: denial reason codes, appeal rights, deadlines, next-step recommendations.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "properties": { "response_text": { "description": "Insurer response or EOB text.", "type": "string" }, "response_type": { "enum": [ "denial", "partial_denial", "eob", "appeal_response" ], "type": "string" } }, "required": [ "response_text" ], "type": "object" }, "name": "insurance_response_interpreter", "outputSchema": null }, { "description": "[Taxonomy X.185 — baseline response (public data only)] Recommend insurance-plan selections to maximize value given projected utilization.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "insurance_value_optimizer", "outputSchema": null }, { "description": "Look up a CPT or HCPCS-J code or search by keyword. Covers the most common outpatient billing codes (E/M, preventive, lab, imaging, procedure, cardiology, therapy, behavioral, vaccine, injectable drugs). Note: CPT is a registered trademark of the American Medical Association; full-dataset commercial use requires an AMA license. This tool provides short descriptors for identification in billing-review workflows.\n\nWHEN TO USE: User asks about a specific CPT/HCPCS procedure code or wants to search for codes by procedure description.\n\nWHEN NOT: For the expected ICD pairings (icd_to_cpt_mapper or cpt_to_icd_mapper).\n\nEXAMPLES:\n- Find CPT for routine office visit: `{\"query\":\"office visit established patient\"}`", "inputSchema": { "properties": { "query": { "description": "CPT / HCPCS-J code ('99213', 'J1885') or keyword ('knee MRI', 'colonoscopy').", "maxLength": 200, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "lookup_cpt", "outputSchema": null }, { "description": "Look up an ICD-10-CM diagnosis code or search by keyword. Input is either an exact code (e.g. 'E11.21') or a free-text description phrase ('type 2 diabetes with nephropathy'). Returns either the matching code + description or up to 20 candidate matches. Use when a clinical note uses non-standard phrasing and the correct code is needed for billing.\n\nWHEN TO USE: User asks about a specific ICD-10 diagnosis code or wants RAG-search over ICD-10 for a condition name.\n\nWHEN NOT: For the matching CPT codes (cpt_to_icd_mapper). For code validation against a payer (code_validation).\n\nEXAMPLES:\n- Find ICD-10 for hypertension: `{\"query\":\"essential hypertension\"}`", "inputSchema": { "properties": { "query": { "description": "ICD-10-CM code (e.g. 'I10', 'E11.21') or keyword search.", "maxLength": 200, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "lookup_icd10", "outputSchema": null }, { "description": "Look up a provider in the CMS NPPES National Provider Identifier registry. Accepts a 10-digit NPI number OR a provider name (optionally narrowed by 2-char state). Returns up to 20 matches with entity type, specialty, taxonomy code, address, and status. Source: CMS NPPES public API (free, no key required).\n\nWHEN TO USE: User wants to verify a specific provider by NPI number, or find a provider by name + state.\n\nWHEN NOT: For provider performance analytics (provider_efficiency_score).\n\nEXAMPLES:\n- Look up a provider by NPI number: `{\"npi_number\":\"1234567893\"}`", "inputSchema": { "properties": { "query": { "description": "10-digit NPI (e.g. '1234567890') or provider name ('Jane Smith').", "maxLength": 200, "type": "string" }, "state": { "description": "Optional 2-char state abbreviation to narrow a name search.", "maxLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "lookup_npi", "outputSchema": null }, { "description": "Look up a NUCC provider taxonomy code (the specialty codes used on HIPAA transactions + NPI registrations) or search by keyword. Returns classification + type + optional specialization. Source: NUCC Health Care Provider Taxonomy Code Set (public; CMS-accepted).\n\nWHEN TO USE: Resolving a NUCC provider taxonomy code to its specialty description.\n\nWHEN NOT: For finding a provider by specialty in a region (not yet implemented).", "inputSchema": { "properties": { "query": { "description": "Taxonomy code ('207Q00000X') or keyword ('cardiology', 'pediatrics').", "maxLength": 200, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "lookup_provider_taxonomy", "outputSchema": null }, { "description": "[Taxonomy III.55 — baseline response (public data only)] Full DP-noised market price distribution for a CPT+region pair.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "market_price_distribution_model", "outputSchema": null }, { "description": "Given a prior scan_id, returns a prioritized action list: anomalies ranked by (expected overcharge x recovery probability), with the next steps to pursue each. Use after scan_bill_for_errors.\n\nWHEN TO USE: User has already run scan_bill_for_errors and wants the anomalies ranked by expected dollar recovery.\n\nWHEN NOT: As a first call — always scan first.", "inputSchema": { "properties": { "scan_id": { "type": "string" } }, "required": [ "scan_id" ], "type": "object" }, "name": "maximize_recovery", "outputSchema": null }, { "description": "[Taxonomy X.184 — baseline response (public data only)] Analyze a patient's medical spending over a period and surface optimization opportunities.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "medical_spending_analyzer", "outputSchema": null }, { "description": "Federal appeal-deadline window (ERISA §503 internal-appeal / ACA §2719 external-review / NSA IDR) for a plan type. Public regulator data, k-anonymity floored, not legal advice.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "plan_type": { "description": "e.g. 'self_funded', 'aca_marketplace', 'medicare', 'medicaid'.", "maxLength": 40, "type": "string" }, "state": { "description": "2-letter US state (echoed on the row; the deadline window itself is federal, not state-varying).", "maxLength": 32, "type": "string" } }, "required": [ "state", "plan_type" ], "type": "object" }, "name": "medigami_deadline", "outputSchema": { "additionalProperties": true, "properties": { "as_of": { "type": [ "string", "null" ] }, "basis": { "type": [ "string", "null" ] }, "command": { "type": "string" }, "cta": { "type": "object" }, "permalink": { "type": [ "string", "null" ] }, "refused": { "type": "string" }, "result_kind": { "type": "string" }, "rows": { "type": "array" }, "source_url": { "type": "string" }, "unresolved": { "type": "array" } }, "required": [ "command", "permalink", "source_url" ], "type": "object" } }, { "description": "Historical external-review overturn rate published by the state regulator for the insurer you name, in a regulated venue (CA/NY/MD/NJ/MI/OH/NC). Returns one insurer's own rate — not a comparison or ranking against other insurers. Public regulator data, k-anonymity floored, not legal advice.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "insurer": { "description": "Insurer / payer name.", "maxLength": 100, "type": "string" }, "state": { "description": "Venue state, e.g. 'CA', 'NY'.", "maxLength": 32, "type": "string" } }, "required": [ "insurer", "state" ], "type": "object" }, "name": "medigami_odds", "outputSchema": { "additionalProperties": true, "properties": { "as_of": { "type": [ "string", "null" ] }, "basis": { "type": [ "string", "null" ] }, "command": { "type": "string" }, "cta": { "type": "object" }, "permalink": { "type": [ "string", "null" ] }, "refused": { "type": "string" }, "result_kind": { "type": "string" }, "rows": { "type": "array" }, "source_url": { "type": "string" }, "unresolved": { "type": "array" } }, "required": [ "command", "permalink", "source_url" ], "type": "object" } }, { "description": "A hospital's own MRF-published negotiated rate for a CPT code (no billed-amount comparison — use medigami_roast for that). Public regulator data, k-anonymity floored, not legal advice.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "cpt": { "description": "CPT/HCPCS procedure code.", "maxLength": 10, "type": "string" }, "hospital": { "description": "Hospital / facility name.", "maxLength": 200, "type": "string" } }, "required": [ "hospital", "cpt" ], "type": "object" }, "name": "medigami_rate", "outputSchema": { "additionalProperties": true, "properties": { "as_of": { "type": [ "string", "null" ] }, "basis": { "type": [ "string", "null" ] }, "command": { "type": "string" }, "cta": { "type": "object" }, "permalink": { "type": [ "string", "null" ] }, "refused": { "type": "string" }, "result_kind": { "type": "string" }, "rows": { "type": "array" }, "source_url": { "type": "string" }, "unresolved": { "type": "array" } }, "required": [ "command", "permalink", "source_url" ], "type": "object" } }, { "description": "Compare a billed charge against a hospital's own MRF-published negotiated rate for a CPT code; returns the markup multiple. Public regulator data, k-anonymity floored, not legal advice.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "billed_amount": { "description": "Amount billed, USD.", "minimum": 0, "type": "number" }, "cpt": { "description": "CPT/HCPCS procedure code.", "maxLength": 10, "type": "string" }, "hospital": { "description": "Hospital / facility name.", "maxLength": 200, "type": "string" } }, "required": [ "hospital", "cpt", "billed_amount" ], "type": "object" }, "name": "medigami_roast", "outputSchema": { "additionalProperties": true, "properties": { "as_of": { "type": [ "string", "null" ] }, "basis": { "type": [ "string", "null" ] }, "command": { "type": "string" }, "cta": { "type": "object" }, "permalink": { "type": [ "string", "null" ] }, "refused": { "type": "string" }, "result_kind": { "type": "string" }, "rows": { "type": "array" }, "source_url": { "type": "string" }, "unresolved": { "type": "array" } }, "required": [ "command", "permalink", "source_url" ], "type": "object" } }, { "description": "Generate a phone script the user can read when negotiating a medical bill directly with the provider. Combines DP-noised commercial rate benchmarks + the caller's household income + federal charity-care rules (IRS §501(r)) into three negotiation angles: financial assistance, self-pay discount, and itemized-bill coding review. Returns the script + reference-only benchmark range (for the user's own research, not an insurance-consulting recommendation) + charity-care tier. Output is educational only; the user negotiates on their own behalf. Some states (notably NY, FL, CA) regulate public-adjuster activity — the attached disclaimer references this.\n\nWHEN TO USE: User wants talking points and a target settlement range to negotiate a medical bill with the provider. Best for self-pay and out-of-network balances.\n\nWHEN NOT: For a bill that was denied (generate_appeal_letter — the payer, not ...", "inputSchema": { "properties": { "billed_amount": { "minimum": 1, "type": "number" }, "cpt_code": { "type": "string" }, "household_income_annual": { "minimum": 0, "type": "number" }, "household_size": { "maximum": 20, "minimum": 1, "type": "integer" }, "insurer": { "type": "string" }, "state": { "type": "string" }, "zip3": { "type": "string" } }, "required": [ "cpt_code", "billed_amount" ], "type": "object" }, "name": "negotiate_bill_script", "outputSchema": null }, { "description": "[Taxonomy F.30 — baseline response (public data only)] Given a bill + patient situation, generate a ranked negotiation strategy: hardship appeal, charity-care application, itemization request, phone scripts.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "properties": { "bill_amount": { "type": "number" }, "insurance_status": { "type": "string" }, "provider": { "type": "string" }, "situation": { "enum": [ "uninsured", "underinsured", "hardship", "dispute" ], "type": "string" } }, "required": [ "bill_amount" ], "type": "object" }, "name": "negotiation_strategy_generator", "outputSchema": null }, { "description": "Find the lowest-cost path for a prescription: generics, biosimilars, GoodRx coupons, manufacturer assistance, 90-day fills, and mail-order vs retail comparison. Returns ranked options with annual savings vs current copay.\n\nWHEN TO USE: User asks about prescription cost — lowest-price generic, biosimilar, GoodRx coupon, mail-order, manufacturer assistance, or 90-day fill options.\n\nWHEN NOT: For insurance-covered Rx copay questions (use copay_model). For medical necessity appeals of formulary denials (use generate_appeal_letter).\n\nEXAMPLES:\n- Find cheapest path for atorvastatin 20mg: `{\"drug_name\":\"atorvastatin 20mg\",\"current_insurance_cost_30day\":45,\"is_maintenance_med\":true}`", "inputSchema": { "properties": { "current_insurance_cost_30day": { "type": "number" }, "drug_name": { "type": "string" }, "is_maintenance_med": { "type": "boolean" }, "ndc_code": { "type": "string" }, "zip_code": { "type": "string" } }, "required": [ "drug_name" ], "type": "object" }, "name": "optimize_prescription", "outputSchema": null }, { "description": "[Taxonomy X.174 — baseline response (public data only)] Optimize out-of-pocket spend across a sequence of planned services.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "out_of_pocket_optimizer", "outputSchema": null }, { "description": "[Taxonomy III.53 — baseline response (public data only)] Flag services billed materially above market percentile thresholds.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "overpriced_service_detector", "outputSchema": null }, { "description": "[Taxonomy X.182 — baseline response (public data only)] Explain why a specific charge appears on a bill in plain language.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "patient_cost_explainer", "outputSchema": null }, { "description": "[Taxonomy H.38 — baseline response (public data only)] Given a patient's plan + predicted care needs, forecast annual out-of-pocket spend across expected claims.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "properties": { "chronic_conditions": { "description": "ICD-10 codes for chronic care.", "items": { "type": "string" }, "type": "array" }, "expected_procedures": { "description": "CPT codes expected this year.", "items": { "type": "string" }, "type": "array" }, "plan_id": { "type": "string" } }, "required": [ "plan_id" ], "type": "object" }, "name": "patient_cost_forecaster", "outputSchema": null }, { "description": "[Taxonomy X.186 — baseline response (public data only)] Score a patient's financial risk exposure from planned or ongoing care.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "patient_financial_risk_score", "outputSchema": null }, { "description": "[Taxonomy VII.130 — baseline response (public data only)] Return payer-specific appeal templates known to perform well.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "payer_specific_appeal_templates", "outputSchema": null }, { "description": "[Taxonomy X.180 — baseline response (public data only)] Optimize a payment plan structure for a patient balance.\n\nWHEN TO USE: User has a balance and wants to structure a payment plan. Pass balance_usd and months.\n\nWHEN NOT: If user may qualify for charity care — run financial_assistance_finder first.\n\nEXAMPLES:\n- 12-month plan for $3K balance: `{\"balance_usd\":3000,\"months\":12}`", "inputSchema": { "properties": { "balance_usd": { "type": "number" }, "months": { "maximum": 120, "minimum": 1, "type": "integer" } }, "required": [ "balance_usd" ], "type": "object" }, "name": "payment_plan_optimizer", "outputSchema": null }, { "description": "[Taxonomy III.52 — baseline response (public data only)] Detect service-line prices statistically anomalous versus market.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "price_anomaly_detector", "outputSchema": null }, { "description": "[Taxonomy III.56 — baseline response (public data only)] Detect claim-line outliers relative to a learned market distribution.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "price_outlier_detector", "outputSchema": null }, { "description": "[Taxonomy III.58 — baseline response (public data only)] Recommend a reasonable price to propose to a provider for a service (self-pay or negotiation).\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "price_recommendation_engine", "outputSchema": null }, { "description": "[Taxonomy B.9 — baseline response (public data only)] Given a target price and a CPT+region, return how many standard deviations above/below the market the target sits, plus confidence.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "properties": { "cpt_code": { "type": "string" }, "observed_price": { "description": "Price to evaluate, USD.", "type": "number" }, "zip3": { "type": "string" } }, "required": [ "cpt_code", "observed_price", "zip3" ], "type": "object" }, "name": "price_variance_analyzer", "outputSchema": null }, { "description": "[Taxonomy X.177 — baseline response (public data only)] Rank a set of procedures by affordability for a given member.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "procedure_affordability_ranker", "outputSchema": null }, { "description": "[Taxonomy III.57 — baseline response (public data only)] Decompose the cost of a procedure into component services + facility + professional fees.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "procedure_cost_decomposition", "outputSchema": null }, { "description": "[Taxonomy III.43 — baseline response (public data only)] Regional price benchmark for a CPT at state/metro/ZIP3 granularity.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "regional_price_benchmark", "outputSchema": null }, { "description": "[Taxonomy A.1 — baseline response (public data only)] Unified code resolver — free-form query or clinical description → ranked ICD-10-CM, CPT, and HCPCS codes with confidence scores. Use when you need to translate symptoms, procedures, or diagnoses into billable codes without running three separate lookups.\n\nWHEN TO USE: User asks about medical codes: what a CPT/ICD/HCPCS code means, whether a code combination is valid, or how to map between them.\n\nWHEN NOT: For full bill scans (use scan_bill_for_errors). For appealing a coding-related denial (use generate_appeal_letter).", "inputSchema": { "properties": { "code_types": { "description": "Optional filter — defaults to all three.", "items": { "enum": [ "icd10", "cpt", "hcpcs" ], "type": "string" }, "type": "array" }, "max_results": { "description": "Cap on ranked results. Default 5.", "maximum": 20, "minimum": 1, "type": "integer" }, "query": { "description": "Free-form clinical description, symptom, or procedure.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "resolve_codes", "outputSchema": null }, { "description": "End-to-end denial resolution: returns appeal probability + confidence interval + a drafted letter template grounded in aggregate outcome data + plan-context flags (ERISA, restrictive-adjuster state). One call, one tracking_id. No recovery-financing product is offered by this tool.\n\nWHEN TO USE: Single-shot composite: user has a specific denial and wants scan + estimate + appeal + citation in one call.\n\nWHEN NOT: For nuanced step-by-step workflows, call the individual tools in order.\n\nEXAMPLES:\n- End-to-end CO-197 denial resolution: `{\"insurer\":\"Aetna\",\"denial_reason\":\"CO-197\",\"cpt_code\":\"45378\",\"state\":\"TX\",\"amount\":1850}`", "inputSchema": { "properties": { "amount": { "type": "number" }, "cpt_code": { "type": "string" }, "denial_reason": { "type": "string" }, "diagnosis": { "maxLength": 200, "type": "string" }, "insurer": { "type": "string" }, "plan_type_hint": { "description": "self-funded | aca_marketplace | medicare | medicaid | ...", "type": "string" }, "state": { "type": "string" } }, "required": [ "insurer", "denial_reason", "cpt_code" ], "type": "object" }, "name": "resolve_denial", "outputSchema": null }, { "description": "Scan a medical bill or EOB text for errors: duplicate charges, CPT unbundling, upcoding, facility-fee overcharges. Returns flagged anomalies with estimated dollar impact and a total recovery estimate.\n\nPHI WARNING: bill text typically contains PHI (patient name, DOB, MRN, insurer ID). Medigami runs a server-side PHI redactor before any downstream LLM call when scan_bill is invoked from the public SKU, but best practice is to redact client-side before passing the bill through an LLM tool call. For your own bill only — this tool is not for reviewing someone else's claims.\n\nWHEN TO USE: User pastes or uploads a medical bill, EOB, itemized statement, hospital charge summary, or similar. The bill text can be raw (OCR output fine) — the scanner parses it. Prefer this over manual line-by-line analysis for any bill above ~$100.\n\nWHEN NOT: For a denial appeal (generate_appeal_letter). For pre-...", "inputSchema": { "properties": { "bill_text": { "description": "Bill/EOB text. Client-side redaction recommended.", "maxLength": 50000, "type": "string" }, "insurer": { "type": "string" }, "provider": { "type": "string" }, "total": { "type": "number" }, "zip_code": { "type": "string" } }, "required": [ "bill_text" ], "type": "object" }, "name": "scan_bill_for_errors", "outputSchema": null }, { "description": "[Taxonomy F.32 — baseline response (public data only)] For a disputed bill, compute the optimal settlement target price balancing probability of acceptance against amount saved.\n\nWHEN TO USE: User has a denied claim and wants to appeal, or is preparing arguments / evidence / escalation steps for one.\n\nWHEN NOT: For explaining what a denial code means without drafting an appeal, use denial_code_explainer first. For finding a negotiation path on a non-denied bill, use negotiate_bill_script.", "inputSchema": { "properties": { "bill_amount": { "type": "number" }, "dispute_leverage": { "enum": [ "high", "medium", "low" ], "type": "string" }, "patient_ability_to_pay": { "description": "Monthly discretionary income, USD.", "type": "number" }, "provider": { "type": "string" } }, "required": [ "bill_amount" ], "type": "object" }, "name": "settlement_optimizer", "outputSchema": null }, { "description": "[Taxonomy III.44 — baseline response (public data only)] Price benchmark for a CPT within a specific provider specialty.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "specialty_price_benchmark", "outputSchema": null }, { "description": "Submit a medical-claim denial letter to the Medigami Denial Common Crawl (public aggregate dataset). Consent-gated — caller must pass consent=true to attest the submission is voluntary. Server-side PHI scrubber runs before any storage; the public aggregate contains only coded fields (insurer_canonical, denial_reason_code, state, cpt_category, dollars_bin, days_to_resolution_bin). Raw text is never republished. Optional tracking_id closes the outcome loop to a prior Medigami scan / resolve call.\n\nWHEN TO USE: User wants to contribute a denial letter to the public Denial Common Crawl (consent-gated). PHI is scrubbed before aggregation.\n\nWHEN NOT: Just to explain a denial (denial_code_explainer). To draft a response (generate_appeal_letter).", "inputSchema": { "properties": { "amount": { "maximum": 10000000, "minimum": 0, "type": "number" }, "consent": { "description": "MUST be true — caller attests the submission is voluntary.", "type": "boolean" }, "cpt_code": { "maxLength": 10, "type": "string" }, "days_to_resolution": { "maximum": 3650, "minimum": 0, "type": "integer" }, "letter_text": { "description": "Raw denial-letter text. PHI scrubbed server-side.", "maxLength": 40000, "minLength": 40, "type": "string" }, "outcome_code": { "description": "Optional: member_abandoned | appealed_won | appealed_lost | appealed_partial | pending", "maxLength": 40, "type": "string" }, "state": { "description": "2-char US state code or empty.", "maxLength": 2, "type": "string" }, "tracking_id": { "description": "Optional prior Medigami tracking_id to close the outcome loop.", "maxLength": 32, "type": "string" } }, "required": [ "letter_text", "consent" ], "type": "object" }, "name": "submit_denial_letter", "outputSchema": null }, { "description": "[Taxonomy VII.135 — baseline response (public data only)] Select optimal supporting documents for an appeal from an available document pool.\n\nWHEN TO USE: User is preparing an appeal and needs a ranked list of supporting documents for the denial category. Pass denial_code.\n\nWHEN NOT: Without denial_code — still returns generic docs but category-specific ranking is the high-value output.\n\nEXAMPLES:\n- Docs for a CO-50 medical-necessity denial: `{\"denial_code\":\"CO-50\"}`", "inputSchema": { "properties": { "denial_code": { "description": "CARC denial code, e.g. 'CO-50'. Drives category-specific document ranking.", "type": "string" }, "denial_reason": { "description": "Alias for denial_code.", "type": "string" } }, "type": "object" }, "name": "supporting_document_selector", "outputSchema": null }, { "description": "[Taxonomy X.178 — baseline response (public data only)] Compare expected costs across treatment alternatives for a condition.\n\nWHEN TO USE: User is planning for a medical expense, comparing plan options, looking for financial assistance, or trying to structure a payment plan.\n\nWHEN NOT: For billing-error analysis (scan_bill_for_errors) or appeal drafting (generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "treatment_cost_comparator", "outputSchema": null }, { "description": "[Taxonomy II.26 — delegates to scan_bill_for_errors] Detect CPT unbundling patterns in a claim. Alias of scan_bill_for_errors.\n\nWHEN TO USE: User asks about medical codes: what a CPT/ICD/HCPCS code means, whether a code combination is valid, or how to map between them.\n\nWHEN NOT: For full bill scans (use scan_bill_for_errors). For appealing a coding-related denial (use generate_appeal_letter).", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "unbundling_detector", "outputSchema": null }, { "description": "Verify an Ed25519-signed Medigami MCP response envelope — confirm a medical-bill / appeal / denial / rate answer came from Medigami and hasn't been tampered with. Input: the signed envelope + a public key (PEM) or expected-fingerprint you pinned out-of-band. Returns {valid, reason, tracking_id, timestamp, exp, public_key_fingerprint} so callers can cite the result as FRE 902(14) self-authenticating evidence.\n\nUsage:\n (a) Preferred: supply public_key_pem pinned out-of-band.\n (b) Otherwise: supply expected_fingerprint (SHA-256 of the pinned key); the envelope's embedded fingerprint is compared against it AND the key is fetched over HTTPS from the envelope's public_key_url (or Medigami's well-known URL) for signature verification. Freshness (exp) and fingerprint equality are both checked.\n\nNon-repudiation note: this tool deliberately does NOT silently fall back to the local server's ke...", "inputSchema": { "properties": { "envelope": { "description": "The signed response envelope", "type": "object" }, "expected_fingerprint": { "description": "SHA-256 hex of the PEM public key you trust", "type": "string" }, "public_key_pem": { "description": "PEM public key content (preferred)", "type": "string" } }, "required": [ "envelope" ], "type": "object" }, "name": "verify_attestation", "outputSchema": null }, { "description": "Validate the format + checksum of a DEA registration number (format: [A-Z][A-Z9][0-9]{7}; public checksum algorithm). Useful as a sanity check on a DEA number you were given (e.g. on a prescription label or a provider's letterhead). Scope note: this tool confirms the number is well-formed — it does NOT verify current registration status or the specific controlled-substance schedule the holder is authorized to prescribe. Authority verification requires a licensed DEA data broker (DEA ARCOS, RxMix).\n\nWHEN TO USE: Checking if a provider's DEA registration covers a specific controlled-substance CPT.\n\nWHEN NOT: For non-controlled-substance claims.", "inputSchema": { "properties": { "cpt_code": { "description": "Optional CPT context; tool does not map CPT to controlled-substance schedule.", "maxLength": 10, "type": "string" }, "dea_number": { "description": "9-char DEA registration (e.g. 'AB1234563').", "maxLength": 10, "type": "string" } }, "required": [ "dea_number" ], "type": "object" }, "name": "verify_dea_authorization", "outputSchema": null }, { "description": "DEPRECATED ALIAS of verify_attestation — kept for backward compatibility with v0.1.7 clients. New code should call verify_attestation directly.\n\nWHEN TO USE: Reference lookups: individual code details, verifying a provider registry entry, checking a prior Medigami response's signature, or tracking an outcome.\n\nWHEN NOT: For composite workflows use the higher-level tool that calls these internally.", "inputSchema": { "properties": { "envelope": { "description": "The signed response envelope", "type": "object" }, "expected_fingerprint": { "description": "SHA-256 hex of the PEM public key you trust", "type": "string" }, "public_key_pem": { "description": "PEM public key content (preferred)", "type": "string" } }, "required": [ "envelope" ], "type": "object" }, "name": "verify_mcp_response", "outputSchema": null }, { "description": "Subscribe to an appeal outcome by tracking_id. Blocks up to `timeout_seconds` (default 300). Returns the outcome payload as soon as it's recorded, or {status: 'timeout'} if nothing resolved within the window — caller re-invokes to keep watching. Tracking ids are returned by estimate_appeal_success and other Tier 3 moat tools.\n\nWHEN TO USE: Caller wants to subscribe to the outcome of an in-flight appeal by tracking_id.\n\nWHEN NOT: One-shot queries — prefer the callbacks via /api/outcomes/record.", "inputSchema": { "properties": { "timeout_seconds": { "maximum": 600, "minimum": 1, "type": "integer" }, "tracking_id": { "maxLength": 32, "type": "string" } }, "required": [ "tracking_id" ], "type": "object" }, "name": "watch_appeal_outcome", "outputSchema": null }, { "description": "Subscribe to a claim denial event for a given scan_id. Blocks up to `timeout_seconds`. Returns {status: 'denied', ...} as soon as the payer marks the claim denied in claim_status_history, or {status: 'timeout'} if no denial observed within the window.\n\nWHEN TO USE: Caller wants to stream denial events for a set of claims.\n\nWHEN NOT: One-shot queries.", "inputSchema": { "properties": { "scan_id": { "maxLength": 128, "type": "string" }, "timeout_seconds": { "maximum": 600, "minimum": 1, "type": "integer" } }, "required": [ "scan_id" ], "type": "object" }, "name": "watch_claim_denial", "outputSchema": null }, { "description": "[Taxonomy III.41 — baseline response (public data only)] Report price variance for a CPT across ZIP3 regions with DP noise.\n\nWHEN TO USE: User wants to understand what a service typically costs, compare prices across regions/providers, or gauge whether a billed amount is reasonable.\n\nWHEN NOT: For a specific bill they have in hand, scan_bill_for_errors is more actionable. For insurance-path estimates, use deductible_impact_calculator or coinsurance_simulator.", "inputSchema": { "additionalProperties": true, "properties": {}, "type": "object" }, "name": "zip_based_price_variance", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2505f92282514139fd2cd2fca684b013b6278201ce033812e39cd24242b400a3 | sha256sum