Koskamo

Good Turn Studio Med Bill Check MCP

This MCP server allows users to verify US medical charges against Medicare rates, search for billing codes, and draft dispute or assistance letters. It supports checking individual services, whole itemized bills, and hospital nonprofit status to help users navigate billing disputes and financial assistance applications.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Good Turn Studio Med Bill Check MCP logo, by Good Turn StudioCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Good Turn Studio
MCP endpoint (Streamable HTTP)
https://goodturn-mcp.pages.dev/medbillcheck/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Compare a specific medical charge with Medicare's typical allowed amount
  • Find billing codes and Medicare rates using plain language descriptions
  • Check multiple lines of an itemized bill for accuracy
  • Draft letters to request itemized bills, discounts, or financial assistance

Source and maintenance

Community listingRegistry 1.2.0
Maintenance checked

Protocol and capabilities

Server
goodturn-medbillcheck 1.2.0
MCP protocol negotiated in check
2025-11-25
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Checks a US medical bill against Medicare's published rates and drafts letters the user can send. Look up a service by billing code (CPT or HCPCS, like 99213) or in plain words (like knee MRI), nationally or for a state, and compare a charged amount with Medicare's typical allowed amount and the amount providers typically bill. Drafts letters to request an itemized bill, ask for a charge to be reviewed, ask for a prompt-pay or self-pay discount, or apply for hospital financial assistance, and explains No Surprises Act and Good Faith Estimate rights. Every tool is read-only and nothing about the user is stored. Where an answer has a "say" field, it is a ready-to-read summary. More at https://medbillcheck.pages.dev

Tools

5 advertised

