{"name":"com.medigami/mcp","slug":"medigami-mcp","title":null,"description":"Medigami: medical bill error scan, denial decoding, appeal deadlines, hospital price lookup","url":"https://mcp.market/server/medigami-mcp","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T03:20:59.886Z","last_ok_at":"2026-09-20T03:20:59.886Z","latency_ms":549},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://medigami.com/mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.medigami.com/public/mcp"}],"packages":[],"tools":[{"name":"analyze_glp1_pathways","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bmi":{"type":"number"},"insurer":{"type":"string"},"has_diabetes":{"type":"boolean"},"has_cvd":{"type":"boolean"},"medicare":{"type":"boolean"},"state":{"type":"string"},"current_copay":{"type":"number"},"tried_step_therapy":{"type":"array","items":{"type":"string"},"description":"Drug names already tried under step therapy, e.g. ['metformin']."}},"required":["insurer","bmi"]}},{"name":"appeal_argument_generator","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"denial_code":{"type":"string"},"cpt_code":{"type":"string"},"icd10_code":{"type":"string"},"insurer":{"type":"string"}}}},{"name":"appeal_escalation_path_finder","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"type":"string","description":"Two-letter US state code. State-specific external-review deadlines and DOI agency URL are returned when we have them (top 16 states)."},"insurer":{"type":"string","description":"Insurer canonical name, e.g. 'UnitedHealthcare', 'Aetna'. Used to look up payer-specific appeal windows."}}}},{"name":"appeal_success_predictor","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string"},"denial_reason":{"type":"string"},"cpt_code":{"type":"string"},"state":{"type":"string"}},"required":["insurer","denial_reason","cpt_code"]}},{"name":"batch_scan_bills","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bills":{"type":"array","maxItems":10,"items":{"type":"object","properties":{"bill_text":{"type":"string","maxLength":50000},"provider":{"type":"string","maxLength":200},"insurer":{"type":"string","maxLength":100}},"required":["bill_text"]}}},"required":["bills"]}},{"name":"bill_shock_predictor","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"expected_charge_usd":{"type":"number","description":"The expected out-of-pocket charge in USD (no currency symbol)."},"cpt_code":{"type":"string","description":"Optional CPT code; when provided, the response includes the Medicare national rate and charge-to-Medicare ratio."},"threshold_usd":{"type":"number","description":"Override the default shock threshold (default = KFF 2024 average individual deductible = $1,735)."}},"required":["expected_charge_usd"]}},{"name":"billing_charge_vs_allowed_delta","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"billed_usd":{"type":"number"},"allowed_usd":{"type":"number"}},"required":["billed_usd","allowed_usd"]}},{"name":"bundling_violation_detector","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_codes":{"type":"array","items":{"type":"string"}},"dos":{"type":"string","description":"Date of service, YYYY-MM-DD."},"payer":{"type":"string"}},"required":["cpt_codes"]}},{"name":"cash_price_estimator","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string"},"zip3":{"type":"string"}},"required":["cpt_code"]}},{"name":"cash_vs_insurance_optimizer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string"},"insurance_cost_estimate":{"type":"number"},"cash_price":{"type":"number"},"deductible_remaining":{"type":"number"}},"required":["cpt_code"]}},{"name":"claim_consistency_checker","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"claim_payload":{"type":"object","description":"Structured claim (CPT + ICD + dates + amounts)."}},"required":["claim_payload"]}},{"name":"claim_duplicate_line_detector","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"claim":{"type":"object"}},"required":["claim"]}},{"name":"claim_rebuttal_generator","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"claim_reconsideration_builder","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"code_bundle_validator","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_codes":{"type":"array","items":{"type":"string"},"description":"Array of CPT codes to check for NCCI bundling violations."}},"required":["cpt_codes"]}},{"name":"code_conflict_detector","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_codes":{"type":"array","items":{"type":"string"},"description":"Array of CPT codes to check for conflicts."},"icd10_codes":{"type":"array","items":{"type":"string"},"description":"Optional diagnosis codes for medical-necessity conflict checks."}},"required":["cpt_codes"]}},{"name":"coinsurance_simulator","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"charge_usd":{"type":"number"},"coinsurance_rate":{"type":"number","minimum":0,"maximum":1,"description":"Coinsurance rate as a decimal (e.g. 0.20 for 20%). Default is KFF 2024 avg (18%)."}},"required":["charge_usd"]}},{"name":"copay_model","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"service_type":{"type":"string","enum":["primary","specialist","er","emergency"],"description":"Service category. Returns KFF EHBS 2024 average copay for that category."}}}},{"name":"cpt_to_icd_mapper","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string","description":"Single CPT/HCPCS code, e.g. '99213'. Returns common ICD-10 pairings from the public co-occurrence table."}},"required":["cpt_code"]}},{"name":"decode_denial","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"carc_code":{"type":"string","maxLength":20,"description":"CARC/RARC code, e.g. 'CO-16', '16', 'CO-50'."}},"required":["carc_code"]}},{"name":"deductible_impact_calculator","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"charge_usd":{"type":"number"},"deductible_remaining_usd":{"type":"number"}},"required":["charge_usd"]}},{"name":"denial_code_explainer","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","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."}},"required":["code"]}},{"name":"denial_reason_classifier","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"denial_response_builder","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"denial_reason":{"type":"string","description":"CARC denial code, e.g. 'CO-16'."},"insurer":{"type":"string"},"cpt_code":{"type":"string"},"amount":{"type":"number"}}}},{"name":"dispute_case_builder","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"estimate_appeal_success","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string"},"denial_reason":{"type":"string","description":"medical_necessity | prior_auth | out_of_network | experimental | coding_error"},"cpt_code":{"type":"string"},"diagnosis":{"type":"string","maxLength":200},"state":{"type":"string","maxLength":2},"amount":{"type":"number"}},"required":["insurer","denial_reason","cpt_code"]}},{"name":"evidence_pack_generator","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"explain_appeal_success","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string"},"denial_reason":{"type":"string"},"cpt_code":{"type":"string"},"diagnosis":{"type":"string","maxLength":200},"state":{"type":"string"},"amount":{"type":"number"}},"required":["insurer","denial_reason","cpt_code"]}},{"name":"fair_price_estimator","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string"},"zip3":{"type":"string","description":"First 3 digits of ZIP."},"insurer":{"type":"string","description":"Optional insurer for payer-specific distribution."}},"required":["cpt_code","zip3"]}},{"name":"financial_assistance_finder","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"household_income_usd":{"type":"number","description":"Annual household income in USD. When provided, tool computes FPL ratio and flags likely-eligible programs."},"family_size":{"type":"integer","minimum":1,"description":"Number of people in the household. Used to compute FPL threshold."}}}},{"name":"financial_exposure_model","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"financial_risk_exposure_model","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"type":"string"},"household_income":{"type":"number"},"emergency_savings":{"type":"number"},"chronic_conditions":{"type":"array","items":{"type":"string"}}},"required":["plan_id"]}},{"name":"format_citation","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"envelope":{"type":"object","description":"Full signed envelope returned by an attested Medigami tool (preferred)."},"tracking_id":{"type":"string","maxLength":32,"description":"tracking_id alone; the resulting URL will still render but the third party must paste the envelope into the verifier form."},"format":{"type":"string","enum":["short","long","both"],"description":"short = one-line citation string; long = paragraph attribution; both = return both (default)."}},"required":[]}},{"name":"format_medigami_citation","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"envelope":{"type":"object","description":"Full signed envelope returned by an attested Medigami tool (preferred)."},"tracking_id":{"type":"string","maxLength":32,"description":"tracking_id alone; the resulting URL will still render but the third party must paste the envelope into the verifier form."},"format":{"type":"string","enum":["short","long","both"],"description":"short = one-line citation string; long = paragraph attribution; both = return both (default)."}},"required":[]}},{"name":"generate_appeal_letter","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...","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string","maxLength":100,"description":"Insurer canonical name, e.g. 'UnitedHealthcare', 'Aetna'."},"denial_reason":{"type":"string","maxLength":50,"description":"CARC/RARC denial code, e.g. 'CO-16' or 'CO-97'. Code only — do NOT include the human-readable expansion of the code."},"cpt_code":{"type":"string","maxLength":10,"description":"Single CPT/HCPCS code, e.g. '99213' or 'J0585'."},"diagnosis":{"type":"string","maxLength":20,"description":"Single ICD-10 code, e.g. 'I10' or 'E11.9'."},"amount":{"type":"number","description":"Dollar amount in dispute (number, no currency symbol)."},"state":{"type":"string","maxLength":2,"description":"Two-letter US state code for state-specific disclaimers."}},"required":["insurer","denial_reason","cpt_code","diagnosis","amount"]}},{"name":"generate_appeal_letter_v2","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string"},"denial_reason":{"type":"string"},"cpt_code":{"type":"string"},"diagnosis":{"type":"string"},"amount":{"type":"number"},"state":{"type":"string"}},"required":["insurer","denial_reason","cpt_code","diagnosis","amount"]}},{"name":"get_appeal_deadline","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"type":"string","maxLength":2,"description":"2-letter US state"},"denial_date":{"type":"string","maxLength":10,"description":"ISO date (YYYY-MM-DD) of the FINAL adverse determination"}},"required":["denial_date"]}},{"name":"get_venue","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"type":"string","maxLength":2,"description":"2-letter US state"}}}},{"name":"healthcare_budget_forecaster","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: `{}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_deductible_usd":{"type":"number"},"plan_oop_max_usd":{"type":"number"}}}},{"name":"icd_to_cpt_mapper","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"icd10_code":{"type":"string","description":"Single ICD-10-CM code, e.g. 'I10'. Returns common CPT candidates."}},"required":["icd10_code"]}},{"name":"inflation_adjusted_price_model","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"base_amount_usd":{"type":"number"},"years":{"type":"number","minimum":0,"maximum":50}},"required":["base_amount_usd","years"]}},{"name":"insurance_plan_optimizer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"zip_code":{"type":"string"},"household_size":{"type":"integer"},"income_band":{"type":"string"},"historical_spend":{"type":"number","description":"Prior-year OOP spend."},"chronic_conditions":{"type":"array","items":{"type":"string"}}},"required":["zip_code"]}},{"name":"insurance_response_interpreter","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"response_text":{"type":"string","description":"Insurer response or EOB text."},"response_type":{"type":"string","enum":["denial","partial_denial","eob","appeal_response"]}},"required":["response_text"]}},{"name":"insurance_value_optimizer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"lookup_cpt","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"CPT / HCPCS-J code ('99213', 'J1885') or keyword ('knee MRI', 'colonoscopy')."}},"required":["query"]}},{"name":"lookup_icd10","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"ICD-10-CM code (e.g. 'I10', 'E11.21') or keyword search."}},"required":["query"]}},{"name":"lookup_npi","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"10-digit NPI (e.g. '1234567890') or provider name ('Jane Smith')."},"state":{"type":"string","maxLength":2,"description":"Optional 2-char state abbreviation to narrow a name search."}},"required":["query"]}},{"name":"lookup_provider_taxonomy","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":200,"description":"Taxonomy code ('207Q00000X') or keyword ('cardiology', 'pediatrics')."}},"required":["query"]}},{"name":"market_price_distribution_model","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"maximize_recovery","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"scan_id":{"type":"string"}},"required":["scan_id"]}},{"name":"medical_spending_analyzer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"medigami_deadline","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"state":{"type":"string","maxLength":32,"description":"2-letter US state (echoed on the row; the deadline window itself is federal, not state-varying)."},"plan_type":{"type":"string","maxLength":40,"description":"e.g. 'self_funded', 'aca_marketplace', 'medicare', 'medicaid'."}},"required":["state","plan_type"]}},{"name":"medigami_odds","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string","maxLength":100,"description":"Insurer / payer name."},"state":{"type":"string","maxLength":32,"description":"Venue state, e.g. 'CA', 'NY'."}},"required":["insurer","state"]}},{"name":"medigami_rate","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"hospital":{"type":"string","maxLength":200,"description":"Hospital / facility name."},"cpt":{"type":"string","maxLength":10,"description":"CPT/HCPCS procedure code."}},"required":["hospital","cpt"]}},{"name":"medigami_roast","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"hospital":{"type":"string","maxLength":200,"description":"Hospital / facility name."},"cpt":{"type":"string","maxLength":10,"description":"CPT/HCPCS procedure code."},"billed_amount":{"type":"number","minimum":0,"description":"Amount billed, USD."}},"required":["hospital","cpt","billed_amount"]}},{"name":"negotiate_bill_script","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 ...","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string"},"billed_amount":{"type":"number","minimum":1},"insurer":{"type":"string"},"zip3":{"type":"string"},"household_income_annual":{"type":"number","minimum":0},"household_size":{"type":"integer","minimum":1,"maximum":20},"state":{"type":"string"}},"required":["cpt_code","billed_amount"]}},{"name":"negotiation_strategy_generator","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bill_amount":{"type":"number"},"provider":{"type":"string"},"situation":{"type":"string","enum":["uninsured","underinsured","hardship","dispute"]},"insurance_status":{"type":"string"}},"required":["bill_amount"]}},{"name":"optimize_prescription","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"drug_name":{"type":"string"},"current_insurance_cost_30day":{"type":"number"},"is_maintenance_med":{"type":"boolean"},"ndc_code":{"type":"string"},"zip_code":{"type":"string"}},"required":["drug_name"]}},{"name":"out_of_pocket_optimizer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"overpriced_service_detector","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"patient_cost_explainer","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"patient_cost_forecaster","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"type":"string"},"expected_procedures":{"type":"array","items":{"type":"string"},"description":"CPT codes expected this year."},"chronic_conditions":{"type":"array","items":{"type":"string"},"description":"ICD-10 codes for chronic care."}},"required":["plan_id"]}},{"name":"patient_financial_risk_score","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"payer_specific_appeal_templates","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"payment_plan_optimizer","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"balance_usd":{"type":"number"},"months":{"type":"integer","minimum":1,"maximum":120}},"required":["balance_usd"]}},{"name":"price_anomaly_detector","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"price_outlier_detector","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"price_recommendation_engine","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"price_variance_analyzer","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpt_code":{"type":"string"},"observed_price":{"type":"number","description":"Price to evaluate, USD."},"zip3":{"type":"string"}},"required":["cpt_code","observed_price","zip3"]}},{"name":"procedure_affordability_ranker","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"procedure_cost_decomposition","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"regional_price_benchmark","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"resolve_codes","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Free-form clinical description, symptom, or procedure."},"code_types":{"type":"array","items":{"type":"string","enum":["icd10","cpt","hcpcs"]},"description":"Optional filter — defaults to all three."},"max_results":{"type":"integer","minimum":1,"maximum":20,"description":"Cap on ranked results. Default 5."}},"required":["query"]}},{"name":"resolve_denial","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}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"insurer":{"type":"string"},"denial_reason":{"type":"string"},"cpt_code":{"type":"string"},"diagnosis":{"type":"string","maxLength":200},"state":{"type":"string"},"amount":{"type":"number"},"plan_type_hint":{"type":"string","description":"self-funded | aca_marketplace | medicare | medicaid | ..."}},"required":["insurer","denial_reason","cpt_code"]}},{"name":"scan_bill_for_errors","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-...","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bill_text":{"type":"string","maxLength":50000,"description":"Bill/EOB text. Client-side redaction recommended."},"provider":{"type":"string"},"insurer":{"type":"string"},"total":{"type":"number"},"zip_code":{"type":"string"}},"required":["bill_text"]}},{"name":"settlement_optimizer","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bill_amount":{"type":"number"},"provider":{"type":"string"},"patient_ability_to_pay":{"type":"number","description":"Monthly discretionary income, USD."},"dispute_leverage":{"type":"string","enum":["high","medium","low"]}},"required":["bill_amount"]}},{"name":"specialty_price_benchmark","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"submit_denial_letter","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).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"letter_text":{"type":"string","minLength":40,"maxLength":40000,"description":"Raw denial-letter text. PHI scrubbed server-side."},"cpt_code":{"type":"string","maxLength":10},"amount":{"type":"number","minimum":0,"maximum":10000000},"state":{"type":"string","maxLength":2,"description":"2-char US state code or empty."},"outcome_code":{"type":"string","maxLength":40,"description":"Optional: member_abandoned | appealed_won | appealed_lost | appealed_partial | pending"},"days_to_resolution":{"type":"integer","minimum":0,"maximum":3650},"tracking_id":{"type":"string","maxLength":32,"description":"Optional prior Medigami tracking_id to close the outcome loop."},"consent":{"type":"boolean","description":"MUST be true — caller attests the submission is voluntary."}},"required":["letter_text","consent"]}},{"name":"supporting_document_selector","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\"}`","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"denial_code":{"type":"string","description":"CARC denial code, e.g. 'CO-50'. Drives category-specific document ranking."},"denial_reason":{"type":"string","description":"Alias for denial_code."}}}},{"name":"treatment_cost_comparator","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"unbundling_detector","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}},{"name":"verify_attestation","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...","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"envelope":{"type":"object","description":"The signed response envelope"},"public_key_pem":{"type":"string","description":"PEM public key content (preferred)"},"expected_fingerprint":{"type":"string","description":"SHA-256 hex of the PEM public key you trust"}},"required":["envelope"]}},{"name":"verify_dea_authorization","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"dea_number":{"type":"string","maxLength":10,"description":"9-char DEA registration (e.g. 'AB1234563')."},"cpt_code":{"type":"string","maxLength":10,"description":"Optional CPT context; tool does not map CPT to controlled-substance schedule."}},"required":["dea_number"]}},{"name":"verify_mcp_response","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"envelope":{"type":"object","description":"The signed response envelope"},"public_key_pem":{"type":"string","description":"PEM public key content (preferred)"},"expected_fingerprint":{"type":"string","description":"SHA-256 hex of the PEM public key you trust"}},"required":["envelope"]}},{"name":"watch_appeal_outcome","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tracking_id":{"type":"string","maxLength":32},"timeout_seconds":{"type":"integer","minimum":1,"maximum":600}},"required":["tracking_id"]}},{"name":"watch_claim_denial","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"scan_id":{"type":"string","maxLength":128},"timeout_seconds":{"type":"integer","minimum":1,"maximum":600}},"required":["scan_id"]}},{"name":"zip_based_price_variance","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T00:26:24.159Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:24.155Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 544ms"]},"poisoning":{"score":15,"max":15,"notes":["87 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.medigami.com/public/mcp","reachable":true,"authRequired":false,"latencyMs":544,"serverInfo":{"name":"medigami-public","version":"1.28.1"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://medigami.com/favicon.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}