Skip to main content
Glama

project_wealth_plan

Run RetireCrunch's full year-by-year Wealth Plan projection for a household. Models earned income, pensions, expenses, portfolio growth (accumulating, distributing, or accumulating until a switch year), mortgage amortization, optional property sale, and region-aware tax (US uses 2026 federal+state brackets; other regions use a flat rate). Returns a compact summary with 5-year milestones by default, or the full annual array when yearly_detail=true.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "start_year": "<start_year>",
      "retirement_year": "<retirement_year>"
    },
    "name": "project_wealth_plan"
  }
}

Input Schema

NameRequiredDescriptionDefault
regionNoCountry regime — drives tax model (US uses bracket-based federal/state; others a flat rate).GENERIC
currencyNoUSD
start_yearYesFirst year of the projection (typically the current year).
yearly_detailNoWhen true, include the full year-by-year array in the response. When false (default), return a compact summary plus 5-year milestones.
household_typeNosingle
inflation_rateNoAnnual inflation %.
retirement_yearYesYear retirement begins.
current_mortgageNo
current_propertyNo
current_liquidityNo
income_yield_rateNoAnnual payout % of the portfolio while distributing.
estimated_tax_rateNoPre-retirement effective tax rate (%).
plan_horizon_yearsNoTotal years to project from start_year.
property_sale_yearNo
current_living_costsNoAnnual general living expenses today.
portfolio_volatilityNoReturn std dev %; 0 = deterministic.
current_earned_incomeNoAnnual gross earned income today.
portfolio_return_modeNoWhat the portfolio does with its return. 'accumulating': everything stays invested and compounds, nothing is paid out (shortfalls are drawn from cash, then the portfolio). 'distributing': pays out income_yield_rate % of its value every year from start_year as investment income; the rest stays invested. 'switch': accumulating until portfolio_switch_year, distributing from then on. If omitted: 'switch' when portfolio_switch_enabled is true (the legacy default), 'accumulating' when it is false.
portfolio_return_rateNoAnnual real portfolio return %.
portfolio_switch_yearNo'switch' mode: first year the portfolio pays out. Defaults to retirement_year if omitted.
property_sale_enabledNo
current_other_expensesNoAnnual other expenses today.
current_housing_expensesNoAnnual housing expenses today.
portfolio_switch_enabledNoLegacy: prefer portfolio_return_mode. Only read when portfolio_return_mode is omitted.
post_retirement_tax_rateNoPost-retirement effective tax rate (%).
property_sale_destinationNoliquidity
current_investment_portfolioNo
partner_survivor_expense_factorNo
partner_early_death_years_before_endNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / income_yield_rate / description
      Previous value: -"Annual yield % during the income phase."New value: +"Annual payout % of the portfolio while distributing."
    • addedInput schema / properties / portfolio_return_mode
      Added value: +{
      +  "description": "What the portfolio does with its return. 'accumulating': everything stays invested and compounds, nothing is paid out (shortfalls are drawn from cash, then the portfolio). 'distributing': pays out income_yield_rate % of its value every year from start_year as investment income; the rest stays invested. 'switch': accumulating until portfolio_switch_year, distributing from then on. If omitted: 'switch' when portfolio_switch_enabled is true (the legacy default), 'accumulating' when it is false.",
      +  "enum": [
      +    "accumulating",
      +    "distributing",
      +    "switch"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / portfolio_switch_enabled / description
      Added value: +"Legacy: prefer portfolio_return_mode. Only read when portfolio_return_mode is omitted."
    • changedInput schema / properties / portfolio_switch_year / description
      Previous value: -"Year to switch from growth to income phase. Defaults to retirement_year if omitted."New value: +"'switch' mode: first year the portfolio pays out. Defaults to retirement_year if omitted."
  2. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  3. First observed

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavior burden. It discloses the projection scope, the region tax treatment, the portfolio return modes, and the default compact versus yearly_detail response, but it does not state read-only/no-side-effect behavior, assumptions, performance characteristics, or limitations for a 29-parameter calculation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and compact: two dense sentences cover the projection scope, modeled components, tax behavior, and return format. Every clause contributes to the tool's purpose or output semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex 29-parameter tool with no annotations and no output schema. The description covers the overall projection scope and return shape, but it does not fully explain input assumptions or all parameter semantics, and it mentions pensions even though no pension parameter appears in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 62%, so the schema already documents many parameters. The description adds high-level meaning for portfolio_return_mode, region tax, yearly_detail, and optional property sale, but it leaves many current_/partner/property parameters to the schema and adds little beyond the existing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: run a full year-by-year Wealth Plan projection for a household. It also enumerates the modeled domains (income, expenses, portfolio growth, mortgage, property sale, region-aware tax), which clearly distinguishes it from narrower sibling calculators such as calculate_fire_target and calculate_coast_fire.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'full year-by-year Wealth Plan projection' implies this is the comprehensive planning tool, but the description does not explicitly say when to use it instead of calculate_fire_target, calculate_coast_fire, or the portfolio tools. There are no exclusions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources