Skip to content
The Pocket ProtectorDevelopersVisit TPP ↗

MCP reference

Check my doctors in a plan’s network

Use this when someone wants to check one or several doctors against one chosen Medicare Advantage plan. Confirms plan, doctors and offices, then returns each doctor’s network evidence separately, up to ten. Resume batch_context and update only selection_for.provider_index. Preserve verified, office-unconfirmed, directory-listed, shared-network and unknown distinctions; ZIP evidence does not verify a street address. Missing evidence is not out-of-network proof. Facilities/hospitals are unsupported. Use find_medicare_plans_for_my_doctors to find plans, or check_doctor_network_step_by_step for the single-doctor interactive workflow. An optional website alternative: TPP’s Doctor Network Check. Offer only when requested; chat can continue. Opens a separate flow without transferring answers. For another tool, use recommend_website_tool. 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

check_my_doctors_in_plan_network

Input schema

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Home ZIP for plan availability; never replace it with an office ZIP."
    },
    "county": {
      "type": "string",
      "description": "Previously confirmed home county. Ask when the ZIP spans counties."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "Two-letter home state from 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 Medicare Advantage plan name and insurer."
    },
    "plan": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "minLength": 2,
          "maxLength": 150
        },
        "option_id": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "query",
        "option_id"
      ],
      "additionalProperties": false,
      "description": "Confirmed plan reference returned by the plan picker. Never invent query/option_id or ask for internal IDs."
    },
    "providers": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "items": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "search": {
                "type": "object",
                "properties": {
                  "zip": {
                    "type": "string",
                    "pattern": "^\\d{5}$"
                  },
                  "county": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60
                  },
                  "state": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "pattern": "^[A-Z]{2}$"
                  },
                  "q": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 60
                  },
                  "specialty": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 100
                  },
                  "facility": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 120
                  },
                  "facility_reference": {
                    "type": "object",
                    "properties": {
                      "search": {
                        "type": "object",
                        "properties": {
                          "q": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 120
                          },
                          "zip": {
                            "type": "string",
                            "pattern": "^\\d{5}$"
                          },
                          "county": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 60
                          },
                          "state": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "radius": {
                            "default": 25,
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "q",
                          "zip"
                        ],
                        "additionalProperties": false
                      },
                      "organization_id": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      },
                      "location_id": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      }
                    },
                    "required": [
                      "search",
                      "organization_id",
                      "location_id"
                    ],
                    "additionalProperties": false
                  },
                  "pcp_only": {
                    "type": "boolean"
                  },
                  "accepts_medicare_assignment": {
                    "type": "boolean"
                  },
                  "show_offices": {
                    "type": "boolean"
                  },
                  "office_option": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  }
                },
                "required": [
                  "zip"
                ],
                "additionalProperties": false
              },
              "option_id": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              }
            },
            "required": [
              "search",
              "option_id"
            ],
            "additionalProperties": false
          },
          {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          },
          {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "doctor",
                  "facility"
                ]
              },
              "name": {
                "type": "string",
                "minLength": 2,
                "maxLength": 120
              },
              "office_zip": {
                "type": "string",
                "pattern": "^\\d{5}$"
              },
              "county": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60
              },
              "state": {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              },
              "specialty": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "clinic": {
                "type": "string",
                "minLength": 2,
                "maxLength": 120
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "description": "Up to ten doctor names with office ZIPs, or confirmed find_medicare_doctors doctor_reference objects. A clinic filters a doctor search; mark a hospital/organization itself kind=facility. Facilities receive an unsupported network result."
    }
  }
}

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": "check_my_doctors_in_plan_network",
    "arguments": {}
  }
}

Connection

POST JSON-RPC to https://tools.thepocketprotector.com/mcp with method tools/call, name check_my_doctors_in_plan_network, 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": "Check my doctors in a plan’s network",
  "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