Retirement Atlas
Server Details
Retirement projections for 37 countries: UK drawdown, Australian super, pension income gaps.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each calculator targets a distinct regime: Australia super accumulation, UK drawdown, and a generic multi-country income gap, with list_retirement_calculators explicitly mapping countries to the right calculator. The only residual confusion is that an agent must consult the list tool (or know the country codes) to pick between the income-gap tool and the two country-specific ones, and the UK is excluded from the gap tool's country list without that being stated in the gap tool itself.
All names are snake_case with a leading verb (calculate_* / list_*), which is predictable and readable. The minor deviation is that the country-specific calculators embed a country (australia, uk) while calculate_retirement_income_gap is multi-country, so the naming pattern is not perfectly parallel.
Four tools is lean but each is a heavyweight, well-differentiated calculator rather than a fragmentation of one operation. The listing tool earns its place as the directory of 37 countries that the three calculators serve.
Coverage is broad on paper (37 countries) but deep on only two: there is no accumulation/projection model for countries other than Australia, no pension eligibility or State/Age Pension calculation anywhere, and no tax modelling outside the UK. These are acknowledged limitations in the descriptions, but they leave real dead ends for agents asked to model, say, a German saver's accumulation phase.
Available Tools
4 toolscalculate_australia_superAustralian super projectionARead-onlyIdempotentInspect
Projects an Australian superannuation balance to retirement (employer contributions, salary sacrifice, after-tax contributions, contribution tax and current caps, fees, inflation) and then retirement spending: the balance at retirement in nominal and today's dollars, a level annual budget, the gap to a target income and the age the money runs out. The Age Pension amount is an input; eligibility is not calculated. All fields are required; amounts in AUD, rates in percent per year.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Current age; whole years. | |
| fees | Yes | Annual percentage fee, percent | |
| endAge | Yes | Projection end age; must exceed retirement age; whole years. | |
| growth | Yes | Nominal annual return after investment earnings tax, before fees, percent | |
| salary | Yes | Annual salary excluding super, AUD | |
| balance | Yes | Current super balance, AUD | |
| afterTax | Yes | After-tax contribution, AUD per month in today's money | |
| inflation | Yes | Annual inflation, percent | |
| agePension | Yes | User-supplied Age Pension estimate, AUD per year in today's money; eligibility not calculated | |
| pensionAge | Yes | User-supplied Age Pension payment start age; whole years. | |
| employerRate | Yes | Employer contribution assumption, percent of salary; not a payroll liability calculation | |
| salaryGrowth | Yes | Nominal annual salary growth, percent | |
| targetIncome | Yes | Target retirement spending, AUD per year in today's money | |
| retirementAge | Yes | Retirement age; at least current age and 60; accumulation ends by 75; whole years. | |
| annualFixedFees | Yes | Fixed fees, AUD per year in today's money | |
| salarySacrifice | Yes | Extra pre-tax contribution, AUD per month in today's money | |
| include_projection | No | Also return annual cash-flow rows (default false: a compact summary). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: which outputs are produced (nominal vs today's dollars, level annual budget, gap to target, depletion age), that pension eligibility is excluded, that all fields are required, and the global unit conventions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and the two phases of the model, and every clause carries information. The first sentence is long and densely parenthetical, which slows scanning, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter calculator with no output schema, the description enumerates the return values explicitly and flags the one non-obvious exclusion (pension eligibility). Combined with 100% schema coverage, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter carries min/max plus prose, so the schema does the heavy lifting. The description adds only a global convention ('amounts in AUD, rates in percent per year') and the pension-as-input caveat, which largely restates what agePension's own schema text already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Projects') and a specific resource (Australian superannuation balance) with the full modeling scope spelled out — accumulation phase (contributions, tax, caps, fees, inflation) then retirement spending (budget, gap to target, depletion age). The Australian-super domain also implicitly separates it from calculate_uk_pension_drawdown and calculate_retirement_income_gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Scope exclusions are given ('The Age Pension amount is an input; eligibility is not calculated', and the schema note that employerRate is 'not a payroll liability calculation'), which tells the agent what this tool will not do. However, there is no explicit when-to-use guidance or routing to the sibling calculators, so the agent must infer selection from the domain name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_retirement_income_gapRetirement income gapARead-onlyIdempotentInspect
Retirement income gap for one of 35 countries (nl, se, dk, no, fi, is, cz, at, ch, pt, us, cn, de, jp, in, fr, it, ca, br, ru, kr, mx, es, id, tr, sa, pl, be, ar, ie, ae, sg, il, th, nz): from accessible savings, monthly saving, retirement spending and up to three pension streams the user enters (after tax, in today's money), the savings at retirement, the capital needed, the capital gap, the first-year monthly gap and the age the money runs out. It does not calculate national pension entitlements. All fields are required; amounts in the country's currency (see list_retirement_calculators), rates in percent per year; use monthly 0 for unused pension streams.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Current age; whole years. | |
| endAge | Yes | Projection end age; must exceed retirement age; whole years. | |
| balance | Yes | Accessible savings in country currency; exclude capital behind entered pension payments | |
| country | Yes | Country code from list_retirement_calculators (not uk or au, which have their own tools). | |
| incomes | Yes | Exactly three user-supplied pension streams. Use zero monthly amount for unused streams. No entitlement or tax estimation. | |
| spending | Yes | Monthly retirement spending in today's country currency | |
| inflation | Yes | Annual inflation, percent | |
| netReturn | Yes | Nominal annual return after taxes and fees, percent; inflation is deducted by the model | |
| monthlySaving | Yes | Monthly savings in today's country currency | |
| retirementAge | Yes | Work-stop age; at least current age; not an entitlement age; whole years. | |
| include_projection | No | Also return annual cash-flow rows (default false: a compact summary). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, and the description adds useful behavioral constraints: all fields are required, national pension entitlements are out of scope, and currency/rate/unused-stream conventions apply. It does not discuss error handling or response format, but those are secondary for a deterministic calculator with annotations covering the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and avoids unnecessary narrative, but it spends substantial space enumerating all 35 country codes that are already available in the country enum. The single long sentence is dense and includes redundant structured-field content, which weakens conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema, the description supplies the missing return-value context by listing the computed outputs and explains the country scope, required inputs, currency/rate conventions, and calculation limitations. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including the country enum, numeric ranges, and nested income object fields. The description reinforces conventions such as after-tax today's-money amounts, percent-per-year rates, and zero monthly income for unused streams, but mostly repeats schema text and says 'up to three' pension streams while the schema requires exactly three.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that it computes a retirement income gap for one of 35 countries from accessible savings, monthly saving, retirement spending, and up to three pension streams, and it enumerates the returned outputs such as savings at retirement, capital needed, capital gap, first-year monthly gap, and depletion age. The country scope differentiates it from the UK/Australia-specific sibling tools, though those siblings are not explicitly named in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: one of 35 listed countries, amounts in the country's currency, rates in percent per year, all fields required, and monthly 0 for unused pension streams. It also states that it does not calculate national pension entitlements. It stops short of explicitly naming calculate_australia_super or calculate_uk_pension_drawdown as the alternatives for those countries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_uk_pension_drawdownUK pension drawdown projectionARead-onlyIdempotentInspect
Projects UK pension drawdown month by month: the pot after any upfront tax-free cash, first-year net income after an estimate of UK or Scottish income tax, the age the pot runs out (if it does) and the final balance. The user's State Pension forecast is an input; it is never inferred. All fields are required; amounts in GBP, rates in percent per year.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Starting age; does not establish pension access; whole years. | |
| pot | Yes | Starting pension capital, GBP | |
| fees | Yes | Annual percentage fee, percent | |
| endAge | Yes | End of projection; must exceed age; whole years. | |
| growth | Yes | Nominal annual investment return, percent before fees | |
| region | Yes | Standard non-savings income tax region. | |
| inflation | Yes | Annual inflation, percent | |
| otherIncome | Yes | Other taxable income, GBP per year in today's money | |
| statePension | Yes | User-supplied State Pension forecast, GBP per year in today's money; never inferred | |
| statePensionAge | Yes | User-supplied pension payment start age; whole years. | |
| takeTaxFreeCash | Yes | Remove upfront tax-free cash from invested capital. That cash is not spent or reinvested by this model. | |
| monthlyWithdrawal | Yes | Requested gross withdrawal, GBP per month | |
| include_projection | No | Also return annual cash-flow rows (default false: a compact summary). | |
| remainingAllowance | Yes | Confirmed remaining standard lump sum allowance, GBP | |
| increaseWithdrawals | Yes | Increase withdrawals once per year with the entered inflation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, and the description adds real value on top: units convention (GBP, percent per year) and the firm rule that the State Pension forecast is user-supplied and never inferred. The claim 'All fields are required' is slightly inaccurate since include_projection defaults to false, but that is a minor imprecision rather than a contradiction of the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the outputs the tool produces and followed by the input contract. Slight redundancy with schema unit descriptions, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters and no output schema, the description correctly takes on the job of naming the return values, including the compact-summary vs annual-rows behavior implied by include_projection. Gaps remain around edge behavior (e.g. what happens when the pot depletes before State Pension age), but the essential contract is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema; the description only restates the unit convention. It reinforces the statePension parameter's non-inferred nature but says nothing about interactions the schema cannot convey, such as how takeTaxFreeCash and remainingAllowance combine or what monthlyWithdrawal is gross of tax-wise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource (project UK pension drawdown month by month) plus an enumeration of the outputs — pot after tax-free cash, first-year net income after tax, age the pot runs out, final balance. The 'UK' scope and the drawdown-specific outputs distinguish it from calculate_australia_super and calculate_retirement_income_gap without naming them, though no sibling is explicitly referenced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over calculate_australia_super or calculate_retirement_income_gap, and no exclusions or prerequisites stated. 'All fields are required' is an invocation constraint, not a statement of when the tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_retirement_calculatorsList the retirement calculatorsARead-onlyIdempotentInspect
Lists Retirement Atlas's 37 countries: country code, currency, which calculation each uses (uk-drawdown, au-super or income-gap), the calculator page, the methodology and official reference sources. With a country code, returns that country only, with its full input schema.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Optional country code, e.g. "uk", "au", "us", "de", "jp". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds scope facts the annotations cannot express: a fixed catalog of 37 countries and the fact that a filtered call returns a richer payload (full input schema) than an unfiltered one. It omits what happens with an unrecognized country code, which is the one behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the unfiltered return contents front-loaded and the filtered behavior second. Every clause earns its place by describing a distinct part of the response contract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work of enumerating return fields and the calculation-type vocabulary. It is nearly complete for a one-optional-param list tool, missing only the behavior for invalid country codes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100% with examples, so the schema carries the basics. The description adds meaning beyond it: the parameter is optional (whole catalog when omitted) and, critically, changes the response shape by including the full input schema for that country.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource and enumerates exactly what is returned: country code, currency, calculation type, calculator page, methodology, and sources. Naming the calculation families (uk-drawdown, au-super, income-gap) directly ties it to the sibling calculate_* tools, so an agent can tell it apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"With a country code, returns that country only, with its full input schema" clearly signals the discovery/browse use case that precedes the calculate_* calls, and the no-argument case is implied as the full-list browse. It does not explicitly say when not to use it or state prerequisites, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
calculate_australia_super - First observed
calculate_retirement_income_gap - First observed
calculate_uk_pension_drawdown - First observed
list_retirement_calculators
Related MCP Connectors
Retirement planning for Canada & US. CPP/OAS, Social Security, RRSP/TFSA, 401k/IRA, Monte Carlo.
Deterministic US financial planning: retirement Monte Carlo, Roth conversion, RMD, tax, IRMAA, SS
US retirement modeling for agents: projections, scenario comparisons, and retirement-age analysis.
Retirement drawdown, 72(t) SEPP, RMD, Roth conversion, Social Security and state-tax calculators.
Related MCP Servers
FlicenseNot gradedqualityDmaintenanceTax-aware retirement planning for Canada and the US. CPP/OAS and Social Security timing, RRSP/TFSA/401k/IRA projections, Monte Carlo simulation, withdrawal order optimization, and historical backtesting against 150 years of market data.2-
WealthSchemaofficial
AlicenseAqualityCmaintenanceCited 2026 and 2027 U.S. financial-planning figures (IRS, SSA, CMS), synthetic household samples, and an AI financial-advice benchmark.8MIT- AlicenseNot gradedqualityDmaintenanceProvides retirement planning computations for AI agents, including Monte Carlo simulations, tax burden modeling across all US states, Social Security claiming optimization, and cost-of-living comparisons.7 npmMIT
- FlicenseNot gradedqualityDmaintenanceGenerates personalised 12-week wellbeing planners for Australian near-retirees, integrating ABS statistics and providing an interactive journey visualization.-
Glama MCP Gateway
Add one secure layer between your agents and this server.