calculators
FIRE & retirement calculators + a multi-currency portfolio rebalancer (exact buy/sell trades).
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"calculators": {
"url": "https://mcp.retirecrunch.com/mcp"
}
}
}リモートエンドポイント
https://mcp.retirecrunch.com/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢calculate_fire_target(annual_expense, years, current_savings, currency, portfolio_return_rate, ...)
Estimate the savings target needed for Financial Independence / Early Retirement. Runs Monte Carlo simulation and returns the probability the portfolio survives the planning horizon.
入力スキーマ
{
"type": "object",
"properties": {
"annual_expense": {
"type": "number",
"minimum": 0,
"maximum": 100000000,
"description": "Projected annual spending in retirement (in selected currency)."
},
"years": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Planning horizon in years."
},
"current_savings": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Current liquid + invested assets."
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"CHF",
"JPY",
"CAD",
"AUD",
"DKK"
],
"default": "USD"
},
"portfolio_return_rate": {
"type": "number",
"minimum": 0,
"maximum": 30,
"default": 5,
"description": "Expected real annual return %."
},
"portfolio_volatility": {
"type": "number",
"minimum": 0,
"maximum": 50,
"default": 12,
"description": "Annual return standard deviation %."
},
"apply_inflation": {
"type": "boolean",
"default": true
},
"inflation_rate": {
"type": "number",
"minimum": 0,
"maximum": 30,
"default": 3
}
},
"required": [
"annual_expense",
"years"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_coast_fire(current_age, target_retirement_age, current_savings, annual_expenses_in_retirement, currency, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"current_age": {
"type": "integer",
"minimum": 18,
"maximum": 80
},
"target_retirement_age": {
"type": "integer",
"minimum": 30,
"maximum": 100
},
"current_savings": {
"type": "number",
"minimum": 0
},
"annual_expenses_in_retirement": {
"type": "number",
"minimum": 1
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"CHF",
"JPY",
"CAD",
"AUD",
"DKK"
],
"default": "USD"
},
"expected_return_rate": {
"type": "number",
"minimum": 0,
"maximum": 30,
"default": 7
},
"inflation_rate": {
"type": "number",
"minimum": 0,
"maximum": 30,
"default": 3
},
"safe_withdrawal_rate": {
"type": "number",
"minimum": 1,
"maximum": 10,
"default": 4
},
"monthly_savings": {
"type": "number",
"minimum": 0,
"default": 0
},
"portfolio_volatility": {
"type": "number",
"minimum": 0,
"maximum": 50,
"default": 0
}
},
"required": [
"current_age",
"target_retirement_age",
"current_savings",
"annual_expenses_in_retirement"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compute_swiss_property_tax(canton, sale_price, purchase_price, years_held, ersatzbeschaffung, ...)
Estimate the Swiss cantonal real-estate capital gains tax (Grundstückgewinnsteuer) for a property sale. Covers all 26 cantons with holding-period adjustments and Ersatzbeschaffung (replacement-residence) deferral. Educational estimate; commune surcharges and value-enhancing-improvement deductions are not modeled.
入力スキーマ
{
"type": "object",
"properties": {
"canton": {
"type": "string",
"enum": [
"ZH",
"BE",
"LU",
"UR",
"SZ",
"OW",
"NW",
"GL",
"ZG",
"FR",
"SO",
"BS",
"BL",
"SH",
"AR",
"AI",
"SG",
"GR",
"AG",
"TG",
"TI",
"VD",
"VS",
"NE",
"GE",
"JU"
],
"description": "Canton code (ZH, BE, ..., JU)."
},
"sale_price": {
"type": "number",
"minimum": 0
},
"purchase_price": {
"type": "number",
"minimum": 0
},
"years_held": {
"type": "number",
"minimum": 0
},
"ersatzbeschaffung": {
"type": "boolean",
"default": false,
"description": "Reinvest proceeds into a replacement primary residence."
},
"ersatzbeschaffung_amount": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Amount reinvested (caps the tax deferral)."
}
},
"required": [
"canton",
"sale_price",
"purchase_price",
"years_held"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪project_wealth_plan(region, currency, start_year, retirement_year, plan_horizon_years, ...)
Run RetireCrunch's full year-by-year Wealth Plan projection for a household. Models earned income, pensions, expenses, portfolio growth, optional growth→income phase switch, 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.
入力スキーマ
{
"type": "object",
"properties": {
"region": {
"type": "string",
"enum": [
"US",
"CH",
"GB",
"EU",
"JP",
"GENERIC"
],
"default": "GENERIC",
"description": "Country regime — drives tax model (US uses bracket-based federal/state; others a flat rate)."
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"CHF",
"JPY",
"CAD",
"AUD",
"DKK"
],
"default": "USD"
},
"start_year": {
"type": "integer",
"minimum": 1900,
"maximum": 2200,
"description": "First year of the projection (typically the current year)."
},
"retirement_year": {
"type": "integer",
"minimum": 1900,
"maximum": 2200,
"description": "Year retirement begins."
},
"plan_horizon_years": {
"type": "integer",
"minimum": 1,
"maximum": 80,
"default": 50,
"description": "Total years to project from start_year."
},
"current_earned_income": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Annual gross earned income today."
},
"current_living_costs": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Annual general living expenses today."
},
"current_housing_expenses": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Annual housing expenses today."
},
"current_other_expenses": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Annual other expenses today."
},
"estimated_tax_rate": {
"type": "number",
"minimum": 0,
"maximum": 60,
"default": 20,
"description": "Pre-retirement effective tax rate (%)."
},
"post_retirement_tax_rate": {
"type": "number",
"minimum": 0,
"maximum": 60,
"default": 10,
"description": "Post-retirement effective tax rate (%)."
},
"current_liquidity": {
"type": "number",
"minimum": 0,
"default": 0
},
"current_investment_portfolio": {
"type": "number",
"minimum": 0,
"default": 0
},
"current_property": {
"type": "number",
"minimum": 0,
"default": 0
},
"current_mortgage": {
"type": "number",
"minimum": 0,
"default": 0
},
"inflation_rate": {
"type": "number",
"minimum": 0,
"maximum": 20,
"default": 2,
"description": "Annual inflation %."
},
"portfolio_return_rate": {
"type": "number",
"minimum": 0,
"maximum": 30,
"default": 5,
"description": "Annual real portfolio return %."
},
"portfolio_volatility": {
"type": "number",
"minimum": 0,
"maximum": 50,
"default": 0,
"description": "Return std dev %; 0 = deterministic."
},
"portfolio_switch_enabled": {
"type": "boolean",
"default": true
},
"portfolio_switch_year": {
"type": "integer",
"minimum": 1900,
"maximum": 2200,
"description": "Year to switch from growth to income phase. Defaults to retirement_year if omitted."
},
"income_yield_rate": {
"type": "number",
"minimum": 0,
"maximum": 20,
"default": 3.5,
"description": "Annual yield % during the income phase."
},
"household_type": {
"type": "string",
"enum": [
"single",
"couple"
],
"default": "single"
},
"partner_early_death_years_before_end": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"default": 5
},
"partner_survivor_expense_factor": {
"type": "number",
"minimum": 0.3,
"maximum": 1,
"default": 0.7
},
"property_sale_enabled": {
"type": "boolean",
"default": false
},
"property_sale_year": {
"type": "integer",
"minimum": 1900,
"maximum": 2200
},
"property_sale_destination": {
"type": "string",
"enum": [
"liquidity",
"investmentPortfolio"
],
"default": "liquidity"
},
"yearly_detail": {
"type": "boolean",
"default": false,
"description": "When true, include the full year-by-year array in the response. When false (default), return a compact summary plus 5-year milestones."
}
},
"required": [
"start_year",
"retirement_year"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_portfolio_returns(currency)
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.
入力スキーマ
{
"type": "object",
"properties": {
"currency": {
"type": "string",
"enum": [
"USD",
"EUR",
"GBP",
"CHF",
"JPY",
"CAD",
"AUD",
"DKK"
],
"description": "Currency code; the historical return profiles are denominated in this currency."
}
},
"required": [
"currency"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪rebalance_portfolio(base_currency, fx_rates, available_cash, holdings, class_targets)
Rebalance a multi-currency portfolio: given holdings, per-holding (or per-asset-class) target weights, cash and FX rates, return the exact BUY/SELL trades to reach the targets, the per-currency cash movements (flagging foreign-cash overdrafts), and a summary. Planning math only — no transaction costs or taxes.
入力スキーマ
{
"type": "object",
"properties": {
"base_currency": {
"type": "string",
"default": "USD",
"description": "Base currency the portfolio is valued in."
},
"fx_rates": {
"type": "object",
"additionalProperties": {
"type": "number",
"exclusiveMinimum": 0
},
"default": {},
"description": "Value of 1 unit of each currency in the base currency (base currency itself is 1)."
},
"available_cash": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"default": {},
"description": "Cash held per currency, keyed by ISO code."
},
"holdings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "Ticker symbol."
},
"name": {
"type": "string",
"description": "Human-readable instrument name."
},
"quantity": {
"type": "number",
"description": "Units/shares held."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Current price per unit, in the holding currency."
},
"cost_basis": {
"type": "number",
"minimum": 0,
"default": 0,
"description": "Average acquisition price per unit (for P/L only)."
},
"currency": {
"type": "string",
"description": "ISO currency code the instrument trades in (e.g. \"USD\")."
},
"asset_class": {
"type": "string",
"default": "Equity",
"description": "Equity, Bond, Cash, Real estate, Commodity, Alternative, Crypto or Other."
},
"risk_level": {
"type": "string",
"default": "Medium",
"description": "Low, Medium or High."
},
"target_pct": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Target weight as % of the whole portfolio (incl. cash)."
},
"locked": {
"type": "boolean",
"default": false,
"description": "Pin to current weight — never traded."
}
},
"required": [
"symbol",
"quantity",
"price",
"currency",
"target_pct"
],
"additionalProperties": false
},
"minItems": 1,
"description": "The portfolio holdings to rebalance."
},
"class_targets": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"description": "Optional per-asset-class goal % (incl. \"Cash\"). When given, unlocked holdings are retargeted to hit each class goal before computing trades."
}
},
"required": [
"holdings"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス