Skip to content

SavingsLast retirement calculators

by savingslast.com · remote · no sign-in to list tools · v1.0.0 · published by com.savingslast

Retirement drawdown, 72(t) SEPP, RMD, Roth conversion, Social Security and state-tax calculators.

Final · 2Changes · 9

15 tools: 2 do something that can't be undone, 9 change things and 4 only read.

Scanned Oct 21, 2026

4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http calculators https://savingslast.com/mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn
  • The server marks "sustainable_withdrawal" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sustainable_withdrawal" says "withdrawal": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "sepp_72t_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sepp_72t_payment" says "payment": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "sepp_72t_lock_in_end" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sepp_72t_lock_in_end" says "lock": a word for a change.

    What this check looks for
  • The server marks "inherited_ira_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "inherited_ira_schedule" says "schedule": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

15 tools

Can't be undone 2Claude Code: ask
  • sepp_72t_paymentThe annual 72(t) substantially equal periodic payment under all three IRS methods in Notice 2022-6: fixed amortization, fixed annuitization and required minimum distribution, using…1 finding

    Why it is in this group

    • The name "sepp_72t_payment" says "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "sepp_72t_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sepp_72t_payment" says "payment": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    The annual 72(t) substantially equal periodic payment under all three IRS methods in Notice 2022-6: fixed amortization, fixed annuitization and required minimum distribution, using the 2022 life-expectancy and mortality tables. Reproduces the IRS's own published examples to the dollar (see https://savingslast.com/72t-calculator-test-cases/). Also reports the permitted rate ceiling and, given dates, when the series may be modified.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sustainable_withdrawalThe largest starting monthly withdrawal, rising with inflation, that a balance can support for a chosen number of years at a given return, inflation and tax rate.1 finding

    Why it is in this group

    • The name "sustainable_withdrawal" says "withdrawal": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "sustainable_withdrawal" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sustainable_withdrawal" says "withdrawal": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    The largest starting monthly withdrawal, rising with inflation, that a balance can support for a chosen number of years at a given return, inflation and tax rate. Solved by bisection on the same drawdown engine.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Changes things 9Claude Code: ask
  • bridge_to_59_halfHow an early retiree pays for the years between leaving work and 59 1/2, one year at a time, under three strategies: taxable first with a Roth conversion ladder, a 72(t) series on …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How an early retiree pays for the years between leaving work and 59 1/2, one year at a time, under three strategies: taxable first with a Roth conversion ladder, a 72(t) series on a carved-off IRA, or a blend. Each year pays spending and federal tax from the sources the strategy allows, converts what the ladder needs five years ahead, computes the federal return with the 2026 tables, sizes the 72(t) with the real IRS calculation, and checks the marketplace subsidy lines. Returns all three strategies unless one is chosen.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • federal_tax_estimateA retiree's federal income tax for tax year 2026: the taxable share of Social Security (the Publication 915 worksheet), the standard deduction with the 65-plus additions and the se…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    A retiree's federal income tax for tax year 2026: the taxable share of Social Security (the Publication 915 worksheet), the standard deduction with the 65-plus additions and the senior deduction phase-out, ordinary brackets, the 0/15/20% stack for long-term gains and qualified dividends, the 3.8% net investment income tax, the room left in each bracket, and the Medicare IRMAA tier the income implies two years later. Federal only. Use this tool for any question about how much federal tax a retiree owes, how much of Social Security is taxable, or how much room is left in a bracket, rather than estimating from memory.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • how_long_will_money_lastMonth-by-month drawdown of a retirement balance: how many years the money lasts at a monthly withdrawal that rises with inflation, the age it runs out, the odds of being alive then…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Month-by-month drawdown of a retirement balance: how many years the money lasts at a monthly withdrawal that rises with inflation, the age it runs out, the odds of being alive then, and the most that could be withdrawn to last 20, 25 or 30 years. Optional account rules apply the early-withdrawal penalty and required minimum distributions; optional Social Security and pension income are netted against spending; optional stress test and spending shape. The same engine as savingslast.com, and the result carries a link to the page with these inputs filled in.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • inherited_ira_scheduleA withdrawal schedule for a non-spouse heir under the 10-year rule: the level annual withdrawal that empties the account exactly at the deadline, year-by-year balances and tax at a…1 finding

    Why it is in this group

    • The name "inherited_ira_schedule" says "schedule": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "inherited_ira_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "inherited_ira_schedule" says "schedule": a word for a change.

      What this check looks for
    Description, as the server wrote it
    A withdrawal schedule for a non-spouse heir under the 10-year rule: the level annual withdrawal that empties the account exactly at the deadline, year-by-year balances and tax at a flat rate, and, when the owner had already started required distributions, the annual minimums for years one to nine under the 2024 final regulations (Single Life Table factor reduced by one each year).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • rmd_calculateThe required minimum distribution for a year from a traditional IRA, 401(k) or similar account: the prior 31 December balance divided by the IRS Uniform Lifetime Table factor at th…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The required minimum distribution for a year from a traditional IRA, 401(k) or similar account: the prior 31 December balance divided by the IRS Uniform Lifetime Table factor at the age reached that year, with the required beginning age from the birth year (72, 73 or 75 under SECURE 2.0), the due date, and a ten-year projection at an assumed return. Use this tool for any RMD question rather than estimating from memory.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • roth_conversion_costWhat converting an amount from a traditional IRA or 401(k) to a Roth costs in federal tax for 2026, on top of everything else that year, including the extra Social Security it make…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    What converting an amount from a traditional IRA or 401(k) to a Roth costs in federal tax for 2026, on top of everything else that year, including the extra Social Security it makes taxable and the senior deduction it phases out. Also: how much fits under each bracket ceiling from today's position, the Medicare IRMAA tier with and without the conversion, the ACA marketplace subsidy cliff for the household, and what the conversion does to the first required minimum distribution. Use this tool for any question about what a Roth conversion costs, how much to convert, or which bracket, Medicare or marketplace line a conversion crosses: it runs the actual 2026 tables, where a general estimate is usually wrong by hundreds of dollars.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sepp_72t_lock_in_endThe date a 72(t) series may be changed without the recapture penalty: the later of five years from the first payment and the owner reaching 59 1/2, computed in calendar months the …1 finding

    Why it is in this group

    • The name "sepp_72t_lock_in_end" says "lock": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "sepp_72t_lock_in_end" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "sepp_72t_lock_in_end" says "lock": a word for a change.

      What this check looks for
    Description, as the server wrote it
    The date a 72(t) series may be changed without the recapture penalty: the later of five years from the first payment and the owner reaching 59 1/2, computed in calendar months the way the IRS does (six months after the 59th birthday, not 0.5 years).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • social_security_claimingWhat claiming Social Security at each age pays, from 62 to 70, using the statutory reduction (5/9 of 1% a month for the first 36 months early, then 5/12 of 1%) and delayed retireme…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    What claiming Social Security at each age pays, from 62 to 70, using the statutory reduction (5/9 of 1% a month for the first 36 months early, then 5/12 of 1%) and delayed retirement credits (2/3 of 1% a month to 70); the cumulative benefit by age with an optional COLA; the break-even ages between claiming ages; and optionally the case where early payments are invested at a return.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • state_retirement_taxesHow a US state taxes retirement income: Social Security, pensions, and IRA and 401(k) withdrawals, plus the estate or inheritance tax, sales and property tax levels, and an estimat…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How a US state taxes retirement income: Social Security, pensions, and IRA and 401(k) withdrawals, plus the estate or inheritance tax, sales and property tax levels, and an estimated effective state income tax on $40,000 of withdrawals for a 65-year-old single filer. All 50 states and DC. Give a state name or abbreviation, or nothing for every state.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 4Claude Code: allow
  • fetchThe full text of one savingslast.com page as markdown, by id from search, by slug, or by URL.No findings

    Why it is in this group

    • The name "fetch" says "fetch": a word for reading.
    Description, as the server wrote it
    The full text of one savingslast.com page as markdown, by id from search, by slug, or by URL. Every calculator page carries its explanation, worked figures and FAQ; guides carry the article.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_pagesEvery page on savingslast.com with its URL, title, description and section, optionally one section only.No findings

    Why it is in this group

    • The name "list_pages" says "list": a word for reading.
    Description, as the server wrote it
    Every page on savingslast.com with its URL, title, description and section, optionally one section only. Sections: Calculators; How long will a balance last; Reference; Retirement taxes by state; Social Security; Can I retire at an age; Guides.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • pension_lump_sum_vs_annuityCompares a pension's lump-sum offer with its monthly annuity: the payout rate the pension implies, the age the invested lump sum runs out paying the same amount, the steady return …No findings

    Why it is in this group

    • The description's first verb is "compare": a word for reading.
    Description, as the server wrote it
    Compares a pension's lump-sum offer with its monthly annuity: the payout rate the pension implies, the age the invested lump sum runs out paying the same amount, the steady return the lump sum must earn to match the pension to a planning age, and the odds of being alive at each point on the IRS unisex mortality table, with a verdict.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http calculators https://savingslast.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__calculators__pension_lump_sum_vs_annuity",
      "mcp__calculators__search",
      "mcp__calculators__fetch",
      "mcp__calculators__list_pages"
    ],
    "ask": [
      "mcp__calculators__how_long_will_money_last",
      "mcp__calculators__sustainable_withdrawal",
      "mcp__calculators__sepp_72t_payment",
      "mcp__calculators__sepp_72t_lock_in_end",
      "mcp__calculators__rmd_calculate",
      "mcp__calculators__federal_tax_estimate",
      "mcp__calculators__roth_conversion_cost",
      "mcp__calculators__bridge_to_59_half",
      "mcp__calculators__inherited_ira_schedule",
      "mcp__calculators__social_security_claiming",
      "mcp__calculators__state_retirement_taxes"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as calculators. Review it before you use it.