Dashboard

PayerPrice MCP Documentation

Connect an AI assistant to PayerPrice data using the Model Context Protocol (MCP).

Get access

  1. Checking your account…
  2. Add the server URL below to your MCP client. Choose a client in the setup section for exact steps.
  3. Approve access when your MCP client opens PayerPrice authorization. Sign in there if prompted, then use one of the available tools.

Authorization and API keys

Compatible clients use OAuth to connect to PayerPrice. Being signed in to this page does not connect an MCP client; approve its authorization request separately. Direct integrations can instead send an active API key in the Authorization: Bearer YOUR_API_KEY header. Find your assigned key below. Keep keys private. Your organization's tool access and API/MCP credits still apply.

Methods and tools

The server uses Streamable HTTP. Your MCP client discovers permitted tools with tools/list and invokes them with tools/call. Each tool below documents its inputs and purpose. For REST endpoints and HTTP methods, see the API Doc.

Your MCP Auth Keys

Loading account…

Monitor your MCP usage

Track MCP tool calls, recent activity, costs, and your shared API/MCP credit balance in the usage dashboard.

MCP Server URL

https://api.payerprice.com/api/v1/open/mcp

Connect your AI assistant

In Claude Desktop, open Customize → Connectors, select + → Add custom connector, and enter the PayerPrice server URL:

https://api.payerprice.com/api/v1/open/mcp

On Team or Enterprise plans, an organization owner must add the remote connector first. Then select Connect to sign in.

Available tools

Prices apply to successful calls. Each tool shows its description and inputs; collapse sections you do not need.

API / MCP credit balance

Loading…

Sign in
search_market_percentile_negotiated_rates

Aggregate statistics over commercial negotiated rates in a market.

Compute aggregate statistics (percentiles, min, max, mean) over commercial negotiated rates across all providers that match the given filters (state, specialty, payer, billing code, etc.). Use this to understand the distribution of rates in a market - e.g. 'what do BCBS and United typically pay cardiologists in Texas for CPT 99213?'. Returns aggregated numbers only. Within each groupBy group every TIN contributes one value, its highest matching rate, so include num_distinct_tins and report it as the sample size. Returns {result: [{...groupBy fields, metrics: e.g. '50_pct', value}], url}. Setting metrics.comparedTo returns values as a percent of national Medicare instead of dollars. Use search_market_negotiated_rates for individual rows across a market or search_provider_fee_schedule for identified providers.

Parameters

filters.statesstring[]Required

Required. Two-letter US state codes that providers must be located in (e.g. ['CA', 'MA', 'TX']).

filters.zipCodesstring[]Optional

Five-digit US ZIP codes to further restrict provider location (e.g. ['02451', '90210']).

filters.taxonomyCodesstring[]Required

Required. NUCC provider taxonomy codes that identify specialty (e.g. ['207Q00000X'] for Family Medicine). Narrow to at least one specialty.

filters.entityTypes'individual' | 'group'[]Optional

Entity type to filter providers by: 'individual' (solo practitioner) or 'group' (organization/group practice). Omit to include both.

filters.payersstring[]Required

Required. Insurance payer identifiers (e.g. ['BCBS', 'United', 'Aetna']). All Blue Cross Blue Shield identifiers query one combined Blues dataset reported as 'BCBS'. See the search-rates://options/payers resource for the full list.

filters.billingCodeAndTypesobject[]Optional

Exact billing codes and their code system (e.g. [{ code: '99213', type: 'CPT' }]).

filters.billingClasses'professional' | 'institutional'[]Optional

Rate source: 'professional' (physician/practitioner billing) or 'institutional' (facility/hospital billing).

filters.serviceCodesstring[]Optional

CMS Place of Service codes as two-character strings (e.g. '11' for office, '22' for outpatient hospital, '02' for telehealth).

filters.billingCodeModifiersstring[]Optional

CPT/HCPCS modifiers to narrow results (e.g. '25', '59', 'LT').

filters.negotiatedTypesstring[]Optional

