Skip to main content
Glama

savvly

Project Savvly Monthly Contributions

project_savvly_monthly
Read-onlyIdempotent

Retirement projection for monthly contributions to the Savvly Longevity Benefit over a number of years. Returns payout amounts at milestone ages 80/85/90/95 with Savvly vs market alone cumulative totals, per-age breakdowns, and server-provided _lower/_upper range bounds. Use _upper as the central illustrative estimate and _lower to communicate downside. Suitable for retirement savings planning, annuity alternative comparison, and longevity benefit illustration. Supports an optional annual contribution increase and an optional early-withdrawal age. Contributions must finish by age 80: an omitted contribution_years auto-fits this, and an explicit one must satisfy current_age + contribution_years ≤ 80. Disclaimers + per-field hints under metadata. Payout methodology — Savvly vs market alone: the payout values are calculated by comparing two investors of the same age committing the same principal. Investor 1 invests in the market with the Savvly Longevity Benefit; Investor 2 invests in the market alone (no longevity overlay). To make the comparison apples-to-apples, at each milestone age (80, 85, 90, 95) Investor 2 withdraws from their market alone portfolio the same dollar amount Investor 1 receives as a payout from Savvly. The payout_market_alone_* and total_market_alone_* figures are therefore what Investor 2 can actually withdraw to match Savvly's payouts before running out — they fall to 0 once the market alone portfolio is depleted. The savvly_upside_* (and total_savvly_upside_*) fields quantify how much more total money Investor 1 receives in payouts from Savvly than Investor 2 is able to withdraw over time to match those payouts. DISCLOSURE REQUIRED: display disclosure.text verbatim and link disclosure.url to the user alongside any figures from this response. Required by SEC Marketing Rule and FINRA Rule 2210 — do not paraphrase or omit. VISUALIZATION: this tool emits an interactive chart widget (MCP Apps — see _meta.ui) that the HOST renders inline and editable; other clients render only your text and show no chart. That widget is the canonical chart for these numbers: do NOT draw, generate, or re-render a duplicate of it. You MAY still create your OWN, DIFFERENT visualization (e.g. a table or an alternate breakdown) and place it wherever you judge best — only the MCP App widget's position is constrained. Do NOT claim or imply a chart is visible (avoid 'the chart above shows…'); you cannot tell whether the host rendered the widget. Summarize the key figures in prose and show the disclosure text and link, and reference the widget only conditionally (e.g. 'if your client shows the interactive chart, its fields are editable to re-run the projection'). ORDER: BEFORE you call this tool, ALWAYS write at least one short lead-in paragraph (1-3 sentences) framing what the projection will show — do NOT invent specific figures you do not have yet. On hosts that render the widget inline at the tool call, this keeps your text ahead of the chart so the widget is never the first thing shown; THEN call the tool (this lead-in is framing, NOT asking the user for inputs — still call it in the same turn without waiting) and give the grounded figures + disclosure after it returns. This lead-in rule applies to the MCP App widget only; any visualization you create yourself may appear wherever you judge best. INPUTS: every parameter is OPTIONAL and defaults to a sensible value. Call this tool IMMEDIATELY — pass only the values the user explicitly stated and omit the rest. Do NOT ask the user for starting values, assumptions, or missing parameters before calling; the rendered widget has editable fields so they adjust age, amounts, and other assumptions inline after it appears.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
current_ageNoInvestor's current age (default 40). Min 18 (the projection matrix floor); max 75 (max enrollment age)
average_returnNoExpected average annual S&P 500 return % (default 8)
monthly_amountNoMonthly deposit in USD (default 100)
withdrawal_ageNoEarly-withdrawal age (default 82) — drives `early_withdrawal_value` and `total_payout_at_withdrawal_age_*` in the response
contribution_yearsNoNumber of years contributing. Omit to use a sensible default of min(27, 80 − current_age) — 27 for the canonical age-40 scenario, and always small enough that contributions finish by age 80 (the advisor limit). If you pass an explicit value, current_age + contribution_years must be ≤ 80.
installment_increase_percentageNoOptional annual % increase applied to monthly contributions

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputsYesEcho of the validated input arguments passed to the tool.
resultYesRaw projection envelope returned by the upstream estimator.
summaryYesConvenience summary including a human-readable narrative.
metadataYes
disclosureYesDISCLOSURE REQUIRED: display `disclosure.text` and link `disclosure.url` to the user whenever you present any number from this response. Required by SEC Marketing Rule and FINRA Rule 2210. The richer block under `metadata.disclaimer` is supplementary detail; this top-level field is the must-display.
visualizationNoRecommended chart for this projection — a grouped bar chart of the milestone payouts in `result.payout_age_dependent_values` (Savvly vs market alone). Render it when the surface can display a graph.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds substantial non-obvious behavior: the SEC Marketing Rule / FINRA 2210 disclosure requirement (must display disclosure.text verbatim), the MCP App widget emission behavior, the instruction to never claim a chart is visible, and the full payout methodology (Investor 1 vs Investor 2 comparison). All of this exceeds what annotations alone convey.

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

