Skip to content
The Pocket ProtectorDevelopersVisit TPP ↗

MCP reference

Get one MA or Part D plan’s details

Use this when someone asks about one Medicare Advantage or standalone Part D plan’s published benefits, costs or documents. Resolve the familiar plan name in the home county/year or reuse a confirmed plan reference; topic selects a focused answer. Preserve cost units, benefit limits, special-needs conditions and unknown values. Use check_my_doctors_in_plan_network or check_plan_drug_coverage for specific doctors/medications. This does not give branch-specific prescription prices, verify personal eligibility or explain Medigap; use get_medigap_plan_details for that. Use the app as the answer. Do not repeat its options in a list, table or explanation. Ask one short question if input is required; otherwise stop.

Tool name

get_medicare_plan_details

Input schema

{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Required residential ZIP for plan availability. Reuse previously supplied information."
    },
    "county": {
      "type": "string",
      "description": "Confirmed residential county; omit if unknown so the lookup can clarify."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "State returned by the county lookup."
    },
    "plan_year": {
      "type": "integer",
      "minimum": 2024,
      "maximum": 2035,
      "description": "Reuse the requested or previously selected coverage year. If omitted, use the API’s configured serving year and disclose it; do not ask just because the year is missing."
    },
    "plan_name": {
      "type": "string",
      "description": "Familiar plan name or insurer. Ambiguous names return choices for the selected county and year."
    },
    "plan": {
      "type": "object",
      "description": "Previously selected plan reference from the plan picker, carried internally. Never invent it.",
      "properties": {
        "query": {
          "type": "string"
        },
        "option_id": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "query",
        "option_id"
      ],
      "additionalProperties": false
    },
    "topic": {
      "type": "string",
      "enum": [
        "overview",
        "costs",
        "doctor_visits",
        "hospital",
        "drugs",
        "benefits",
        "dental",
        "vision",
        "hearing",
        "otc",
        "fitness",
        "transportation",
        "meals",
        "eligibility",
        "documents"
      ],
      "default": "overview",
      "description": "Use the topic matching the person’s question; otherwise show an overview."
    }
  },
  "required": [
    "zip"
  ],
  "additionalProperties": false
}

Example request

Minimal synthetic request after initialization. A missing-input clarification is a valid result; do not invent personal facts to complete it. For content retrieval, replace the illustrative fixture ID with an ID returned by search.

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_medicare_plan_details",
    "arguments": {
      "zip": "60614"
    }
  }
}

Connection

POST JSON-RPC to https://tools.thepocketprotector.com/mcp with method tools/call, name get_medicare_plan_details, and arguments matching the schema above. Call tools/list to verify deployed availability.

Results and errors

Read both content and structuredContent. Follow returned clarification or continuation steps. Preserve source attribution, dates, uncertainty and scope. isError: true means the lookup did not complete. HTTP 429 requires waiting for Retry-After; never repeatedly retry an unavailable lookup.

Tool annotations

{
  "title": "Get one MA or Part D plan’s details",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}

Authentication: public, no account or API key required. Public tools perform no enrollment or account writes.

Read this page as Markdown