Serveur MCP

Loa Healthcare Pricing

io.github.aanari/loacare-healthcare-pricing
Données et analytique Santé Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Searches healthcare providers and CPT codes and returns source-labeled hospital, provider, and market pricing.

explain_price_sources
Explain Price Sources
Explain the source labels, provenance, confidence, and caveats behind Loa prices for one hospital or provider entity. Use this when an agent needs to tell a user why prices are MRF-published, Loa-reviewed, estimated, or unavailable.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Exact Loa entity slug from search_entities.'}, 'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of prices to inspect, default 50, max 100.'}, 'cpt_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 25, 'minItems': 1, 'description': 'Optional CPT codes to explain. If omitted, explains current indexed prices.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entity', 'cpt_codes', 'price_count', 'comparable_mrf_price_count', 'source_summary', 'caveats', 'provenance'], 'properties': {'entity': {'type': 'object', 'required': ['id', 'entityType', 'slug', 'canonicalName', 'city', 'state'], 'properties': {'id': {'type': 'string'}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'slug': {'type': 'string'}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'entityType': {'enum': ['hospital', 'provider'], 'type': 'string'}, 'canonicalName': {'type': 'string'}}, 'additionalProperties': False}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'cpt_codes': {'type': 'array', 'items': {'type': 'string'}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'price_count': {'type': 'number'}, 'source_summary': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'authority', 'sourceType', 'confidence', 'count', 'comparableMrfPriceCount', 'caveats'], 'properties': {'count': {'type': 'number'}, 'label': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'authority': {'type': 'string'}, 'confidence': {'type': 'string'}, 'sourceType': {'type': 'string'}, 'comparableMrfPriceCount': {'type': 'number'}}, 'additionalProperties': False}}, 'comparable_mrf_price_count': {'type': 'number'}}, 'additionalProperties': False}
get_entity_prices
Entity Prices
Return source-labeled prices for a Loa hospital or provider entity slug using the shared resolver. Use search_entities first if the slug is unknown. Results include provenance and explicit unavailable rows for requested CPT codes with no current price.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Exact Loa entity slug from search_entities or a Loa SEO page.'}, 'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of prices, default 50, max 100.'}, 'cpt_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 25, 'minItems': 1, 'description': 'Optional CPT codes to filter. If omitted, returns current indexed prices up to the limit.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entity', 'loa_link', 'prices', 'total', 'provenance'], 'properties': {'total': {'type': 'number'}, 'entity': {'type': 'object', 'required': ['id', 'entityType', 'slug', 'canonicalName', 'city', 'state'], 'properties': {'id': {'type': 'string'}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'slug': {'type': 'string'}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'entityType': {'enum': ['hospital', 'provider'], 'type': 'string'}, 'canonicalName': {'type': 'string'}}, 'additionalProperties': False}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['entityPageId', 'cptCode', 'codeType', 'priceCents', 'priceKind', 'label', 'provenance'], 'properties': {'label': {'type': 'string'}, 'cptCode': {'type': 'string'}, 'setting': {'type': 'string'}, 'codeType': {'type': 'string'}, 'planName': {'type': 'string'}, 'component': {'enum': ['global', 'professional', 'facility', 'unknown'], 'type': 'string'}, 'payerName': {'type': 'string'}, 'priceKind': {'type': 'string'}, 'priceCents': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['authority', 'sourceType', 'sourceLabel', 'confidence', 'caveats'], 'properties': {'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'authority': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'sourceType': {'type': 'string'}, 'sourceLabel': {'type': 'string'}, 'sourceUpdatedAt': {'type': 'string'}}, 'additionalProperties': False}, 'sourceRowId': {'type': 'string'}, 'billingClass': {'type': 'string'}, 'entityPageId': {'type': 'string'}, 'serviceCategory': {'type': 'string'}, 'basePriceIndexId': {'type': 'string'}, 'comparableMrfPrice': {'type': 'object', 'required': ['entityPageId', 'cptCode', 'codeType', 'priceCents', 'priceKind', 'label', 'provenance'], 'properties': {'label': {'type': 'string'}, 'cptCode': {'type': 'string'}, 'setting': {'type': 'string'}, 'codeType': {'type': 'string'}, 'planName': {'type': 'string'}, 'component': {'enum': ['global', 'professional', 'facility', 'unknown'], 'type': 'string'}, 'payerName': {'type': 'string'}, 'priceKind': {'type': 'string'}, 'priceCents': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['authority', 'sourceType', 'sourceLabel', 'confidence', 'caveats'], 'properties': {'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'authority': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'sourceType': {'type': 'string'}, 'sourceLabel': {'type': 'string'}, 'sourceUpdatedAt': {'type': 'string'}}, 'additionalProperties': False}, 'sourceRowId': {'type': 'string'}, 'billingClass': {'type': 'string'}, 'entityPageId': {'type': 'string'}, 'serviceCategory': {'type': 'string'}, 'basePriceIndexId': {'type': 'string'}, 'overlayRelationship': {'type': 'string'}, 'procedureDescription': {'type': 'string'}}, 'additionalProperties': False}, 'overlayRelationship': {'type': 'string'}, 'procedureDescription': {'type': 'string'}}, 'additionalProperties': False}}, 'loa_link': {'anyOf': [{'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_entity_profile
Entity Profile
Return one Loa hospital or provider entity profile by exact slug or entity_pages.id. Includes profile-field provenance so agents can distinguish source-file fields from Loa-reviewed overrides.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug_or_id'], 'properties': {'slug_or_id': {'type': 'string', 'minLength': 1, 'description': 'Exact Loa entity slug or entity_pages.id from search_entities.'}, 'entity_type': {'enum': ['hospital', 'provider'], 'type': 'string', 'description': 'Optional disambiguation when slug_or_id is a slug.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entity', 'loa_link', 'profile_provenance', 'profile_field_provenance', 'provenance'], 'properties': {'entity': {'type': 'object', 'required': ['id', 'entityType', 'slug', 'canonicalName', 'displayName', 'city', 'state', 'zipCode', 'address', 'phone', 'website', 'npi', 'ccn', 'hpfId', 'dataQualityScore', 'updatedAt', 'metadata'], 'properties': {'id': {'type': 'string'}, 'ccn': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'npi': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'slug': {'type': 'string'}, 'hpfId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'phone': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'address': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'website': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'zipCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'metadata': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'updatedAt': {'type': 'string', 'description': 'ISO 8601 timestamp'}, 'entityType': {'enum': ['hospital', 'provider'], 'type': 'string'}, 'displayName': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'canonicalName': {'type': 'string'}, 'dataQualityScore': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'loa_link': {'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'profile_provenance': {'type': 'object', 'required': ['authority', 'source_type', 'source_label', 'confidence'], 'properties': {'authority': {'type': 'string'}, 'confidence': {'type': 'string'}, 'source_type': {'type': 'string'}, 'source_label': {'type': 'string'}, 'loa_reviewed_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'profile_field_provenance': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['authority', 'source_type', 'source_label', 'confidence'], 'properties': {'authority': {'type': 'string'}, 'confidence': {'type': 'string'}, 'source_type': {'type': 'string'}, 'source_label': {'type': 'string'}, 'loa_reviewed_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_hospital_pricing
Hospital Pricing
Hospital-specific pricing tool for source-labeled Loa runtime data. Returns source-labeled Published MRF prices and Loa Verified Provider Price overlays for CPT codes. cash_price is the cash/self-pay price, list_price is the gross charge before discounts (most patients pay less), and insurance_prices are payer-negotiated rates for the named plan, not out-of-pocket costs. Any of these can be null when the hospital did not publish that price. Use this when comparing named hospitals or checking a quoted hospital price against available source rows.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hospital_ids', 'cpt_codes'], 'properties': {'cpt_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'CPT procedure codes to look up pricing for'}, 'hospital_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'Hospital IDs from search_hospitals results'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pricing', 'total', 'hospitals_found', 'services_found', 'provenance'], 'properties': {'total': {'type': 'number'}, 'pricing': {'type': 'array', 'items': {'type': 'object', 'required': ['hospital_id', 'hospital_name', 'hospital_location', 'cpt_code', 'cpt_description', 'cash_price', 'cash_source_labels', 'list_price', 'insurance_prices', 'source_labels', 'record_count', 'loa_link'], 'properties': {'cpt_code': {'type': 'string'}, 'loa_link': {'anyOf': [{'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, {'type': 'null'}]}, 'cash_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'list_price': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'hospital_id': {'type': 'string'}, 'record_count': {'type': 'number'}, 'hospital_name': {'type': 'string'}, 'source_labels': {'type': 'array', 'items': {'type': 'string'}}, 'cpt_description': {'type': 'string'}, 'insurance_prices': {'type': 'array', 'items': {'type': 'object', 'required': ['payer', 'plan', 'price', 'source_label'], 'properties': {'plan': {'type': 'string'}, 'payer': {'type': 'string'}, 'price': {'type': 'number'}, 'source_label': {'type': 'string'}}, 'additionalProperties': False}}, 'hospital_location': {'type': 'string'}, 'cash_source_labels': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'services_found': {'type': 'number'}, 'hospitals_found': {'type': 'number'}}, 'additionalProperties': False}
get_market_pricing
Market Pricing
Preferred benchmark pricing tool. Returns hospital-level market statistics for CPT codes from Loa's published hospital price-transparency data: cash/self-pay prices, list prices (gross charges before discounts), overall insurer-negotiated rates, and rates for the most common insurers. Each hospital counts once. Lead with the median and the p25-p75 range rather than min or max. Figures are statewide or national, never local to a ZIP code. When status is insufficient_data, say Loa doesn't have enough data instead of estimating, and always relay the limitations. Negotiated rates are not out-of-pocket costs.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cpt_codes'], 'properties': {'state': {'type': 'string', 'description': 'State for regional pricing (e.g. "CA", "New York"). Unknown states return McpToolInvalidInput. When fewer than 5 hospitals in the state published a price, national figures are returned with a limitation.'}, 'zip_code': {'type': 'string', 'description': 'ZIP code, used only to pick the state when state is omitted'}, 'cpt_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'CPT codes to look up (e.g. ["99213", "93000"])'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pricing', 'state', 'provenance'], 'properties': {'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'pricing': {'type': 'array', 'items': {'type': 'object', 'required': ['cpt_code', 'status', 'scope', 'cash_price', 'list_price', 'insurance_price', 'insurance_by_payer', 'confidence', 'cash_data_points', 'insurance_data_points', 'states_covered', 'source_dates', 'limitations'], 'properties': {'scope': {'anyOf': [{'enum': ['state', 'national'], 'type': 'string'}, {'type': 'null'}]}, 'status': {'enum': ['ok', 'insufficient_data'], 'type': 'string'}, 'cpt_code': {'type': 'string'}, 'cash_price': {'anyOf': [{'type': 'object', 'required': ['median', 'average', 'min', 'max', 'p25', 'p75', 'data_points', 'hospital_count', 'source'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'p25': {'type': 'number'}, 'p75': {'type': 'number'}, 'median': {'type': 'number'}, 'source': {'enum': ['state', 'national'], 'type': 'string'}, 'average': {'type': 'number'}, 'data_points': {'type': 'number', 'description': 'Price records behind this figure'}, 'hospital_count': {'type': 'number', 'description': 'Hospitals behind this figure; each counts once'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'list_price': {'anyOf': [{'type': 'object', 'required': ['median', 'average', 'min', 'max', 'p25', 'p75', 'data_points', 'hospital_count', 'source'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'p25': {'type': 'number'}, 'p75': {'type': 'number'}, 'median': {'type': 'number'}, 'source': {'enum': ['state', 'national'], 'type': 'string'}, 'average': {'type': 'number'}, 'data_points': {'type': 'number', 'description': 'Price records behind this figure'}, 'hospital_count': {'type': 'number', 'description': 'Hospitals behind this figure; each counts once'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'limitations': {'type': 'array', 'items': {'type': 'string'}}, 'source_dates': {'anyOf': [{'type': 'object', 'required': ['earliest', 'latest'], 'properties': {'latest': {'type': 'string'}, 'earliest': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Extraction dates of the underlying hospital files (YYYY-MM-DD)'}, 'states_covered': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'insurance_price': {'anyOf': [{'type': 'object', 'required': ['median', 'average', 'min', 'max', 'p25', 'p75', 'data_points', 'hospital_count', 'source'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'p25': {'type': 'number'}, 'p75': {'type': 'number'}, 'median': {'type': 'number'}, 'source': {'enum': ['state', 'national'], 'type': 'string'}, 'average': {'type': 'number'}, 'data_points': {'type': 'number', 'description': 'Price records behind this figure'}, 'hospital_count': {'type': 'number', 'description': 'Hospitals behind this figure; each counts once'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'cash_data_points': {'type': 'number'}, 'insurance_by_payer': {'type': 'array', 'items': {'type': 'object', 'required': ['payer', 'median', 'p25', 'p75', 'data_points', 'hospital_count'], 'properties': {'p25': {'type': 'number'}, 'p75': {'type': 'number'}, 'payer': {'type': 'string'}, 'median': {'type': 'number'}, 'data_points': {'type': 'number'}, 'hospital_count': {'type': 'number'}}, 'additionalProperties': False}}, 'insurance_data_points': {'type': 'number'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_pricing_estimate
Pricing Estimate
Quick cash-price ballpark for one or more CPT codes, using the median cash price across hospitals in the state (from zip_code) or nationally. priceRange is the typical range (25th to 75th percentile of hospitals). Codes without enough data return insufficient_data and are listed in missingCodes; the total is null unless every code has data. Never fill gaps with your own estimate. For insurer rates or hospital-specific prices, use get_market_pricing or get_hospital_pricing.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['procedure_codes'], 'properties': {'zip_code': {'type': 'string', 'description': 'ZIP code used to pick the state (omit for national figures)'}, 'procedure_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'CPT procedure codes to price (e.g. ["99213", "85025"])'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['estimatedCost', 'procedures', 'zipCode', 'state', 'missingCodes', 'limitations', 'provenance', 'disclaimer'], 'properties': {'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'zipCode': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'disclaimer': {'type': 'string'}, 'procedures': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'description', 'estimatedCost', 'priceRange', 'pricingMethod', 'scope', 'data_points', 'hospital_count'], 'properties': {'code': {'type': 'string'}, 'scope': {'anyOf': [{'enum': ['state', 'national'], 'type': 'string'}, {'type': 'null'}]}, 'priceRange': {'anyOf': [{'type': 'object', 'required': ['min', 'max'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'data_points': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'description': {'type': 'string'}, 'estimatedCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'pricingMethod': {'enum': ['observed_market_median', 'insufficient_data'], 'type': 'string'}, 'hospital_count': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'limitations': {'type': 'array', 'items': {'type': 'string'}}, 'missingCodes': {'type': 'array', 'items': {'type': 'string'}}, 'estimatedCost': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}
search_cpt_codes
CPT Code Search
Canonical code-lookup tool for this server. Search Loa's CPT/HCPCS index using exact codes, clinical terms, or consumer phrases. Use this first when the user does not already know the CPT code, before calling pricing tools.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Maximum number of results (default 10, max 25)'}, 'query': {'type': 'string', 'description': 'Search query, procedure name, medical term, or CPT code number (e.g. "knee MRI", "blood work", "99213")'}, 'category': {'type': 'string', 'description': 'Filter by category: "evaluation_management", "laboratory", "radiology", "surgery", "preventive"'}, 'specialty': {'type': 'string', 'description': 'Filter by medical specialty (e.g. "cardiology", "dermatology")'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'specialty', 'category', 'total', 'provenance', 'results'], 'properties': {'query': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'name', 'description', 'category', 'isCommon'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'category': {'type': 'string'}, 'isCommon': {'type': 'boolean'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, 'category': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'specialty': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_entities
Entity Search
Search Loa runtime hospital and provider entity pages by name or state. Use this before get_entity_prices when the user names a hospital or provider but does not know the exact Loa slug.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results, default 20, max 50.'}, 'query': {'type': 'string', 'description': 'Hospital or provider name to search for.'}, 'state': {'type': 'string', 'description': 'Two-letter state code or full state name, e.g. CA or New York.'}, 'entity_type': {'enum': ['hospital', 'provider'], 'type': 'string', 'description': 'Optional filter for hospital or provider entities.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'total', 'entities', 'provenance'], 'properties': {'query': {'type': 'object', 'required': ['query', 'entity_type', 'state'], 'properties': {'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'entity_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'total': {'type': 'number'}, 'entities': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entity_type', 'slug', 'canonical_name', 'display_name', 'city', 'state', 'zip_code', 'data_quality_score', 'updated_at', 'loa_link'], 'properties': {'id': {'type': 'string'}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'slug': {'type': 'string'}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'loa_link': {'anyOf': [{'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, {'type': 'null'}]}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updated_at': {'type': 'string', 'description': 'ISO 8601 timestamp'}, 'entity_type': {'enum': ['hospital', 'provider'], 'type': 'string'}, 'display_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'canonical_name': {'type': 'string'}, 'data_quality_score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_hospitals
Hospital Search
Search Loa's hospital directory by name or location and return hospital IDs plus address details. Use the returned hospital_ids with get_hospital_pricing to fetch source-labeled Published MRF and reviewed overlay prices.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'city': {'type': 'string', 'description': 'City name'}, 'name': {'type': 'string', 'description': 'Hospital name to search for'}, 'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20)'}, 'state': {'type': 'string', 'description': 'Two-letter state code or full state name, e.g. "CA" or "New York".'}, 'zip_code': {'type': 'string', 'description': 'ZIP code'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'hospitals', 'total', 'provenance'], 'properties': {'query': {'type': 'object', 'required': ['state', 'city', 'zip_code', 'name'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'total': {'type': 'number'}, 'hospitals': {'type': 'array', 'items': {'type': 'object', 'required': ['hospital_id', 'name', 'address', 'city', 'state', 'zip_code', 'phone', 'website', 'loa_link'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'phone': {'type': 'string'}, 'state': {'type': 'string'}, 'address': {'type': 'string'}, 'website': {'type': 'string'}, 'loa_link': {'anyOf': [{'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, {'type': 'null'}]}, 'zip_code': {'type': 'string'}, 'hospital_id': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
search_providers
Provider Search
Search public CMS NPI Registry data for clinicians and healthcare organizations by specialty, name, or location. Use returned provenance to understand the registry source and scope. Use this for provider lookup, not pricing.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': 'Provider name to search for (e.g. "John Smith")'}, 'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20)'}, 'location': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City name'}, 'state': {'type': 'string', 'description': 'State code or full name (e.g. "CA", "California")'}, 'zip_code': {'type': 'string', 'description': 'ZIP code'}}, 'description': 'Location to search in'}, 'specialty': {'type': 'string', 'description': 'Medical specialty (e.g. "Cardiology", "Family Medicine")'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'providers', 'total', 'provenance'], 'properties': {'query': {'type': 'object', 'required': ['specialty', 'name', 'location'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'location': {'type': 'object', 'required': ['city', 'state', 'zip_code'], 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'specialty': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'total': {'type': 'number'}, 'providers': {'type': 'array', 'items': {'type': 'object', 'required': ['npi', 'name', 'specialty', 'address', 'city', 'state', 'zip_code', 'phone', 'loa_link'], 'properties': {'npi': {'type': 'string'}, 'city': {'type': 'string'}, 'name': {'type': 'string'}, 'phone': {'type': 'string'}, 'state': {'type': 'string'}, 'address': {'type': 'string'}, 'loa_link': {'anyOf': [{'type': 'object', 'required': ['url', 'action', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'action': {'enum': ['book', 'website', 'profile'], 'type': 'string'}}, 'description': 'Tracked Loa link. Share it when the user wants to book, contact, or learn more about this provider or hospital.', 'additionalProperties': False}, {'type': 'null'}]}, 'zip_code': {'type': 'string'}, 'specialty': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}}, 'additionalProperties': False}
submit_entity_update_request
Submit Entity Update Request
Submit a profile, listing, or price correction for Loa review without requiring a provider portal. This is the only mutating provider/entity tool. It requires OAuth, captures submitter and source evidence, records linked-provider status when available, and never changes public data until Loa approves the request.
Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submitter_email', 'request_type'], 'properties': {'attestation': {'enum': ['provider_representative', 'authorized_agent', 'public_source', 'other'], 'type': 'string', 'description': 'How the submitter is connected to the submitted evidence.'}, 'entity_slug': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Exact Loa entity slug if entity_page_id is not available.'}, 'entity_type': {'enum': ['hospital', 'provider', 'unknown'], 'type': 'string', 'default': 'unknown', 'description': 'Entity kind for the requested update; use unknown only when it cannot be determined.'}, 'price_items': {'type': 'array', 'items': {'type': 'object', 'required': ['cpt_code'], 'properties': {'setting': {'type': 'string', 'maxLength': 100}, 'cpt_code': {'type': 'string', 'maxLength': 20, 'minLength': 3}, 'code_type': {'type': 'string', 'default': 'CPT', 'maxLength': 20, 'minLength': 1}, 'component': {'enum': ['global', 'professional', 'facility', 'unknown'], 'type': 'string', 'default': 'unknown'}, 'plan_name': {'type': 'string', 'maxLength': 300}, 'exclusions': {'type': 'string', 'maxLength': 1000}, 'payer_name': {'type': 'string', 'maxLength': 300}, 'price_kind': {'enum': ['cash', 'discounted_cash', 'package_cash', 'payer_negotiated'], 'type': 'string', 'default': 'cash'}, 'price_notes': {'type': 'string', 'maxLength': 1000}, 'service_name': {'type': 'string', 'maxLength': 300}, 'billing_class': {'type': 'string', 'maxLength': 100}, 'included_services': {'type': 'array', 'items': {'type': 'string', 'maxLength': 300}}, 'proposed_price_cents': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}, 'default': [], 'maxItems': 100, 'description': 'Optional structured price rows proposed for Loa review.'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'default': [], 'maxItems': 10, 'description': 'Optional public URLs reviewers can use to verify the submitted change.'}, 'request_type': {'enum': ['price_update', 'profile_correction', 'new_listing', 'remove_listing', 'other'], 'type': 'string', 'description': 'Type of reviewed change being requested.'}, 'source_notes': {'type': 'string', 'maxLength': 2000, 'description': 'Short verification notes, source context, or callback instructions.'}, 'entity_page_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Loa entity_pages.id for the provider or hospital.'}, 'submitter_name': {'type': 'string', 'maxLength': 200, 'description': 'Name of the person submitting the request.'}, 'submitter_role': {'type': 'string', 'maxLength': 200, 'description': 'Submitter role, such as billing manager or authorized agent.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Optional stable retry key. Loa derives one from the payload if omitted.'}, 'submitter_email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Work email for the submitting representative.'}, 'submitter_phone': {'type': 'string', 'maxLength': 50, 'description': 'Optional callback phone number for reviewer follow-up.'}, 'proposed_changes': {'type': 'object', 'default': {}, 'description': 'Structured profile or listing fields proposed for Loa review.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'uploaded_file_url': {'type': 'string', 'format': 'uri', 'description': 'Optional public URL for an uploaded evidence file.'}, 'submitter_organization': {'type': 'string', 'maxLength': 300, 'description': 'Provider, hospital, or agent organization represented by the submitter.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['requestId', 'updateRequestId', 'status', 'entityPageId', 'reusedExisting'], 'properties': {'status': {'type': 'string'}, 'requestId': {'type': 'string'}, 'entityPageId': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'reusedExisting': {'type': 'boolean'}, 'updateRequestId': {'type': 'string'}}, 'additionalProperties': False}
suggest_procedures
Procedure Suggestions
Advisory helper that suggests likely CPT codes from a plain-English medical need. Uses Loa heuristics plus AI and is not authoritative or diagnostic. Use only when the user cannot name the procedure, then confirm candidates with search_cpt_codes before pricing them. Requires signing in to Loa; without sign-in, use search_cpt_codes with consumer phrases instead.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 2, 'description': 'Natural language description of the medical need (e.g. "I have a rash on my arm", "need imaging for my lower back pain")'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type', 'interpretation', 'needsConfirmationWith', 'provenance', 'suggestedCodes'], 'properties': {'type': {'enum': ['specialty_browse', 'imaging_browse', 'search_results'], 'type': 'string'}, 'provenance': {'type': 'object', 'required': ['authority', 'basis', 'methodology_url'], 'properties': {'basis': {'type': 'string'}, 'authority': {'enum': ['authoritative', 'advisory', 'estimate'], 'type': 'string'}, 'source_url': {'type': 'string', 'format': 'uri'}, 'source_scope': {'type': 'string'}, 'methodology_url': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'interpretation': {'type': 'string'}, 'suggestedCodes': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'friendlyName', 'technicalName', 'whyRelevant', 'relevance'], 'properties': {'code': {'type': 'string'}, 'relevance': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'whyRelevant': {'type': 'string'}, 'friendlyName': {'type': 'string'}, 'technicalName': {'type': 'string'}}, 'additionalProperties': False}}, 'needsConfirmationWith': {'type': 'string', 'const': 'search_cpt_codes'}}, 'additionalProperties': False}
Modifié
get_hospital_pricing
29 September 2026 02:51
Modifié
get_market_pricing
29 September 2026 02:51
Modifié
get_pricing_estimate
29 September 2026 02:51
Modifié
get_entity_profile
25 September 2026 02:51
Modifié
get_entity_prices
25 September 2026 02:51
Modifié
search_entities
25 September 2026 02:51
Modifié
get_hospital_pricing
25 September 2026 02:51
Modifié
search_hospitals
25 September 2026 02:51
Modifié
search_providers
25 September 2026 02:51
Modifié
suggest_procedures
25 September 2026 02:51
Ajouté
submit_entity_update_request
17 September 2026 12:40
Ajouté
explain_price_sources
17 September 2026 12:40
Ajouté
get_entity_profile
17 September 2026 12:40
Ajouté
get_entity_prices
17 September 2026 12:40
Ajouté
search_entities
17 September 2026 12:40
Ajouté
get_hospital_pricing
17 September 2026 12:40
Ajouté
search_hospitals
17 September 2026 12:40
Ajouté
get_market_pricing
17 September 2026 12:40
Ajouté
get_pricing_estimate
17 September 2026 12:40
Ajouté
search_providers
17 September 2026 12:40
Ajouté
suggest_procedures
17 September 2026 12:40
Ajouté
search_cpt_codes
17 September 2026 12:40