Compare ACA health plans by real yearly cost, with tax credits, doctors and drugs, from CMS data.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Check whether plans cover specific medications (by RxCUI) and have specific doctors in network (by NPI). Use search_drugs and search_doctors first to get the ids.
plan_id values from search_plans
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http planvoyager https://planvoyager.com/mcp
Check whether plans cover specific medications (by RxCUI) and have specific doctors in network (by NPI). Use search_drugs and search_doctors first to get the ids.
| Argument | Type | Description |
|---|---|---|
| npis | array | |
| rxcuis | array | |
| plan_ids* | array | plan_id values from search_plans |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"plan_ids"
],
"properties": {
"npis": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"maxItems": 10
},
"rxcuis": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"maxItems": 10
},
"plan_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 10
},
"maxItems": 25,
"minItems": 1,
"description": "plan_id values from search_plans"
}
}
}Full details for one plan: deductible, out-of-pocket max, copays, drug tiers, key benefits, and what the person would pay in the plan's official coverage examples (having a baby, managing diabetes, a simple fracture).
| Argument | Type | Description |
|---|---|---|
| plan_id* | string | plan_id from search_plans, e.g. 16842FL0120001-04 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"plan_id"
],
"properties": {
"plan_id": {
"type": "string",
"minLength": 10,
"description": "plan_id from search_plans, e.g. 16842FL0120001-04"
}
}
}Look up a doctor near a ZIP code to get their NPI, needed by check_coverage.
| Argument | Type | Description |
|---|---|---|
| zip* | string | 5-digit ZIP near the doctor |
| query* | string | Doctor's name |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query",
"zip"
],
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit ZIP near the doctor"
},
"query": {
"type": "string",
"minLength": 3,
"description": "Doctor's name"
}
}
}Look up a medication by name (generic or brand) to get its RxCUI, needed by check_coverage. Pick the entry matching the strength and form the person takes.
| Argument | Type | Description |
|---|---|---|
| query* | string | Drug name, e.g. "metformin" or "Ozempic" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 3,
"description": "Drug name, e.g. \"metformin\" or \"Ozempic\""
}
}
}Find ACA Marketplace plans for a household, with the premium tax credit applied and plans ranked by estimated total yearly cost. Also reports the monthly tax credit, cost-sharing reduction (extra-savings Silver) eligibility and likely Medicaid eligibility.
| Argument | Type | Description |
|---|---|---|
| zip* | string | 5-digit US ZIP code |
| ages* | array | Age of each person who needs coverage |
| limit | integer | |
| metal | string | Only this metal tier |
| tobacco | array | Tobacco use per person, same order as ages |
| big_event | string | Anything big planned this year |
| annual_income | number | Expected household income (MAGI) for the coverage year, in dollars. Needed for the tax credit. |
| expected_care | string | checkups = preventive only; some = a few visits; ongoing = a chronic condition or regular meds |
| household_size |
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 31, 2026.
| integer |
| People in the tax household, including those not enrolling. Defaults to the number of ages. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"zip",
"ages"
],
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$",
"description": "5-digit US ZIP code"
},
"ages": {
"type": "array",
"items": {
"type": "integer",
"maximum": 120,
"minimum": 0
},
"maxItems": 10,
"minItems": 1,
"description": "Age of each person who needs coverage"
},
"limit": {
"type": "integer",
"default": 8,
"maximum": 25,
"minimum": 1
},
"metal": {
"enum": [
"bronze",
"silver",
"gold",
"platinum",
"catastrophic"
],
"type": "string",
"description": "Only this metal tier"
},
"tobacco": {
"type": "array",
"items": {
"type": "boolean"
},
"description": "Tobacco use per person, same order as ages"
},
"big_event": {
"enum": [
"none",
"baby",
"surgery"
],
"type": "string",
"default": "none",
"description": "Anything big planned this year"
},
"annual_income": {
"type": "number",
"minimum": 0,
"description": "Expected household income (MAGI) for the coverage year, in dollars. Needed for the tax credit."
},
"expected_care": {
"enum": [
"checkups",
"some",
"ongoing"
],
"type": "string",
"default": "some",
"description": "checkups = preventive only; some = a few visits; ongoing = a chronic condition or regular meds"
},
"household_size": {
"type": "integer",
"maximum": 15,
"minimum": 1,
"description": "People in the tax household, including those not enrolling. Defaults to the number of ages."
}
}
}