Conciseness4/5

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

The description is very long but well-structured with CAPS-delimited sections (DISCLOSURE REQUIRED, VISUALIZATION, ORDER, INPUTS) and front-loads the core purpose before diving into methodology and compliance rules. Every paragraph carries necessary complexity — SEC compliance, widget behavior, ordering — though the payout-methodology and visualization sections run verbose and could be tightened without losing meaning.

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

Completeness5/5

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

For a tool with 6 optional params, an output schema, a compliance mandate, and a widget-rendering side effect, the description is exceptionally complete: purpose, return shape (including the _lower/_upper usage convention), parameter behavior, methodology, disclosure obligation, visualization rules, ordering guidance, and input strategy are all covered. The presence of an output schema covers return values, and 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.

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents all 6 optional parameters — baseline is 3. The description adds marginal value on top: the auto-fit default logic for contribution_years (omitted default = min(27, 80 − current_age)) and the note that withdrawal_age drives early_withdrawal_value. Useful but modest, consistent with a high-coverage schema carrying the main burden.

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 opening sentence states a specific verb and resource — 'Retirement projection for monthly contributions to the Savvly Longevity Benefit' — and enumerates what it returns (payout amounts at 80/85/90/95, cumulative totals, per-age breakdowns, lower/upper bounds). The 'monthly' qualifier implicitly differentiates it from sibling project_savvly_lumpsum without needing to name it.

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

Usage Guidelines4/5

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

The description gives clear context ('Suitable for retirement savings planning, annuity alternative comparison, and longevity benefit illustration') and unusually rich operational guidance — a required lead-in paragraph before calling, call immediately without asking for inputs, and the age-80 contribution constraint. However, it never explicitly names sibling alternatives (e.g., project_savvly_lumpsum) or states when NOT to use this tool, relying on implied monthly-vs-lumpsum contrast.

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.

TDQS

A4.2/5.0
Disambiguation4/5

The three projection tools (project_retirement_with_savvly, project_savvly_lumpsum, project_savvly_monthly) share a scenario-based boundary that is reasonably clear but has some overlap — the full retirement simulation could conceptually subsume the lump-sum and monthly scenarios. The FAQ tool explicitly documents its overlap with search_savvly_content, which mitigates confusion. The eligibility, product info, and comparison tools are clearly distinct.

Naming Consistency5/5

Every tool follows a clean verb_savvly_noun convention in snake_case: check, compare, get, get, project, project, project, search. The pattern is perfectly predictable across the set, with the three projection tools sharing the 'project' verb and differing only in their object (retirement_with_savvly, savvly_lumpsum, savvly_monthly).

Tool Count5/5

Eight tools is well within the ideal 3-15 range and is appropriately scoped for a retirement advisory server. Each tool earns its place: eligibility checks, product info, FAQ, content search, comparison, and three distinct projection modes cover the server's stated purpose without redundancy bloat.

Completeness4/5

The tool surface covers the full advisory lifecycle well: eligibility screening, product overview, FAQ, content search, competitive comparison, and three projection scenarios (full retirement, lump-sum, monthly). Minor gaps exist — there is no enrollment/purchase tool or a standalone pricing/quote tool — but these are arguably outside an information-advisory scope, so agents can complete core workflows without dead ends.