How the rate is expressed (e.g. 'negotiated', 'fee schedule', 'per diem', 'percentage', 'derived'). See the search-rates://options/negotiated-types resource for all values.

filters.yearMonthsobject[]Optional

Specific year/month periods to filter by, e.g. [{ year: 2024, month: 10 }]. Leave empty to use the most recently available data.

filters.planNamesstring[]Optional

Normalized insurance plan types to filter by (e.g. ['HMO', 'PPO', 'EPO']).

filters.networksstring[]Optional

Individual (un-normalized) network names to filter rates by, exactly as reported in the payer transparency file (e.g. ['Choice Plus', 'Navigate']).

metrics.aggregationsstring[]Required

Statistical aggregates to compute over the rates that match the filters above (e.g. ['percentile_50', 'percentile_75', 'percentile_90']). Include 'num_distinct_tins' for sample size. See the search-rates://options/aggregations resource for values that return results.

metrics.comparedTostringOptional

Optional. 'medicare_<year>' returns every rate statistic as a percent of the national non-facility Medicare Physician Fee Schedule amount for the same CPT code (145 means 145%); codes without that CPT rate return null rate statistics. Omit or use 'none' for dollar values.

groupBystring[]Required

Dimensions to group results by, e.g. ['payer', 'billingCode'] returns one row per (payer, code) combination. Network output semantics are endpoint-specific: market benchmarks return one group per network, while provider rates return a deduplicated network array. Include at least 'payer' and 'billingCode' in most cases - without them, rates are pooled across payers/codes and are usually not interpretable.

Try this tool

Start with an example, adjust its arguments, and run it with your account.

Request

JSON arguments

Response

Not run yet

Run the tool to see its response here.

Sign in to see pricing and run this tool

search_market_negotiated_rates

Individual negotiated-rate rows across providers in a market.

Retrieve a bounded page of individual provider negotiated-rate rows for a state, specialty, payer, and billing code. Use for provider-level market comparisons or row-level evidence. Use search_market_percentile_negotiated_rates for typical rates, averages, medians, or percentiles. limit.offset is the page size (at most 100) and limit.start is the number of rows to skip. aggregatedColumns collapses listed fields within rows; it is not a group-by setting. Returns rows only, with no citation url.

Parameters

filters.statesstring[]Required

US state codes (e.g., CA, MA, TX) to search for.

filters.zipCodesstring[]Optional

5-digit US ZIP codes to filter results by provider location (e.g., 02451, 90210).

filters.taxonomyCodesstring[]Required

Provider taxonomy codes to search for.

filters.entityTypes'individual' | 'group'[]Optional

Provider entity types to search for.

filters.payersstring[]Required

Insurance payer names (e.g., BCBS, United, Aetna) to search.

filters.billingCodeAndTypesobject[]Optional

Specific billing codes to search for.

filters.billingClasses'professional' | 'institutional'[]Optional

Professional vs institutional.

filters.serviceCodesstring[]Optional

Place of service codes (e.g., 11 for office, 21 for hospital) to search for.

filters.billingCodeModifiersstring[]Optional

CPT modifiers to search for.

filters.negotiatedTypesstring[]Optional

Rate negotiation types to search for.

filters.yearMonthsobject[]Optional

Year/month periods to search, e.g. [{ year: 2026, month: 9 }]. When omitted, each payer's most recent loaded month is used, which can differ between payers.

filters.planNamesstring[]Optional

Normalized plan names to filter by (e.g., 'HMO', 'PPO', 'EPO'). These filter rates to specific insurance plan types.

filters.networksstring[]Optional

Individual (un-normalized) network names to filter rates by, exactly as reported in the payer transparency file (e.g., 'Choice Plus', 'Navigate').

aggregatedColumnsstring[]Optional

Fields to collapse into delimited output lists, not group-by dimensions. Payer is always a separate result dimension and is not valid here. Defaults to serviceCode and billingCodeModifier. Include network only when network output is needed because it resolves network_names_arr.

