Skip to content
The Pocket ProtectorDevelopersVisit TPP ↗

MCP reference

Show doctor-and-plan choice cards

Use this when clickable choices are needed, only to display choices from check_doctor_network_step_by_step. Pass its returned context; this refreshes choices and continues the same single-doctor/Medicare Advantage plan workflow. Require explicit doctor/office and plan selection, preserving spelling and office warnings. Numbered text is the fallback. This is not a generic medication, pharmacy or batch-provider picker and cannot accept invented choices or coverage verdicts. 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

show_doctor_plan_choices

Input schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es"
      ],
      "description": "Language for the guided Medicare selection card; preserve the user’s language choice."
    },
    "coverage_type": {
      "type": "string",
      "enum": [
        "medicare_advantage",
        "original_medicare",
        "medigap"
      ],
      "description": "Coverage type for this guided check. Only Medicare Advantage supports a network verdict here."
    },
    "zip": {
      "description": "Home ZIP for plan availability.",
      "type": "string",
      "pattern": "^\\d{5}$"
    },
    "county": {
      "description": "Confirmed home county name; never infer it from a doctor’s office.",
      "type": "string",
      "minLength": 2,
      "maxLength": 60
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "Two-letter state from the confirmed ZIP/county lookup; never guess."
    },
    "county_choice": {
      "description": "Returned home-county choice, scoped to its ZIP.",
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "doctor_zip": {
      "description": "Search near this ZIP if the doctor is outside the home area.",
      "type": "string",
      "pattern": "^\\d{5}$"
    },
    "doctor_county": {
      "type": "string",
      "minLength": 2,
      "maxLength": 60,
      "description": "Confirmed county for the doctor search ZIP, separate from the home county."
    },
    "doctor_state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "Confirmed state for the doctor search ZIP, separate from the home state."
    },
    "doctor_county_choice": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Returned county choice for the doctor-search area; preserve its context and do not invent a selection."
    },
    "doctor_name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 60,
      "description": "Familiar doctor name supplied by the person. Confirm the returned doctor and office before checking coverage."
    },
    "specialty": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Supported doctor specialty; All Specialties removes only this filter."
    },
    "plan_name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Familiar Medicare Advantage plan name and insurer supplied by the person; confirm ambiguous choices."
    },
    "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."
    },
    "doctor_id": {
      "description": "Opaque option ID returned by this workflow. Never ask a person to find it.",
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "plan_key": {
      "description": "Opaque option ID returned by this workflow, scoped to area and year.",
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    }
  },
  "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": "show_doctor_plan_choices",
    "arguments": {}
  }
}

Connection

POST JSON-RPC to https://tools.thepocketprotector.com/mcp with method tools/call, name show_doctor_plan_choices, 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": "Show doctor-and-plan choice cards",
  "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