Skip to content

Med Bill Check

by GoodTurnStudio · remote · no sign-in to list tools · v1.2.0 · published by GitHub user GoodTurnStudio

Is your US medical bill fair? Compares charges with Medicare rates and drafts a dispute letter.

Changes · 4

5 tools: 4 change things and 1 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http medbillcheck https://goodturn-mcp.pages.dev/medbillcheck/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "check_price" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "compare": a word for reading.

    What this check looks for
  • The server marks "draft_bill_letter" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 4Claude Code: ask
  • check_priceCompare a charge with Medicare's rate for one service.1 finding

    Why it is in this group

    • The description's first verb is "compare": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_price" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "compare": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Compare a charge with Medicare's rate for one service. For when someone asks whether a charge is high or what Medicare pays, for example "I was charged $450 for a 99213 office visit in Texas, is that too high?" or "what does Medicare pay for an MRI of the knee?". Takes the billing code if they have it, otherwise the service in plain words as q. Returns Medicare's 2026 rate for the state (or the city's own pricing area when city is given) in medicare_2026, the amount providers typically billed in 2024, and how many times the Medicare rate the charge is. For care in a hospital, hospital_facility_2026 gives Medicare's national rate for the hospital's own facility fee and comparison.compared_with says what the charge was set against. Dental work has no Medicare rate and returns 404 with a pointer to a free dental cost source.

    Annotations the server declares

    • title: Compare a charge with Medicare's rate for one service
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • check_whole_billCheck several lines of an itemized bill at once.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check several lines of an itemized bill at once. For when someone reads out or pastes several lines from an itemized bill, for example "my ER bill has 99284 for $2,500, 85025 twice for $120 and 36415 three times, does anything look off?". Takes the lines as code, optional x and units, then the amount. Returns each line against Medicare's rate, totals, and questions_to_ask: repeated codes, units above Medicare's automated daily limit, the highest visit levels, hospital clinic facility fees and charges far above what providers typically bill. Lines of a hospital bill (any bill with an ER visit on it, or setting=facility) are compared with Medicare's hospital outpatient rate plus the doctor's part; each such line says compared_with.

    Annotations the server declares

    • title: Check several lines of an itemized bill at once
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • draft_bill_letterDraft a letter to a billing office for the user to send.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "draft_bill_letter" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Draft a letter to a billing office for the user to send. For requests like "help me dispute this bill", "write a letter asking for an itemized bill", "can I ask for a discount?" or "how do I apply for charity care?". Returns a letter as plain text with [brackets] for anything not given, tips, and the user's No Surprises Act and Good Faith Estimate rights with official CMS links. It never sends anything.

    Annotations the server declares

    • title: Draft a letter to a billing office for the user to send
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • look_up_hospitalWhether a hospital is nonprofit, for financial assistance.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Whether a hospital is nonprofit, for financial assistance. For requests like "is St. Luke's in Boise a nonprofit?" or "does this hospital have to offer charity care?". Returns how Medicare lists the hospital's ownership (nonprofit, government, for-profit), its city and main phone number, and what that means for financial assistance. Nonprofit hospitals must have a financial assistance policy.

    Annotations the server declares

    • title: Whether a hospital is nonprofit, for financial assistance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 1Claude Code: allow
  • search_servicesFind billing codes and Medicare rates by plain words.No findings

    Why it is in this group

    • The name "search_services" says "search": a word for reading.
    Description, as the server wrote it
    Find billing codes and Medicare rates by plain words. For when someone describes a service but has no code, or asks what a code means, for example "what's the code for a colonoscopy?", "how much does Medicare pay for a chest x-ray in Ohio?" or "what is code 99214?". Returns up to eight matching codes with Medicare's typical allowed and billed amounts.

    Annotations the server declares

    • title: Find billing codes and Medicare rates by plain words
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http medbillcheck https://goodturn-mcp.pages.dev/medbillcheck/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__medbillcheck__search_services"
    ],
    "ask": [
      "mcp__medbillcheck__check_price",
      "mcp__medbillcheck__check_whole_bill",
      "mcp__medbillcheck__look_up_hospital",
      "mcp__medbillcheck__draft_bill_letter"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as medbillcheck. Review it before you use it.