rateAggregationstringOptional

How to combine negotiated rates collapsed into one row. Applies only when aggregatedColumns includes 'negotiatedRate'; defaults to listUniqueValues.

sortInfoobject[]Optional

Server-side sorting applied before pagination. columnId must be one of payer, tin, npi, billingTypeCode, negotiatedType, billingClass, negotiatedRate, serviceCode, or billingCodeModifier; other values are ignored. Defaults to npi ascending.

limitobjectOptional

Pagination. Note that offset is the page size and start is the number of rows skipped. Defaults to the first 100 rows.

limit.startnumberOptional

Number of rows to skip before the page starts. Defaults to 0.

limit.offsetnumberRequired

Page size: number of rows to return, at most 100.

Try this tool

Start with an example, adjust its arguments, and run it with your account.

Request

JSON arguments

Response

Not run yet

Run the tool to see its response here.

Sign in to see pricing and run this tool

search_provider_fee_schedule

Negotiated rates for specific providers identified by NPI, TIN, or CCN.

Retrieve the commercial negotiated rates (fee schedule) for specific providers identified by NPI, TIN, or CCN, for the payers and billing codes you specify. Use this when you want each provider's own rates - e.g. 'what rates has Mayo Clinic negotiated with Aetna for office visits?'. Returns {result: [{...groupBy fields, metrics: e.g. 'tin_123456789', value}], url}, where value is that provider's highest rate in the group; dimensions left out of groupBy are collapsed. At most 12 payer-month combinations per call. Use search_market_negotiated_rates for individual rates across a market or search_market_percentile_negotiated_rates for market statistics.

Parameters

providersobjectRequired

Providers to return rates for. Provide at least one of npis, tins, or ccns. Use search_providers first if you only know the provider's name.

providers.npisnumber[]Optional

NPIs (10-digit numbers) whose negotiated rates to retrieve.

providers.tinsnumber[]Optional

TINs as integers without dashes whose negotiated rates to retrieve; leading zeros drop (04-1234567 becomes 41234567).

providers.ccnsstring[]Optional

CCNs (CMS Certification Numbers, 6 characters) whose negotiated rates to retrieve.

payersstring[]Required

Required. Insurance payer identifiers (e.g. ['BCBS', 'United', 'Aetna']). All Blue Cross Blue Shield identifiers query one combined Blues dataset reported as 'BCBS'. See the search-rates://options/payers resource for the full list.

billingCodeAndTypesobject[]Optional

Exact billing codes and their code system (e.g. [{ code: '99213', type: 'CPT' }]).

billingClasses'professional' | 'institutional'[]Optional

Rate source: 'professional' (physician/practitioner billing) or 'institutional' (facility/hospital billing).

serviceCodesstring[]Optional

CMS Place of Service codes as two-character strings (e.g. '11' for office, '22' for outpatient hospital, '02' for telehealth).

billingCodeModifiersstring[]Optional

CPT/HCPCS modifiers to narrow results (e.g. '25', '59', 'LT').

negotiatedTypesstring[]Optional

How the rate is expressed (e.g. 'negotiated', 'fee schedule', 'per diem', 'percentage', 'derived'). See the search-rates://options/negotiated-types resource for all values.

yearMonthsobject[]Optional

Specific year/month periods to filter by, e.g. [{ year: 2024, month: 10 }]. Leave empty to use the most recently available data.

planNamesstring[]Optional

Normalized insurance plan types to filter by (e.g. ['HMO', 'PPO', 'EPO']).

networksstring[]Optional

Individual (un-normalized) network names to filter rates by, exactly as reported in the payer transparency file (e.g. ['Choice Plus', 'Navigate']).

groupBystring[]Required

Dimensions to group provider-rate results by. Network and planName are returned as deduplicated arrays instead of splitting otherwise identical rate rows. Include at least 'payer' and 'billingCode' in most cases - without them, rates are pooled across payers/codes and are usually not interpretable.

Try this tool

Start with an example, adjust its arguments, and run it with your account.

