{
  "markdown": "# mcp-medprice-ai\n\nA hosted MCP server exposing US hospital chargemaster cost data to AI assistants.\n\n- **MCP endpoint**: `https://mcp.medprice.ai/mcp`\n- **gRPC backend**: `api.medprice.ai:443`\n\n## Install in Claude Code\n\n```bash\nclaude mcp add --transport http mcp-medprice-ai https://mcp.medprice.ai/mcp\n```\n\nTo share with everyone in a project, add `--scope project` (writes to `.mcp.json`). To make it available across all your projects, use `--scope user`.\n\n## Usage\n\nThe server exposes five tools:\n\n- **`list_hospitals`** — returns the supported hospitals with their `hospital_id`, EIN, name, structured_locations (addresses with geocoded coordinates where available), last_updated_on, and revision history (each revision's date, `revision_id`, and whether it has payer-specific rate data).\n- **`get_hospital_chargemaster_cost`** — looks up cost stats for a billing code at a single hospital.\n- **`list_hospital_code_costs`** — looks up cost stats for a billing code across every hospital that has a matching chargemaster entry, paginated. Use this instead of calling `get_hospital_chargemaster_cost` once per hospital when comparing prices for the same procedure across hospitals.\n- **`list_code_types`** — lists every distinct billing code type (e.g. CPT, MS-DRG) with catalogued cost data, along with each type's distinct code count and total hospital reports.\n- **`list_codes`** — lists every distinct code under a given code type, paginated, with a raw chargemaster description and reporting-hospital count per code. Use this to discover which codes exist under a code system before pricing them.\n\nThe typical flow is to call `list_hospitals` first to discover available hospitals and their IDs, then call `get_hospital_chargemaster_cost` with the desired `hospital_id` — or call `list_hospital_code_costs` directly when the question is about a code across hospitals rather than one specific hospital. Once installed, you can just ask your assistant something like:\n\n> What's the fee schedule cost of MS-DRG 652 at Medical City Alliance?\n\nThe assistant will call `list_hospitals` to find the hospital's ID, then call `get_hospital_chargemaster_cost` with:\n\n```json\n{\n  \"hospital_id\": \"1\",\n  \"code_type\": \"MS-DRG\",\n  \"code\": \"652\",\n  \"methodology\": \"fee schedule\"\n}\n```\n\nand returns:\n\n```json\n{\n  \"hospital\": \"MEDICAL CITY ALLIANCE\",\n  \"found\": true,\n  \"cost\": {\n    \"code_type\": \"MS-DRG\",\n    \"code\": \"652\",\n    \"min\": \"26851.11\",\n    \"max\": \"190885.00\",\n    \"avg\": \"34387.70\",\n    \"median\": \"28084.07\",\n    \"std_dev\": \"13735.94\"\n  },\n  \"description\": {\n    \"hospital_name\": \"MEDICAL CITY ALLIANCE\",\n    \"location\": \"3101 N Tarrant Pkwy, Fort Worth, TX, 76177\",\n    \"code_description\": \"KIDNEY TRANSPLANT\",\n    \"methodology_note\": \"fee schedule\"\n  }\n}\n```\n\n### Tool reference\n\n#### `list_hospitals`\n\n- **`page_size`** (optional) — maximum number of hospitals to return. Defaults to 500 (the entire current registry in one call), capped at 500.\n- **`page_token`** (optional) — opaque token from a previous response's `next_page_token`, for pagination. If `next_page_token` is non-empty, keep calling with it until it's empty rather than assuming one page is the full list.\n\nEach hospital's `revisions` array now includes a `revision_id` per revision (in addition to `revision_date` and `has_payer_data`) — pass it as `get_hospital_chargemaster_cost`'s `revision_id` to price that specific past revision instead of the hospital's latest one.\n\n#### `get_hospital_chargemaster_cost`\n\n- **`hospital_id`** (required) — opaque hospital identifier from `list_hospitals`.\n- **`code_type`** (required) — code system, e.g. `APR-DRG`, `CDM`, `CPT`, `HCPCS`, `MS-DRG`, `RC`. Hospitals may also support additional proprietary code types.\n- **`code`** (required) — the billing/chargemaster code.\n- **`methodology`** (optional) — one of `case rate`, `fee schedule`, `other`, `percent of total billed charges`, `per diem`. Omit to aggregate across all methodologies.\n- **`revision_id`** (optional) — a `revision_id` from `list_hospitals`, to price that specific past revision instead of the hospital's latest one.\n\n#### `list_hospital_code_costs`\n\nLike `get_hospital_chargemaster_cost`, but returns one result per hospital that has a matching chargemaster entry for the code, instead of requiring a `hospital_id` up front — useful for \"which hospital is cheapest for X\" questions without a `list_hospitals` + N × `get_hospital_chargemaster_cost` round trip.\n\n- **`code_type`** (required) — same as above.\n- **`code`** (required) — same as above.\n- **`methodology`** (optional) — same as above.\n- **`page_size`** (optional) — maximum number of results to return. Defaults to 500 (every matching hospital in one call at the current registry size), capped at 500.\n- **`page_token`** (optional) — opaque token from a previous response's `next_page_token`, for pagination. If `next_page_token` is non-empty, keep calling with it until it's empty rather than assuming one page is the full list.\n\nReturns `results` (each shaped like a `get_hospital_chargemaster_cost` response, plus a `hospital_id` to link back to `list_hospitals`/`get_hospital_chargemaster_cost`) and `next_page_token`. Only hospitals with a matching entry (their latest revision) are included — there are no `found: false` entries.\n\n#### `list_code_types`\n\nNo arguments. Returns `code_types`, one entry per distinct code type present in the catalog (most code-rich first), each with `code_type`, `code_count` (distinct codes catalogued under that type), and `total_hospital_reports` (sum of `hospital_count` across every code under that type — not a distinct-hospital count). Unpaginated.\n\nUse this to discover which code systems have data before drilling into `list_codes`.\n\n#### `list_codes`\n\n- **`code_type`** (required) — code system to list codes for, e.g. `CPT`. From `list_code_types`.\n- **`page_size`** (optional) — maximum number of results to return. Defaults to 500, capped at 500.\n- **`page_token`** (optional) — opaque token from a previous response's `next_page_token`, for pagination. If `next_page_token` is non-empty, keep calling with it until it's empty rather than assuming one page is the full list.\n\nReturns `codes` (each with `code`, `raw_description` — raw chargemaster text, not necessarily a human-readable procedure name — and `hospital_count`, distinct hospitals reporting that code on their latest revision), `next_page_token`, and `total_count` (total matching codes across all pages). Use this to discover which codes exist under a code system before pricing them with `get_hospital_chargemaster_cost` or `list_hospital_code_costs`.\n\n## Development\n\n### Run locally against the production gRPC backend\n\n```bash\nGRPC_HOST=api.medprice.ai:443 npx tsx src/index.ts\n```\n\n### Run locally against a custom gRPC backend\n\n```bash\nGRPC_HOST=<host:port> npx tsx src/index.ts\n```\n\n### Run as HTTP server\n\n```bash\nTRANSPORT=http GRPC_HOST=api.medprice.ai:443 npx tsx src/index.ts\n```\n\nAll MCP requests go to `POST /mcp`. `PORT` defaults to `3000`.\n\n### Test gRPC connectivity\n\n```bash\nGRPC_HOST=api.medprice.ai:443 npx tsx src/test.ts\n```\n\n## Docker\n\n### Build\n\n```bash\ndocker build -t mcp-medprice-ai .\n```\n\n### Run\n\n```bash\ndocker run --rm -p 3000:3000 \\\n  -e GRPC_HOST=api.medprice.ai:443 \\\n  mcp-medprice-ai\n```\n\n`TRANSPORT=http` and `PORT=3000` are set by default in the image. Override `PORT` if needed:\n\n```bash\ndocker run --rm -p 8080:8080 \\\n  -e GRPC_HOST=api.medprice.ai:443 \\\n  -e PORT=8080 \\\n  mcp-medprice-ai\n```\n",
  "bytes": 7502,
  "sha": "fad7e2fb4c7d925e08ba9d53049aeea06365d517a4942a004809d77b274163d7",
  "repo_slug": "medprice-ai/mcp-medprice-ai",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_medprice_ai_mcp_medprice_ai_2a6d6948/readme"
}