Is this US provider in this health plan? Network checks by NPI and plan ID, with dated sources.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your InPlan API key as "Bearer ip_live_...". Free key: https://inplan.io/signup
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Answers whether one plan's network directory lists one provider. answer "listed" (in_network: true) comes with evidence: plan year, network tier and source {type, as_of}. answer "not_found" (in_network: null) means no listing was found in current directory data for this provider and plan; it is NOT a statement that the provider is out of network, so never report it as "out of network". answer "no_provider_network" is a drug-only plan. Directories change; tell users to confirm with the plan before care. Costs 1 call.
10-digit National Provider Identifier, as a string, e.g. "1184617268".
Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional).
Plan year, e.g. 2026. Optional; by default all plan years we hold are considered.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http inplan https://api.inplan.io/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Your InPlan API key as "Bearer ip_live_...". Free key: https://inplan.io/signupAnswers whether one plan's network directory lists one provider. answer "listed" (in_network: true) comes with evidence: plan year, network tier and source {type, as_of}. answer "not_found" (in_network: null) means no listing was found in current directory data for this provider and plan; it is NOT a statement that the provider is out of network, so never report it as "out of network". answer "no_provider_network" is a drug-only plan. Directories change; tell users to confirm with the plan before care. Costs 1 call.
| Argument | Type | Description |
|---|---|---|
| npi* | string | 10-digit National Provider Identifier, as a string, e.g. "1184617268". |
| year | integer | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. |
| plan_id* | string | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). |
{
"type": "object",
"required": [
"npi",
"plan_id"
],
"properties": {
"npi": {
"type": "string",
"description": "10-digit National Provider Identifier, as a string, e.g. \"1184617268\"."
},
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"plan_id": {
"type": "string",
"description": "Plan ID. Marketplace (ACA) plans: 14 characters like \"29276OH0970001\" (a 16-character \"-01\" variant form is accepted). Medicare Advantage plans: \"H1234-001-000\" (the segment \"-000\" is optional)."
}
}
}The check_network answer for up to 100 (npi, plan_id) pairs in one request, with the same listed / not_found / no_provider_network semantics. Invalid pairs come back with a per-item error and are not charged; each accepted pair costs 1 call. Needs the Builder plan or higher.
| Argument | Type | Description |
|---|---|---|
| year | integer | Default plan year for items that do not set one. Optional. |
| items* | array | 1 to 100 pairs. |
{
"type": "object",
"required": [
"items"
],
"properties": {
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Default plan year for items that do not set one. Optional."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"npi",
"plan_id"
],
"properties": {
"npi": {
"type": "string",
"description": "10-digit National Provider Identifier, as a string, e.g. \"1184617268\"."
},
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"plan_id": {
"type": "string",
"description": "Plan ID. Marketplace (ACA) plans: 14 characters like \"29276OH0970001\" (a 16-character \"-01\" variant form is accepted). Medicare Advantage plans: \"H1234-001-000\" (the segment \"-000\" is optional)."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "1 to 100 pairs."
}
}
}The markets, states and insurers InPlan holds directory listings for, with plan counts and as_of dates, by plan year. Filter by market, state or year. Use it to see which states and insurers you can query. Costs 1 call.
| Argument | Type | Description |
|---|---|---|
| year | integer | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. |
| state | string | 2-letter US state code, e.g. "OH". Optional. |
| market | string | "aca" = Marketplace plans, "ma" = Medicare Advantage plans. Optional; default both. |
{
"type": "object",
"properties": {
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"state": {
"type": "string",
"description": "2-letter US state code, e.g. \"OH\". Optional."
},
"market": {
"enum": [
"aca",
"ma"
],
"type": "string",
"description": "\"aca\" = Marketplace plans, \"ma\" = Medicare Advantage plans. Optional; default both."
}
}
}Details of one Marketplace (ACA) or Medicare Advantage plan by plan ID: name, insurer or organization, state or service area, plan type, metal level, the plan years we hold, and whether we hold its directory listings, with their as_of date. Costs 1 call.
| Argument | Type | Description |
|---|---|---|
| year | integer | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. |
| plan_id* | string | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"plan_id": {
"type": "string",
"description": "Plan ID. Marketplace (ACA) plans: 14 characters like \"29276OH0970001\" (a 16-character \"-01\" variant form is accepted). Medicare Advantage plans: \"H1234-001-000\" (the segment \"-000\" is optional)."
}
}
}Identity of a US healthcare provider by NPI: name, credential, specialties, practice locations and groups, plus a summary of the Marketplace (ACA) and Medicare Advantage plans whose network directories list them (plan counts, states, plan years, as_of dates). Use it to confirm who an NPI is before checking networks. For the plan list itself use plans_for_provider. Costs 1 call.
| Argument | Type | Description |
|---|---|---|
| npi* | string | 10-digit National Provider Identifier, as a string, e.g. "1184617268". |
{
"type": "object",
"required": [
"npi"
],
"properties": {
"npi": {
"type": "string",
"description": "10-digit National Provider Identifier, as a string, e.g. \"1184617268\"."
}
}
}Every Marketplace (ACA) and Medicare Advantage plan whose network directory lists the provider, one row per plan and plan year, each with plan name, insurer, state, network tier and source {type, as_of}. Medicare Advantage rows carry service_area_states and provider_state_in_service_area. Filter by market, state or year; page with limit and offset (next_offset is null on the last page). A plan missing from this list is not a statement that the provider is out of network. Costs 1 call per page.
| Argument | Type | Description |
|---|---|---|
| npi* | string | 10-digit National Provider Identifier, as a string, e.g. "1184617268". |
| year | integer | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. |
| limit | integer | Plans per page, 1 to 500. Default 50. |
| state | string | 2-letter US state code, e.g. "OH". Optional. |
| market | string | "aca" = Marketplace plans, "ma" = Medicare Advantage plans. Optional; default both. |
| offset | integer | Rows to skip; pass next_offset from the previous page. Default 0. |
{
"type": "object",
"required": [
"npi"
],
"properties": {
"npi": {
"type": "string",
"description": "10-digit National Provider Identifier, as a string, e.g. \"1184617268\"."
},
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Plans per page, 1 to 500. Default 50."
},
"state": {
"type": "string",
"description": "2-letter US state code, e.g. \"OH\". Optional."
},
"market": {
"enum": [
"aca",
"ma"
],
"type": "string",
"description": "\"aca\" = Marketplace plans, \"ma\" = Medicare Advantage plans. Optional; default both."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Rows to skip; pass next_offset from the previous page. Default 0."
}
}
}Providers that a Marketplace (ACA) plan's network directory lists, with name, credential, primary specialty, network tiers and up to 5 locations. Filter by state, specialty (substring, e.g. "cardiology"), zip, or zip plus radius in miles. Pages are cursor-based: pass next_cursor back unchanged until it is null; with filters a page can hold fewer than limit providers. Medicare Advantage plans: use check_network or plans_for_provider instead. Needs the Growth plan or higher. Costs 1 call per page.
| Argument | Type | Description |
|---|---|---|
| zip | string | 5-digit ZIP code, as a string. Optional. |
| year | integer | Plan year, e.g. 2026. Optional; by default all plan years we hold are considered. |
| limit | integer | Providers per page, 1 to 100. Default 25. |
| state | string | 2-letter US state code, e.g. "OH". Optional. |
| cursor | string | next_cursor from the previous page. |
| radius | integer | Miles around zip, 1 to 100. Needs zip. |
| plan_id* | string | Plan ID. Marketplace (ACA) plans: 14 characters like "29276OH0970001" (a 16-character "-01" variant form is accepted). Medicare Advantage plans: "H1234-001-000" (the segment "-000" is optional). |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.
| specialty | string | Specialty name or part of it, e.g. "family medicine". Optional. |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"zip": {
"type": "string",
"description": "5-digit ZIP code, as a string. Optional."
},
"year": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Plan year, e.g. 2026. Optional; by default all plan years we hold are considered."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Providers per page, 1 to 100. Default 25."
},
"state": {
"type": "string",
"description": "2-letter US state code, e.g. \"OH\". Optional."
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous page."
},
"radius": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Miles around zip, 1 to 100. Needs zip."
},
"plan_id": {
"type": "string",
"description": "Plan ID. Marketplace (ACA) plans: 14 characters like \"29276OH0970001\" (a 16-character \"-01\" variant form is accepted). Medicare Advantage plans: \"H1234-001-000\" (the segment \"-000\" is optional)."
},
"specialty": {
"type": "string",
"maxLength": 60,
"description": "Specialty name or part of it, e.g. \"family medicine\". Optional."
}
}
}