MCP reference
Calculate Medicare enrollment dates
Use this when asked personal Part B start/delay questions while working or enrollment dates; no named-tool request needed. General enrollment education needs no call. Explain returned Medigap purchase protections before start/wait advice, then employer unknowns and dates. Request IEP and medigap_open_enrollment even without first Part B start. Reuse facts; omit unknowns. Employment/size alone does not establish qualifying_current_employment_coverage. Never invent enrollment, retirement or first Part B dates or turn hypotheticals into facts. Coverage starts need enrollment month; month-only birthdays need a first-day flag or eligibility month; calendars need a year. Supports age-65 IEP, IEP/GEP starts, federal Medigap, employer SEPs, creditable-drug-loss SEP, Part D gaps and annual windows. Preserve warnings/provenance. Retirement does not restart Medigap. Deadlines are not wait-until advice or birthday urgency. Verify employer coordination, Part B deferral and drug creditability separately. Two-month SEPs differ from the 63-day gap. No eligibility verification, penalties or enrollment. State/event rights, disability/ESRD and Part A retroactivity/HSA timing need separate review. Keep chat brief; choices in UI.
Tool name
calculate_medicare_enrollment_deadlines
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"windows": {
"minItems": 1,
"maxItems": 11,
"type": "array",
"items": {
"type": "string",
"enum": [
"initial_enrollment",
"initial_coverage_start",
"medigap_open_enrollment",
"employer_part_b_sep",
"employer_plan_sep",
"creditable_drug_sep",
"part_d_gap",
"annual_enrollment",
"ma_open_enrollment",
"general_enrollment",
"general_coverage_start"
]
},
"description": "Only the timing calculations requested by the person. Unsupported state/event rules must not be substituted with another window."
},
"turns_65_on": {
"description": "65th birthday as YYYY, YYYY-MM or YYYY-MM-DD, not date of birth. Do not invent missing precision.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"birthday_on_first": {
"description": "Only needed for a month-only 65th birthday: is the birthday on day 1? Omit if unknown.",
"type": "boolean"
},
"age_65_eligibility_month": {
"description": "Already established age-65 Medicare eligibility month, including any first-day birthday shift. Do not infer from disability/ESRD eligibility.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"enrollment_month": {
"description": "Month of the actual or proposed Part B/premium-Part A application. Not a plan year.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"part_b_start": {
"description": "First Part B effective month; never a restart month. Used only for federal age-65 Medigap open enrollment.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"calendar_year": {
"description": "Explicit calendar year for recurring AEP, MA OEP or GEP dates; never default from a plan catalogue or runtime clock.",
"type": "integer",
"minimum": 2023,
"maximum": 2198
},
"currently_in_ma": {
"description": "User-reported current Medicare Advantage enrollment for MA OEP; unknown is not false.",
"type": "boolean"
},
"ma_oep_change_used": {
"description": "Whether the person already used their one change in this annual MA OEP; omit if unknown.",
"type": "boolean"
},
"employer": {
"description": "Only the reported employer coverage facts needed for the requested SEP.",
"type": "object",
"properties": {
"qualifying_current_employment_coverage": {
"description": "Explicitly reported qualifying group coverage based on own/spouse current employment for age-65 Part B SEP, including required coverage history. Omit if not established: still working, employer size, having employer insurance or creditable drugs alone must never be converted to true. COBRA/retiree coverage alone is not qualifying. This is not verified eligibility.",
"type": "boolean"
},
"employment_end": {
"description": "When the qualifying employment ends or ended, not when COBRA ends.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"employment_ongoing": {
"description": "Explicitly still employed; omission does not mean ongoing.",
"type": "boolean"
},
"group_coverage_end": {
"description": "When the active-employment group health plan coverage ends or ended.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"group_coverage_ongoing": {
"description": "Explicitly still covered under the active-employment group plan.",
"type": "boolean"
},
"plan_coverage_end": {
"description": "End of employer/union coverage, including COBRA, for MA/Part D plan SEP; independent of Part B SEP.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
}
},
"additionalProperties": false
},
"drug": {
"description": "Only the reported drug coverage facts needed for the requested SEP or continuous gap calculation.",
"type": "object",
"properties": {
"involuntary_creditable_loss": {
"description": "Reported involuntary loss of creditable drug coverage or change making it noncreditable.",
"type": "boolean"
},
"creditable_coverage_end": {
"description": "Last date/month of creditable drug coverage.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"loss_notice": {
"description": "Notification date/month that coverage is no longer creditable; needed to account for a later notice.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"uncovered_start": {
"description": "First day of a reported continuous period without Part D AND without other creditable drug coverage.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"coverage_resumes": {
"description": "First day drug coverage resumes; excluded from uncovered-day count.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"as_of": {
"description": "Count an ongoing reported gap through this date, inclusive. Required if coverage_resumes is unknown.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"part_d_iep_end": {
"description": "Actual Part D initial enrollment period end; do not assume it equals age-65 Part A/B IEP.",
"type": "string",
"pattern": "^(19|20|21)\\d{2}(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\\d|3[01]))?)?$"
},
"eligible_throughout_gap": {
"description": "Reported Part D eligibility throughout the counted gap; do not infer it from age.",
"type": "boolean"
},
"extra_help": {
"description": "Reported Extra Help status for interpreting potential penalty exposure; never inferred.",
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"windows"
],
"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": "calculate_medicare_enrollment_deadlines",
"arguments": {
"windows": [
"annual_enrollment"
],
"calendar_year": 2027
}
}
}
Connection
POST JSON-RPC to https://tools.thepocketprotector.com/mcp with method tools/call, name calculate_medicare_enrollment_deadlines, 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": "Calculate Medicare enrollment dates",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
Authentication: public, no account or API key required. Public tools perform no enrollment or account writes.
Read this page as Markdown