calculators
Server Details
FIRE & retirement calculators + a multi-currency portfolio rebalancer (exact buy/sell trades).
- Status
- Healthy
- Uptime
- 100.0% over 64 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Most tools have clearly distinct purposes (FIRE calcs, tax, returns, projection, rebalancing). The main overlap is the rebalance cluster: rebalance_portfolio computes trades from holdings while get_rebalance_plan retrieves trades the user chose elsewhere, and load_portfolio feeds that same workflow—a boundary an agent could fumble. The two FIRE tools (coast vs target) are also adjacent but descriptions differentiate them.
Nearly all names follow a clean verb_noun snake_case pattern (calculate_*, get_*, load_*, project_*, rebalance_*). The only wrinkle is using both 'calculate' and 'compute' for the same kind of action (calculate_coast_fire vs compute_swiss_property_tax), a minor synonym drift rather than a structural break.
Eight tools is a well-scoped size for a retirement/finance calculator suite, and each tool maps to a distinct calculation or workflow step. No redundant or trivial tools pad the set.
The FIRE/planning domain is broadly covered: contributions-free coast target, full FIRE target, tax, historical returns, wealth projection, and a rebalance flow. Gaps are minor—property tax is Swiss-only and generic compound/savings math is absent—but core workflows are reachable without dead ends.
Available Tools
8 toolscalculate_coast_fireCInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | USD | |
| current_age | Yes | ||
| inflation_rate | No | ||
| current_savings | Yes | ||
| monthly_savings | No | ||
| expected_return_rate | No | ||
| portfolio_volatility | No | ||
| safe_withdrawal_rate | No | ||
| target_retirement_age | Yes | ||
| annual_expenses_in_retirement | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the conceptual math: no return format, no units for rates (percent vs. decimal), no mention of how inflation/volatility are applied, and no note that it is a pure read-only computation. The 'no further contributions' framing is the one useful behavioral hint.
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?
A single front-loaded sentence with no waste; the em-dash clause efficiently explains the milestone. It is appropriately sized, though the brevity contributes to the parameter gaps noted elsewhere.
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 10-parameter financial computation with zero schema descriptions, no annotations, and no output schema, the description is far too thin. An agent knows what the tool conceptually computes but not the units, the role of several optional parameters, or the shape of what comes back.
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 0% across 10 parameters, so the description is the only place meaning could be added — and it adds none. Key ambiguities (are expected_return_rate, inflation_rate, and safe_withdrawal_rate percentages or decimals? what does portfolio_volatility do to the result? why monthly_savings exists in a 'no further contributions' calculation?) are left entirely unresolved.
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 gives a specific verb ('Compute') and resource ('Coast FIRE milestone') and defines the concept precisely: capital that compounds to a retirement target with no further contributions. It is clear, though it never distinguishes itself from the sibling calculate_fire_target, so an agent must infer which FIRE variant to call.
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?
There is no statement of when to use this tool versus calculate_fire_target or project_wealth_plan, no prerequisites, and no exclusions. The definition of Coast FIRE implies a use case but the description provides no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_fire_targetBInspect
Estimate the savings target needed for Financial Independence / Early Retirement. Runs Monte Carlo simulation and returns the probability the portfolio survives the planning horizon.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Planning horizon in years. | |
| currency | No | USD | |
| annual_expense | Yes | Projected annual spending in retirement (in selected currency). | |
| inflation_rate | No | ||
| apply_inflation | No | ||
| current_savings | No | Current liquid + invested assets. | |
| portfolio_volatility | No | Annual return standard deviation %. | |
| portfolio_return_rate | No | Expected real annual return %. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose the method (Monte Carlo simulation) and the return value (probability the portfolio survives the horizon), which is genuinely useful behavioral context. But it omits that results are stochastic/non-deterministic across runs and says nothing about compute cost or edge-case behavior.
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 tight sentences, front-loaded with the purpose then the method/return. No wasted words, though it is short enough that the missing usage guidance isn't an accident of length.
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 8-parameter stochastic tool with no annotations and no output schema, the description helpfully states the return value, partially compensating for the absent output schema. But it leaves sibling disambiguation and per-parameter semantics unaddressed, so it is only minimally complete.
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 63%, and the description names no parameters at all. It adds zero meaning beyond the schema, leaving several inputs (e.g., inflation_rate, apply_inflation, currency enum) with no prose guidance to compensate for the coverage gap.
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+resource ('Estimate the savings target needed for Financial Independence / Early Retirement') so an agent knows exactly what is computed. However, it does not differentiate from the close sibling calculate_coast_fire, which an agent would reasonably confuse it with.
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 when-to-use guidance, prerequisites, or named alternatives are given. The presence of calculate_coast_fire as a near-identical FIRE calculator makes the absence of routing guidance a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_swiss_property_taxAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| canton | Yes | Canton code (ZH, BE, ..., JU). | |
| sale_price | Yes | ||
| years_held | Yes | ||
| purchase_price | Yes | ||
| ersatzbeschaffung | No | Reinvest proceeds into a replacement primary residence. | |
| ersatzbeschaffung_amount | No | Amount reinvested (caps the tax deferral). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses accuracy limitations ('Educational estimate; commune surcharges and value-enhancing-improvement deductions are not modeled'), which is valuable context, but it says nothing about output form, precision, or computational assumptions beyond those exclusions.
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?
Three tight sentences: purpose first, then coverage/capabilities, then caveats. No filler, and the most important context (scope and limitations) is front-loaded.
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 6-parameter calculator with no output schema and no annotations, the description covers purpose, cantonal scope, key mechanics, and modeling limits well. It could say more about the deferral mechanics or the return shape, but it is largely sufficient to call the tool 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 coverage is only 50%, so the description must compensate. It adds meaning for years_held (holding-period adjustments) and the ersatzbeschaffung fields (replacement-residence deferral), but sale_price, purchase_price, and the interaction between sale/purchase price and tax base are left to inference.
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 ('Estimate') and a precise resource ('Swiss cantonal real-estate capital gains tax/Grundstueckgewinnsteuer for a property sale'), including scope (all 26 cantons). It is clearly distinguishable from the portfolio/FIRE siblings like rebalance_portfolio and project_wealth_plan.
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?
The description implies context by noting it is an 'Educational estimate' for a property sale and covering holding-period and Ersatzbeschaffung scenarios, but it gives no explicit when-to-use/when-not guidance or named alternatives. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_returnsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | Currency code; the historical return profiles are denominated in this currency. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses data provenance (derived from real index data, historical, denominated per currency), which is more than a bare getter would offer. It does not address whether profiles are cached/static, how stale the data is, or failure modes for unsupported currencies.
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 tight sentences, front-loaded with what is returned and immediately followed by why it matters. The phrase 'something defensible rather than guessing' is mildly editorial but reinforces intent rather than wasting space.
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 explaining the return shape (return % / volatility % pairs) and provenance. For a one-parameter read tool this is close to complete, missing only freshness/mutability of the data.
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 the single parameter has an explicit enum, so the schema already defines the input fully. The description adds nothing beyond 'denominated in this currency,' which the schema already states — baseline 3 applies.
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?
Names a specific verb+resource (historical portfolio return profiles per currency) and clarifies the unit of return, a (return %, volatility %) pair. It implicitly separates itself from siblings by naming which tools consume this data, though it doesn't explicitly state what it is not.
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?
Gives clear context for when to reach for it: grounding assumptions in calculate_fire_target / project_wealth_plan rather than guessing. No explicit exclusions or prerequisites are stated, but the intended workflow is legible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rebalance_planAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The plan code the user copied from the RetireCrunch Rebalancer ("Send plan to my AI"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: codes are single-use and expire in 15 minutes, results include IBKR contract ids where known, and RetireCrunch never places orders itself. The expiry/single-use constraint is exactly the kind of behavioral trait an agent cannot get from the schema.
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?
Four short sentences, purpose front-loaded, followed by the constraint and the next-step routing. No filler or repetition of the name.
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?
No output schema exists, so the description compensates by describing the return payload (trades with IBKR contract ids) plus the downstream workflow. Nothing an agent needs to call and correctly use the result 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% for the single 'code' parameter, so the schema already defines it. The description restates the same origin (copied from the Rebalancer via 'Send plan to my AI') without adding syntax or format detail, so baseline 3 applies.
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 (Fetch) and resource (rebalancing trades the user decided on in the RetireCrunch Rebalancer), and identifies the input as a plan code. This clearly separates it from the sibling rebalance_portfolio, which performs the rebalancing rather than fetching a saved plan.
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?
Explicitly routes the agent to the follow-up action: create one create_order_instruction per trade, and notes the user reviews and submits each one in IBKR. It does not name an exclusion case (e.g., 'do not use rebalance_portfolio for this'), but the context for when this tool is needed is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_portfolioAInspect
Open the user's Interactive Brokers portfolio in the RetireCrunch Portfolio Rebalancer. First call the IBKR connector's get_account_positions, get_account_balances and get_account_summary, then pass their results here UNCHANGED (do not re-type or round numbers). Returns a private link that works once, for 15 minutes — give it to the user exactly as written. No login is needed because the link itself is the key: the positions are encrypted with a key that exists only in the link, and RetireCrunch's server holds just that encrypted copy, which it cannot read, for at most 15 minutes and deletes it when the link is opened. Tell the user this, and that anyone holding the link can open it once, so it should not be shared. RetireCrunch does not recommend instruments or allocations: the user sets their own targets on the page.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | The result of IBKR get_account_summary, unchanged (base currency + net liquidation, used to check the numbers add up). | |
| balances | No | The `balances` array from IBKR get_account_balances, unchanged (gives per-currency cash). | |
| language | No | Site language for the link, matching the user's language when possible. | en |
| positions | Yes | The `positions` array from IBKR get_account_positions, unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the single-use 15-minute link, the no-login encryption model, server-side retention and deletion on open, the share-at-your-own-risk caveat, and that RetireCrunch gives no allocation advice. This is unusually thorough behavioral disclosure for a mutation-like tool.
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 purpose, then sequencing, then return-value semantics. Every sentence carries an instruction or a disclosure the agent must convey to the user, though the paragraph is dense and could be trimmed slightly without losing meaning.
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?
No output schema exists, and the description compensates by explaining exactly what is returned (a private one-time 15-minute link) and how to hand it to the user. Combined with the 100%-covered input schema and the explicit prerequisite tools, nothing needed to call this correctly 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 the baseline is 3, but the description adds real meaning beyond the schema by requiring the IBKR payloads be passed through verbatim with no rounding or retyping. It does not add syntax detail for language or the summary object, so it falls short of 5.
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 precise verb and resource: opens the user's Interactive Brokers portfolio in the RetireCrunch Portfolio Rebalancer. This clearly separates it from rebalance_portfolio and get_rebalance_plan, which operate on already-loaded portfolios.
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?
Explicitly names the prerequisite tools (get_account_positions, get_account_balances, get_account_summary) and the required call order, plus a concrete prohibition: pass results UNCHANGED, do not re-type or round numbers. An agent knows exactly what to do before calling this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_wealth_planAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Country regime — drives tax model (US uses bracket-based federal/state; others a flat rate). | GENERIC |
| currency | No | USD | |
| start_year | Yes | First year of the projection (typically the current year). | |
| yearly_detail | No | When true, include the full year-by-year array in the response. When false (default), return a compact summary plus 5-year milestones. | |
| household_type | No | single | |
| inflation_rate | No | Annual inflation %. | |
| retirement_year | Yes | Year retirement begins. | |
| current_mortgage | No | ||
| current_property | No | ||
| current_liquidity | No | ||
| income_yield_rate | No | Annual yield % during the income phase. | |
| estimated_tax_rate | No | Pre-retirement effective tax rate (%). | |
| plan_horizon_years | No | Total years to project from start_year. | |
| property_sale_year | No | ||
| current_living_costs | No | Annual general living expenses today. | |
| portfolio_volatility | No | Return std dev %; 0 = deterministic. | |
| current_earned_income | No | Annual gross earned income today. | |
| portfolio_return_rate | No | Annual real portfolio return %. | |
| portfolio_switch_year | No | Year to switch from growth to income phase. Defaults to retirement_year if omitted. | |
| property_sale_enabled | No | ||
| current_other_expenses | No | Annual other expenses today. | |
| current_housing_expenses | No | Annual housing expenses today. | |
| portfolio_switch_enabled | No | ||
| post_retirement_tax_rate | No | Post-retirement effective tax rate (%). | |
| property_sale_destination | No | liquidity | |
| current_investment_portfolio | No | ||
| partner_survivor_expense_factor | No | ||
| partner_early_death_years_before_end | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the tax regime behavior (US bracket-based vs flat rate elsewhere) and the default output shape (compact summary with 5-year milestones vs full array). However, it omits significant behavioral traits for a 28-param simulation model — notably whether portfolio_volatility introduces stochastic/Monte Carlo paths or a single deterministic run, and whether the computation is expensive or long-running.
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?
Three sentences, front-loaded with the verb and scope, then modeling domains, then return behavior. Dense but nearly every phrase carries information. Slight over-listing of modeled domains ('mortgage amortization, optional property sale') where a grouping would read tighter.
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 28-parameter tool with no annotations and no output schema, the description covers the return format and tax behavior but leaves large gaps: no explanation of how volatility changes results, no units guidance, and it claims to model 'pensions' while the schema exposes no pension parameter. Adequate but not complete for this complexity.
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 57%, so the description must partially compensate. It adds real meaning for region (tax model selection), yearly_detail (return shape), and the growth→income switch/property-sale modeling themes, but the majority of the 28 parameters (partner survivor factors, mortgage/property amounts, household_type, currency) get no explanatory support in either place. Marginal value over the schema.
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 opens with a specific verb+resource: 'Run RetireCrunch's full year-by-year Wealth Plan projection for a household,' and enumerates the modeled domains (income, pensions, expenses, portfolio growth, phase switch, mortgage, property sale, tax). This distinguishes it from the narrower FIRE siblings (calculate_fire_target, calculate_coast_fire) as the comprehensive projection engine.
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?
Usage is implied by 'full year-by-year Wealth Plan projection' and the yearly_detail toggle, but the description never states when to choose this over calculate_fire_target or calculate_coast_fire, nor any prerequisites or exclusions. An agent must infer the routing from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rebalance_portfolioAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fx_rates | No | Value of 1 unit of each currency in the base currency (base currency itself is 1). | |
| holdings | Yes | The portfolio holdings to rebalance. | |
| base_currency | No | Base currency the portfolio is valued in. | USD |
| class_targets | No | Optional per-asset-class goal % (incl. "Cash"). When given, unlocked holdings are retargeted to hit each class goal before computing trades. | |
| available_cash | No | Cash held per currency, keyed by ISO code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses the return shape (exact trades, per-currency cash movements, overdraft flags, summary) and an important scope limit (no costs/taxes). It stops short of stating determinism, error behavior on infeasible targets, or how locked holdings are treated.
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?
A single front-loaded sentence carries the inputs and outputs, followed by a short scoping clause; nothing is wasted. It is dense and slightly list-heavy but structurally sound.
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 nested, five-parameter planning tool with no output schema and no annotations, the description covers inputs, returned artifacts, and a key behavioral limit. Remaining gaps (target normalization, locked-holding effects, failure modes) are secondary but real.
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 the baseline is 3; the schema already documents fx_rates, class_targets, available_cash and every holding field. The description's mention of per-holding vs per-asset-class targets and FX/cash inputs maps to those parameters but adds no format or constraint detail beyond the schema.
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 names a specific verb and resource ('Rebalance a multi-currency portfolio') and enumerates both required inputs and returned artifacts (BUY/SELL trades, per-currency cash movements, summary). It does not, however, distinguish itself from the sibling get_rebalance_plan, which sounds like it may do the same thing.
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?
Usage is only implied by the input enumeration; there is no explicit statement of when to call this versus get_rebalance_plan or the other portfolio tools. The one scoping exclusion offered ('Planning math only — no transaction costs or taxes') narrows the domain but is a capability limit, not routing guidance.
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.
8 tool updates
- Changed
calculate_coast_fire1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
calculate_fire_target1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
compute_swiss_property_tax1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_portfolio_returns1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
get_rebalance_plan1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
load_portfolio6 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / balances / items / additionalPropertiesPrevious value: -trueNew value: +{} - changed
Input schema / properties / positions / items / additionalPropertiesPrevious value: -trueNew value: +{} - added
Input schema / properties / positions / items / properties / contract_id / maximumAdded value: +9007199254740991 - added
Input schema / properties / positions / items / properties / contract_id / minimumAdded value: +-9007199254740991 - changed
Input schema / properties / summary / additionalPropertiesPrevious value: -trueNew value: +{}
- Changed
project_wealth_plan1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
rebalance_portfolio5 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / available_cash / propertyNamesAdded value: +{ + "type": "string" +} - added
Input schema / properties / class_targets / propertyNamesAdded value: +{ + "type": "string" +} - added
Input schema / properties / fx_rates / propertyNamesAdded value: +{ + "type": "string" +} - removed
Input schema / properties / holdings / items / additionalPropertiesRemoved value: -false
2 tool updates
- Added
get_rebalance_plan - Added
load_portfolio
1 tool update
- Added
rebalance_portfolio
5 tool updates
- First observed
calculate_coast_fire - First observed
calculate_fire_target - First observed
compute_swiss_property_tax - First observed
get_portfolio_returns - First observed
project_wealth_plan
Related MCP Connectors
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
Retirement drawdown, 72(t) SEPP, RMD, Roth conversion, Social Security and state-tax calculators.
When can you retire? A FIRE plan from your numbers, graded by Monte Carlo and every year since 1872.
Financial calculators over MCP: compound interest, FIRE, historical returns, deep links, 6 languages
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-- AlicenseBqualityAmaintenance39 tax tools for US individual taxpayers — federal/state tax calculations, credits, deductions, retirement strategies, audit risk, and tax planning. All calculations run locally, no data leaves the machine. Supports TY2024 and TY2025 (One Big Beautiful Bill Act).44129 npm13MIT
- AlicenseAqualityAmaintenanceDeterministic US equity-compensation tax optimizer. Six tools cover ISO/AMT exercise scheduling, NSO sell-vs-hold, RSU vest-and-sell, single-stock concentration, protective put / zero-cost collar pricing, and Section 1202 QSBS qualification. Federal plus 50-state plus DC tax math.8256 npm5MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to 30+ validated financial independence calculation functions, eliminating hallucinations by ensuring accurate calculations for retirement planning, CoastFI, investment returns, and other FI metrics.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.