MCP-Server

MedRates

fyi.medrates/mcp
Daten & Analytik Gesundheitswesen Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches US hospital procedure prices, insurance-negotiated rates, payer network information, hospitals, and healthcare price statistics.

hospitals
Find hospitals by name/city/state, or list a sample of hospitals. Returns hospital names, IDs, EINs, NPIs, and per-campus locations with addresses and coordinates. Use hospital IDs to filter other search tools. The result is capped (~100 hospitals) for performance, so the unfiltered list is only a sample. To locate a SPECIFIC hospital, pass ``search`` (a name/city/state substring) — it filters server-side and returns the matches. NOTE: This lists US HOSPITALS only — not non-US providers, independent imaging centers, ambulatory surgery centers, clinics, or other freestanding facilities. Args: search: Optional name/city/state substring to find a specific hospital. Returns: JSON array of hospitals with id, name, display_name, ein, npi, cms_certification_number, and locations (address, city, state, lat/lng).
Eingabeschema
{'type': 'object', 'title': 'hospitalsArguments', 'properties': {'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Search', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'hospitalsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
payer_network_info
Look up network-geography facts for a named insurance payer. Call this whenever an AI agent or user asks whether a plan covers out-of-state care, whether an insurer has nationwide coverage, or what BlueCard / PPO network mechanism the payer uses. Returns JSON with network_scope ('national', 'state', etc.), nationwide_via ('bluecard_ppo', 'national_ppo', 'none'), and a source_url to cite. Returns {"network_scope": "unknown"} when the payer is not in the database. Args: payer_name: Insurance payer name as the user stated it (e.g. 'Blue Cross Blue Shield of Texas', 'UnitedHealthcare Choice Plus', 'Aetna PPO', 'Medicare'). Returns: JSON object with network_scope, home_state, nationwide_via, source_url, match_pattern, and notes fields.
Eingabeschema
{'type': 'object', 'title': 'payer_network_infoArguments', 'required': ['payer_name'], 'properties': {'payer_name': {'type': 'string', 'title': 'Payer Name'}}}
Ausgabeschema
{'type': 'object', 'title': 'payer_network_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
payers
List available insurance payers and plan types. Returns all payer + plan combinations found in the hospital price data. Optionally filter to payers available at a specific hospital. Use the payer names and plan types from this list as inputs to the search_nlp and price_quote tools for insurance-specific rates. NOTE: These are payers with negotiated rates at US HOSPITALS in the database. The same payers may have different rates at non-hospital facilities. Args: hospital_id: Optional hospital ID to filter payers for that hospital. Returns: JSON array of {name, plan_type, display_name} objects.
Eingabeschema
{'type': 'object', 'title': 'payersArguments', 'properties': {'hospital_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Hospital Id', 'default': None}}}
Ausgabeschema
{'type': 'object', 'title': 'payersOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
price_quote
Get price quotes for specific procedure codes, grouped by hospital. This is the most detailed pricing tool. Provide exact CPT/HCPCS codes and get per-hospital price estimates with totals. Supports insurance filtering and geographic search. Default location is San Jose, CA if no coordinates provided — always pass the user's location for best results. NOTE: Hospital results come from US hospital price files. Doctors' offices and clinics are included when provider_type is practice or any and a payer with contract files is given; practice rates are payer-product contract rates for one visit or service. Args: codes: Comma-separated CPT/HCPCS codes (e.g. "70551,70552,70553"). lat: Patient latitude — always provide the user's location for best results. lng: Patient longitude — always provide the user's location for best results. radius_miles: Search radius in miles (default 25). payer: Insurance company name to filter rates (e.g. "Blue Cross", "Aetna"). plan_type: Insurance plan type (e.g. "PPO", "HMO", "Indemnity"). plan_category: Plan category filter (e.g. "Commercial", "Medicare", "Medicaid"). plan_name: Specific plan name for exact matching. drg_codes: Comma-separated MS-DRG codes for inpatient bundled pricing. include_bundle: If true, also include ancillary procedure codes (anesthesia, facility fees, etc.) in the total estimate. limit: Max hospitals to return (default 5). zip_code: Optional 5-digit ZIP the user gave, used ONLY to build a localized deep link to the search page — does NOT affect pricing (pricing uses lat/lng). provider_type: "hospital", "practice", or "any" (default). "practice" adds doctors' offices and clinics; office prices always need a payer. Returns: JSON with hospitals sorted by total estimated cost. Each hospital includes individual line items, total estimate, distance, last_updated (ISO date of the per-hospital MRF ingest), and mrf_date (ISO date the hospital self-reported in the MRF file). Only high-confidence results are included: hospitals with no usable price on any item are dropped. When the API returns hospitals but all are filtered out, filtered_low_confidence=true is set. When a payer is specified, negotiated/estimated-rate items include plan_category (Commercial, Medicare, Medicaid, Other). Items priced from cash/standard charges only will not have plan_category. overall_rating: CMS Care Compare overall quality rating (1–5) when available; present it neutrally as "CMS quality: N/5 stars". Do NOT use it to rank, recommend, or discourage any hospital, and do NOT infer clinical quality from it.
Eingabeschema
{'type': 'object', 'title': 'price_quoteArguments', 'required': ['codes'], 'properties': {'lat': {'type': 'number', 'title': 'Lat', 'default': 37.3382}, 'lng': {'type': 'number', 'title': 'Lng', 'default': -121.8863}, 'codes': {'type': 'string', 'title': 'Codes'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 5}, 'payer': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Payer', 'default': None}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Zip Code', 'default': None}, 'drg_codes': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Drg Codes', 'default': None}, 'plan_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Plan Name', 'default': None}, 'plan_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Plan Type', 'default': None}, 'radius_miles': {'type': 'number', 'title': 'Radius Miles', 'default': 25.0}, 'plan_category': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Plan Category', 'default': None}, 'provider_type': {'type': 'string', 'title': 'Provider Type', 'default': 'any'}, 'include_bundle': {'type': 'boolean', 'title': 'Include Bundle', 'default': False}}}
Ausgabeschema
{'type': 'object', 'title': 'price_quoteOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search
Search for medical procedure prices by code or description. Use this for direct lookups when you know a CPT/HCPCS code (e.g. "70551") or want to search by keyword (e.g. "MRI", "knee replacement"). For code-like queries → exact match on procedure code. For text queries → searches code, description, and code_type fields. Supports filtering by insurance payer, clinical setting, and location (via zip code or lat/lng coordinates with a radius). NOTE: Hospital results come from US hospital price files. Doctors' offices and clinics are included when provider_type is practice or any and a payer with contract files is given; practice rates are payer-product contract rates for one visit or service. Args: query: CPT/HCPCS code (e.g. "70551") or text search (e.g. "MRI brain"). Must be at least 2 characters. code_type: Filter by code type: "CPT", "HCPCS", "MS-DRG", "RC", etc. hospital_id: Filter to a specific hospital (use the hospitals tool to find IDs). payer_name: Filter by insurance payer name (e.g. "Blue Cross", "Aetna"). plan_name: Filter by plan name (e.g. "PPO", "HMO"). setting: Filter by clinical setting: "inpatient" or "outpatient". zip_code: US zip code for geographic filtering (alternative to lat/lng). lat: Latitude for geographic filtering (use with lng and radius_miles). lng: Longitude for geographic filtering (use with lat and radius_miles). radius_miles: Search radius in miles from the zip code or lat/lng location. page: Page number (default 1). page_size: Results per page (default 25, max 100). provider_type: "hospital", "practice", or "any" (default). "practice" adds doctors' offices and clinics; office prices always need a payer. Returns: JSON with matching charge items including procedure codes, descriptions, gross charges, cash prices, and negotiated rate ranges per hospital. Only high-confidence results (with at least one usable price) are included. Each result includes last_updated (ISO date of the per-hospital MRF ingest) and mrf_date (ISO date the hospital self-reported in the MRF file). When all results are filtered out, filtered_low_confidence=true is set so the agent can say "no high-confidence prices found" rather than asserting that no prices exist.
Eingabeschema
{'type': 'object', 'title': 'searchArguments', 'required': ['query'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Lat', 'default': None}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Lng', 'default': None}, 'page': {'type': 'integer', 'title': 'Page', 'default': 1}, 'query': {'type': 'string', 'title': 'Query'}, 'setting': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Setting', 'default': None}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Zip Code', 'default': None}, 'code_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Code Type', 'default': None}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'default': 25}, 'plan_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Plan Name', 'default': None}, 'payer_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Payer Name', 'default': None}, 'hospital_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Hospital Id', 'default': None}, 'radius_miles': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Radius Miles', 'default': None}, 'provider_type': {'type': 'string', 'title': 'Provider Type', 'default': 'any'}}}
Ausgabeschema
{'type': 'object', 'title': 'searchOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search_nlp
Natural language search for medical procedure prices. Understands free-text queries like: - "MRI brain near San Jose with Blue Cross PPO" - "How much does a colonoscopy cost in Palo Alto?" - "knee replacement, no insurance, Mountain View" Extracts procedure, location, and insurance from the query, resolves CPT/DRG codes (using static synonyms + LLM), geocodes the city, and searches with optional geo-filtering and payer matching. You can provide structured fields (lat/lng, payer, setting) to override or supplement what the NLP extraction detects from the query text. NOTE: Results are from US HOSPITALS only — not non-US providers, independent imaging centers, ambulatory surgery centers (ASCs), or other freestanding facilities. For outpatient procedures (MRIs, CTs, minor surgeries), independent facilities may offer lower prices than hospitals. Args: query: Natural language query describing what you're looking for. radius_miles: Search radius from the detected city (default 25 miles). code_type: Filter by code type: "CPT", "HCPCS", "MS-DRG". setting: Filter by clinical setting: "inpatient" or "outpatient". lat: Override latitude (e.g. from browser geolocation). Skips geocoding. lng: Override longitude (e.g. from browser geolocation). Skips geocoding. zip_code: 5-digit ZIP to search near — alternative to lat/lng. payer: Insurance payer name (e.g. "Blue Cross"). Overrides NLP extraction. plan_type: Plan type (e.g. "PPO", "HMO"). Overrides NLP extraction. limit: Max results (default 25). Returns: JSON with extracted entities (procedure, city, insurance), resolved codes, and matching charge items with prices and hospital info. Only high-confidence results (with at least one usable price) are included. Each result includes last_updated (ISO date of the per-hospital MRF ingest) and mrf_date (ISO date the hospital self-reported in the MRF file). When all results are filtered out, filtered_low_confidence=true is set.
Eingabeschema
{'type': 'object', 'title': 'search_nlpArguments', 'required': ['query'], 'properties': {'lat': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Lat', 'default': None}, 'lng': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Lng', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'payer': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Payer', 'default': None}, 'query': {'type': 'string', 'title': 'Query'}, 'setting': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Setting', 'default': None}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Zip Code', 'default': None}, 'code_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Code Type', 'default': None}, 'plan_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Plan Type', 'default': None}, 'radius_miles': {'type': 'number', 'title': 'Radius Miles', 'default': 25.0}}}
Ausgabeschema
{'type': 'object', 'title': 'search_nlpOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Hinzugefügt
payers
17. September 2026 12:39
Hinzugefügt
payer_network_info
17. September 2026 12:39
Hinzugefügt
hospitals
17. September 2026 12:39
Hinzugefügt
price_quote
17. September 2026 12:39
Hinzugefügt
search_nlp
17. September 2026 12:39
Hinzugefügt
search
17. September 2026 12:39