Medicare Advantage, Part D, Medicaid

get_plan_hospitals

Get Plan Hospitals·v0.2.0·L2·read-only·MCP + REST·admitted 2026-11-05
Inputs
71 required
Sources
1
Known limits
3
Real answer
2.9scomplete

What it answers

  1. 1The hospitals in a Medicare Advantage plan's published provider network for 2026 or 2027, by contract or CMS plan id: each hospital (CMS certification number, name, state, health system) with the evidence that it is in network: the hospital's own NPI listed in the directory, or how many of the clinicians CMS records as affiliated with it the plan lists (and the share).
  2. 2Narrow by hospital state or health system; choose the weakest evidence to return.
  3. 3Use cases: 'Which hospitals are in H5938's 2027 network?'; 'Is the Cleveland Clinic in this plan?'; 'Which HCA hospitals does H1036 list in Florida?'.
  4. 4A hospital's own NPI in the directory is strong evidence; many affiliated clinicians listed is good evidence; a few affiliated clinicians is weak and labelled so.
  5. 5A hospital absent from the list is 'no evidence in the published directory', never 'out of network'.
  6. 6The publish is pinned by dataset_id.
  7. 7SOURCE: medicare_silver.ma_network_plan_hospital_v1 (the Data Tracker's directory table x CMS hospital enrollment NPI = CCN x CMS Doctors and Clinicians facility affiliation x the hospital system map).

Inputs (7)

NameTypeRequiredDefaultAccepts
plan_yearintegerrequired2026 or 2027 (the directory year). 2026 | 2027
cms_plan_idanyoptionalnullCMS plan id H1234-001 or H1234-001-000.
contract_idanyoptionalnullCMS contract id (H5938). One of contract_id / cms_plan_id.
limitanyoptionalnullRows to return (default 50, max 500); summaries are always whole.
min_evidencestringoptional"good"Weakest evidence returned: 'strong' (the hospital's own NPI is in the directory), 'good' (default: strong, or 10+ of its affiliated clinicians and 20%+ of them listed), or 'any' (also hospitals with a few affiliated clinicians listed). strong | good | any
stateanyoptionalnull2-letter state of the hospital; optional.
systemanyoptionalnullHealth system name (contains match, e.g. 'HCA'); optional.

Call it

# MCP (https://mcp.vladahealth.com/mcp): the tool by name
get_plan_hospitals(cms_plan_id="H5938-001", plan_year=2027, limit=5)
curl -X POST https://api.vladahealth.com/v1/tools/get_plan_hospitals \
  -H "Authorization: Bearer $VLADA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cms_plan_id":"H5938-001","plan_year":2027,"limit":5}'

# the schema, no key
curl https://api.vladahealth.com/v1/tools/get_plan_hospitals/schema

A real answer

customer seat, 2026-11-09·over REST·2.9s·status complete·complete·verbatim
{
 "value": {
  "found": false,
  "not_found_reason": "uncovered_contract",
  "query": {
   "cms_plan_id": "H5938-001-000",
   "plan_year": 2027,
   "min_evidence": "good",
   "limit": 5
  },
  "dataset_id": "7bceef45cc9e5910e64caa428a1f3e40869f91d149c4e19f08cc55f5e468ba7c",
  "rows": [],
  "query_ids": [
   "1876253c-153b-41a7-8797-7542ef3f504b"
  ]
 },
 "unit": "plan_hospitals",
 "vintage": null,
 "source": {
  "dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
  "publisher": "vlada",
  "catalog_updated_at": "2026-11-02"
 },
 "caveats": [
  "Absence is a claim only for a covered contract, and only 'not listed in the published directory'; a contract with no rows is UNCOVERED (the open-gap list), never 'no network'."
 ],
 "response_hash": "935a2214fad066505c21fd0f46a5048313a21d38ccd0ac8c30b6d47eca291965",
 "semantic_version": 1,
 "tool_version": "get_plan_hospitals@0.2.0",
 "explanation": null,
 "status": "complete",
 "audience": "customer",
 "answer": {
  "value_ref": "value",
  "unit": "plan_hospitals",
  "scope": {
   "tool": "get_plan_hospitals",
   "filters": {
    "cms_plan_id": "H5938-001",
    "plan_year": 2027,
    "limit": 5,
    "min_evidence": "good"
   }
  }
 },
 "method": "Computed over the filters shown in this answer's scope, from the sources listed in its evidence. Nothing outside those filters was included. You did not specify min_evidence; good was used.",
 "evidence": {
  "sources": [
   {
    "dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
    "publisher": "vlada",
    "catalog_updated_at": "2026-11-02"
   }
  ],
  "response_hash": "935a2214fad066505c21fd0f46a5048313a21d38ccd0ac8c30b6d47eca291965"
 },
 "defaults_applied": [
  {
   "param": "min_evidence",
   "used": "good",
   "reason": "Weakest evidence returned: 'strong' (the hospital's own NPI is in the directory), 'good' (default: strong, or 10+ of its affiliated clinicians and 20%+ of them listed), or 'any' (a"
  }
 ],
 "freshness": {
  "state": "unknown",
  "why": "This tool does not report an edition for its answer, and the door could not derive one from what the answer reads. Treat the result as current to no stated date."
 }
}

What comes back

FieldHolds
statuscomplete · partial · refused · failed · queued
valuethe shape below
source · caveats · invariants_applied · response_hashthe public file and vintage; what to know before citing; the rules honoured; replayable
refusalcode (15), message, recover_with
{
 "$defs": {
  "Quality": {
   "description": "Row-level quality signal. All flags precomputed at build time\n(stored on the gold mart) and passed through here.",
   "properties": {
    "is_outlier": {
     "default": false,
     "title": "Is Outlier",
     "type": "boolean"
    },
    "is_ghost_candidate": {
     "default": false,
     "title": "Is Ghost Candidate",
     "type": "boolean"
    },
    "n_similar_rates": {
     "default": 0,
     "title": "N Similar Rates",
     "type": "integer"
    },
    "confidence": {
     "default": 1,
     "title": "Confidence",
     "type": "number"
    }
   },
   "title": "Quality",
   "type": "object"
  },
  "Source": {
   "description": "Cell-level provenance. Every served value traces back here.\n\n`snapshot_id` is the Iceberg snapshot the tool read from. Two calls\nat the same snapshot MUST produce byte-identical responses —\nthat's the content-addressed caching guarantee.",
   "properties": {
    "table": {
     "title": "Table",
     "type": "string"
    },
    "rate_id": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "default": null,
     "title": "Rate Id"
    },
    "source_files": {
     "items": {
      "type": "string"
     },
     "title": "Source Files",
     "type": "array"
    },
    "snapshot_id": {
     "anyOf": [
      {
       "type": "integer"
      },
      {
       "type": "null"
      }
     ],
     "default": null,
     "title": "Snapshot Id"
    }
   },
   "required": [
    "table"
   ],
   "title": "Source",
   "type": "object"
  }
 },
 "properties": {
  "value": {
   "default": null,
   "title": "Value"
  },
  "unit": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Unit"
  },
  "vintage": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Vintage"
  },
  "source": {
   "$ref": "#/$defs/Source"
  },
  "methodology": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Methodology"
  },
  "quality": {
   "$ref": "#/$defs/Quality"
  },
  "invariants_applied": {
   "items": {
    "type": "string"
   },
   "title": "Invariants Applied",
   "type": "array"
  },
  "caveats": {
   "items": {
    "type": "string"
   },
   "title": "Caveats",
   "type": "array"
  },
  "response_hash": {
   "default": "",
   "title": "Response Hash",
   "type": "string"
  },
  "semantic_version": {
   "default": 1,
   "title": "Semantic Version",
   "type": "integer"
  },
  "tool_version": {
   "default": "unknown",
   "title": "Tool Version",
   "type": "string"
  },
  "explanation": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Explanation"
  },
  "status": {
   "default": "complete",
   "title": "Status",
   "type": "string"
  },
  "refusal": {
   "anyOf": [
    {
     "additionalProperties": true,
     "type": "object"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Refusal"
  },
  "failure": {
   "anyOf": [
    {
     "additionalProperties": true,
     "type": "object"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "Failure"
  },
  "as_of": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "title": "As Of"
  },
  "freshness_state": {
   "default": "unknown",
   "title": "Freshness State",
   "type": "string"
  }
 },
 "title": "PlanHospitalsResponse",
 "type": "object"
}

Sources

KindName
sourcemedicare_silver.ma_network_plan_hospital_v1
tablemedicare_silver.ma_network_plan_hospital_v1

Known limits (3)

  1. 1Many directories list clinicians and not facilities: a hospital reached only through affiliated clinicians is inferred from CMS's affiliation file (2026-05-29), not printed by the plan.
  2. 2Affiliation covers hospitals where CMS records clinicians (4,606); a hospital with no affiliated clinicians can appear only by its own NPI.
  3. 3Coverage follows the directory build (stage 25); an uncovered contract answers no_coverage.
Admitted with a known defect
Most directories list clinicians, not facilities: strong evidence exists for 113,461 plan-hospital pairs in 2027, the rest is inferred from CMS's clinician affiliation (2026-05-29); absence is never 'out of network'.

This page as markdown: /docs-md/tools/get_plan_hospitals.md · every page in one file: /llms-full.txt