check_price — Compare a charge with Medicare's rate for one service
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_price input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "q": {
      "type": "string",
      "description": "The service in plain words, used when there is no code, like \"knee MRI\" or \"ER visit\"."
    },
    "city": {
      "type": "string",
      "description": "City, for states where Medicare pays big cities differently, like Houston, Chicago, Miami or Los Angeles. Other places use the rest-of-state rate."
    },
    "code": {
      "type": "string",
      "description": "Five-character CPT or HCPCS code from the bill, like 99213, 73721 or G0121."
    },
    "state": {
      "type": "string",
      "description": "US state name or two-letter code, like Texas or TX. Med Bill Check is for US bills; a UK place gets a short answer pointing to UK sources."
    },
    "charged": {
      "type": "number",
      "maximum": 5000000,
      "minimum": 1,
      "description": "The amount on the bill in US dollars, like 450."
    },
    "setting": {
      "enum": [
        "office",
        "facility"
      ],
      "type": "string",
      "description": "Setting: office (clinic, office, imaging center) or facility (hospital or surgery center). Leave out to use the usual setting."
    },
    "billed_by": {
      "enum": [
        "hospital",
        "doctor"
      ],
      "type": "string",
      "description": "Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together."
    }
  },
  "additionalProperties": false
}
check_price annotations
{
  "title": "Compare a charge with Medicare's rate for one service",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_services — Find billing codes and Medicare rates by plain words
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_services input schema
{
  "type": "object",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "description": "Plain words or a code, like \"hernia repair\" or 99214."
    },
    "state": {
      "type": "string",
      "description": "US state name or two-letter code."
    }
  },
  "additionalProperties": false
}
search_services annotations
{
  "title": "Find billing codes and Medicare rates by plain words",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_whole_bill — Check several lines of an itemized bill at once
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

check_whole_bill input schema
{
  "type": "object",
  "required": [
    "lines"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "City, for big cities with their own Medicare rates."
    },
    "lines": {
      "type": "string",
      "description": "Up to 15 bill lines separated by commas: code, then x and units if more than one, then the amount. Example: 99284:2500, 85025x2:120, 36415:45."
    },
    "state": {
      "type": "string",
      "description": "US state name or two-letter code."
    },
    "setting": {
      "enum": [
        "office",
        "facility"
      ],
      "type": "string",
      "description": "Setting: office or facility. Leave out if not known."
    },
    "billed_by": {
      "enum": [
        "hospital",
        "doctor"
      ],
      "type": "string",
      "description": "Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together."
    }
  },
  "additionalProperties": false
}
check_whole_bill annotations
{
  "title": "Check several lines of an itemized bill at once",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
look_up_hospital — Whether a hospital is nonprofit, for financial assistance
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

look_up_hospital input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "City, to pick between hospitals with the same name."
    },
    "name": {
      "type": "string",
      "description": "Hospital name as on the bill, like St. Luke's Regional Medical Center."
    },
    "state": {
      "type": "string",
      "description": "US state name or two-letter code. Recommended, since many hospitals share names."
    }
  },
  "additionalProperties": false
}
look_up_hospital annotations
{
  "title": "Whether a hospital is nonprofit, for financial assistance",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
draft_bill_letter — Draft a letter to a billing office for the user to send
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

draft_bill_letter input schema
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "Billing code of the charge. With amount, a dispute letter adds Medicare's benchmark (for a hospital charge, the hospital outpatient rate as well as the doctor's part)."
    },
    "date": {
      "type": "string",
      "description": "Date of service."
    },
    "name": {
      "type": "string",
      "description": "Patient or account holder name."
    },
    "type": {
      "enum": [
        "itemized",
        "dispute",
        "discount",
        "assistance"
      ],
      "type": "string",
      "description": "Type: itemized (ask for an itemized bill), dispute (ask for a charge to be reviewed), discount (prompt-pay or self-pay discount), or assistance (financial assistance or charity care)."
    },
    "state": {
      "type": "string",
      "description": "US state, used for the benchmark in a dispute letter."
    },
    "amount": {
      "type": "number",
      "maximum": 5000000,
      "minimum": 1,
      "description": "Amount charged or balance due, in US dollars."
    },
    "reason": {
      "type": "string",
      "description": "A sentence on what the user wants checked, for a dispute letter."
    },
    "account": {
      "type": "string",
      "description": "Account or invoice number on the bill."
    },
    "insured": {
      "enum": [
        "yes",
        "no"
      ],
      "type": "string",
      "description": "Set to no if paying without insurance (self-pay), for a discount letter."
    },
    "service": {
      "type": "string",
      "description": "The service in plain words."
    },
    "setting": {
      "enum": [
        "office",
        "facility"
      ],
      "type": "string",
      "description": "Setting: office or facility (hospital or surgery center), for the benchmark in a dispute letter. ER visits and hospital clinic visits count as facility anyway."
    },
    "provider": {
      "type": "string",
      "description": "Hospital, clinic or provider name."
    },
    "billed_by": {
      "enum": [
        "hospital",
        "doctor"
      ],
      "type": "string",
      "description": "Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together."
    }
  },
  "additionalProperties": false
}
draft_bill_letter annotations
{
  "title": "Draft a letter to a billing office for the user to send",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-06: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
249 ms
95th percentile latency
249 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 249 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http med-bill-check-mcp https://goodturn-mcp.pages.dev/medbillcheck/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add med-bill-check-mcp --url https://goodturn-mcp.pages.dev/medbillcheck/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable med-bill-check-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "med-bill-check-mcp": {
      "url": "https://goodturn-mcp.pages.dev/medbillcheck/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "med-bill-check-mcp": {
      "type": "streamableHttp",
      "url": "https://goodturn-mcp.pages.dev/medbillcheck/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start med-bill-check-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "med-bill-check-mcp": {
      "type": "http",
      "url": "https://goodturn-mcp.pages.dev/medbillcheck/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http med-bill-check-mcp https://goodturn-mcp.pages.dev/medbillcheck/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://goodturn-mcp.pages.dev/medbillcheck/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "med-bill-check-mcp": {
      "serverUrl": "https://goodturn-mcp.pages.dev/medbillcheck/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Good Turn Studio Med Bill Check MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.