Request

JSON arguments

Response

Not run yet

Run the tool to see its response here.

Sign in to see pricing and run this tool

search_providers

Look up healthcare providers by name, specialty, or state.

Look up healthcare providers by name (e.g. 'Mayo Clinic'), specialty (via taxonomyCodes), or state, and return their identifying details: NPI/TIN/CCN, name, states, taxonomy codes, entity type, and in-network payers. Commonly used as the first step before search_provider_fee_schedule - find the provider(s) here, then pass the returned NPI/TIN/CCN values to fetch their negotiated rates. Returns NPI and TIN matches unless types includes 'ccn'. Results are candidates; confirm name, state, and specialty before using them.

Parameters

providerNamestringOptional

Name of an individual provider, group, hospital, or clinic (e.g. 'Dr. John Smith' or 'Mayo Clinic'). Do not put specialties (e.g. 'Cardiology', 'Pediatrics') here - use taxonomyCodes for that.

types'npi' | 'tin' | 'ccn'[]Optional

Which identifier types to return results for: * 'npi' - National Provider Identifier, covers both individuals and organizations. * 'tin' - Tax Identification Number, used for organizations/group practices. * 'ccn' - CMS Certification Number, used for Medicare-certified hospitals and facilities. Searched only when listed; uses providerName and the first state. Omit to return NPI and TIN matches.

statesstring[]Optional

Two-letter US state codes to filter providers by (e.g. ['CA', 'MA']). Omit to search across all states.

taxonomyCodesstring[]Optional

Provider taxonomy codes (NUCC) that identify a specialty, e.g. '208000000X' for Pediatrics. Required when searching by specialty rather than by a specific provider name or identifier.

limitnumberOptional

Maximum number of providers to return per identifier type. Defaults to the top 10 most relevant matches per type; capped at 30.

Try this tool

Start with an example, adjust its arguments, and run it with your account.

Request

JSON arguments

Response

Not run yet

Run the tool to see its response here.

Sign in to see pricing and run this tool

search_medicare_rates

Medicare's published fee schedules and reference rates.

Look up Medicare's published fee schedules and reference rates. Pick one medicareType: 'Physician FFS' (fee-for-service physician rates by HCPCS code and locality), 'Drug ASP' (quarterly Average Sale Price for Part B drug codes), 'MS-DRG weight' (inpatient DRG relative weights), or 'Anesthesia' (national anesthesia conversion factors by year/month). Useful as a government-rate baseline when comparing against commercial negotiated rates returned by the other tools.

Parameters

medicareType'Physician FFS' | 'Drug ASP' | 'MS-DRG weight' | 'Anesthesia'Required

Required. Which Medicare dataset to query: 'Physician FFS' (Physician Fee Schedule rates by HCPCS code and locality), 'Drug ASP' (Average Sale Price for Part B drug codes), 'MS-DRG weight' (inpatient DRG relative weights), or 'Anesthesia' (national anesthesia conversion factors).

codesstring[]Optional

Billing codes to look up - HCPCS/CPT for Physician FFS, HCPCS for Drug ASP, MS-DRG numbers for MS-DRG weight. Not applicable to Anesthesia (omit for that type).

yearsnumber[]Optional

Four-digit years to filter by (e.g. [2024, 2025]). Omit to get the most recent available year. History reaches back to 2002 for Physician FFS, 2005 for Drug ASP and FY2008 for MS-DRG weights.

statesstring[]Optional

Two-letter state codes (e.g. 'CA', 'TX'), or 'national' for the Physician FFS national locality. Only applies to 'Physician FFS'; ignored for other medicareType values.

monthnumberOptional

Month as 1-12. Only applies to 'Drug ASP' (pricing is quarterly but indexed by month).

limitnumberOptional

Maximum number of rows to return (1-100). Defaults to 50.

Try this tool

Start with an example, adjust its arguments, and run it with your account.

Request

JSON arguments

Response

Not run yet

Run the tool to see its response here.

Sign in to see pricing and run this tool