{"serverId":"mcp-registry/com.retirecrunch/calculators","tools":[{"name":"calculate_coast_fire","fixed":{"name":"calculate_coast_fire","description":"Compute the Coast FIRE milestone — the capital required today such that, with no further contributions, a portfolio compounds to the user's retirement target by their target age.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["current_age","target_retirement_age","current_savings","annual_expenses_in_retirement"],"properties":{"currency":{"enum":["USD","EUR","GBP","CHF","JPY","CAD","AUD","DKK"],"type":"string","default":"USD"},"current_age":{"type":"integer","maximum":80,"minimum":18},"inflation_rate":{"type":"number","default":3,"maximum":30,"minimum":0},"current_savings":{"type":"number","minimum":0},"monthly_savings":{"type":"number","default":0,"minimum":0},"expected_return_rate":{"type":"number","default":7,"maximum":30,"minimum":0},"portfolio_volatility":{"type":"number","default":0,"maximum":50,"minimum":0},"safe_withdrawal_rate":{"type":"number","default":4,"maximum":10,"minimum":1},"target_retirement_age":{"type":"integer","maximum":100,"minimum":30},"annual_expenses_in_retirement":{"type":"number","minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":315,"tokensAfter":315},{"name":"calculate_fire_target","fixed":{"name":"calculate_fire_target","description":"Estimate the savings target needed for Financial Independence / Early Retirement. Runs Monte Carlo simulation and returns the probability the portfolio survives the planning horizon.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["annual_expense","years"],"properties":{"years":{"type":"integer","maximum":100,"minimum":1,"description":"Planning horizon in years."},"currency":{"enum":["USD","EUR","GBP","CHF","JPY","CAD","AUD","DKK"],"type":"string","default":"USD"},"annual_expense":{"type":"number","maximum":100000000,"minimum":0,"description":"Projected annual spending in retirement (in selected currency)."},"inflation_rate":{"type":"number","default":3,"maximum":30,"minimum":0},"apply_inflation":{"type":"boolean","default":true},"current_savings":{"type":"number","default":0,"minimum":0,"description":"Current liquid + invested assets."},"portfolio_volatility":{"type":"number","default":12,"maximum":50,"minimum":0,"description":"Annual return standard deviation %."},"portfolio_return_rate":{"type":"number","default":5,"maximum":30,"minimum":0,"description":"Expected real annual return %."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":335,"tokensAfter":335},{"name":"get_portfolio_returns","fixed":{"name":"get_portfolio_returns","description":"Return RetireCrunch's historical portfolio return profiles for a currency. Each profile is a (return %, volatility %) pair derived from real index data — useful for grounding the assumptions in calculate_fire_target / project_wealth_plan in something defensible rather than guessing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["currency"],"properties":{"currency":{"enum":["USD","EUR","GBP","CHF","JPY","CAD","AUD","DKK"],"type":"string","description":"Currency code; the historical return profiles are denominated in this currency."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"get_rebalance_plan","fixed":{"name":"get_rebalance_plan","description":"Fetch the rebalancing trades the user decided on in the RetireCrunch Rebalancer, from the plan code they copied (\"Send plan to my AI\"). Codes work once, for 15 minutes. Returns the trades with IBKR contract ids where known. To act on them, create one IBKR order instruction per trade (create_order_instruction); the user reviews and submits each one inside IBKR. RetireCrunch never places orders.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["code"],"properties":{"code":{"type":"string","maxLength":200,"minLength":33,"description":"The plan code the user copied from the RetireCrunch Rebalancer (\"Send plan to my AI\")."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":202,"tokensAfter":202}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"calculate_coast_fire","params":["currency","current_age","inflation_rate","current_savings","monthly_savings","expected_return_rate","portfolio_volatility","safe_withdrawal_rate","target_retirement_age","annual_expenses_in_retirement"]},{"tool":"calculate_fire_target","params":["currency","inflation_rate","apply_inflation"]},{"tool":"compute_swiss_property_tax","params":["sale_price","years_held","purchase_price"]},{"tool":"project_wealth_plan","params":["currency","household_type","current_mortgage","current_property","current_liquidity","property_sale_year","property_sale_enabled","portfolio_switch_enabled","property_sale_destination","current_investment_portfolio","partner_survivor_expense_factor","partner_early_death_years_before_end"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}