Skip to main content
Glama

savvly

Project Retirement Trajectory With Savvly

project_retirement_with_savvly
Read-onlyIdempotent

Full retirement simulation showing the projected savings trajectory WITH and WITHOUT a Savvly allocation across the planning horizon (current_age → life_expectancy). Requires current_age ≤ retirement_age ≤ life_expectancy. Returns gap_score, possible_higher_monthly_paycheck, a server-provided headline message, and a per-year age_dependent_values[] timeline. Disclaimers + per-field hints under metadata. 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_ageNoCurrent age (default 40)
inflation_rateNoExpected annual inflation rate % (default 3)
retirement_ageNoPlanned retirement age (default 68)
life_expectancyNoPlanning horizon (default 100)
monthly_paycheckNoDesired monthly retirement paycheck in USD (default 4500)
monthly_contributionNoMonthly retirement contribution in USD (default 1000)
percentage_in_savvlyNoPercentage of the retirement portfolio allocated to Savvly (default 5)
pre_retirement_returnNoExpected pre-retirement annual return % (default 6)
annual_income_increaseNoAnnual contribution % increase (default 2)
post_retirement_returnNoExpected post-retirement annual return % (default 5)
other_retirement_incomeNoOther monthly retirement income in USD (default 1600)
current_retirement_savingsNoCurrent total retirement savings in USD (default 60000)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputsYes
resultYes
summaryYesConvenience summary. The narrative carries the canonical full-disclosures URL inline; display it verbatim alongside any figures from this response.
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.
visualizationNoRecommended chart for this projection — a year-by-year area chart of `result.age_dependent_values` (savings with vs. without Savvly). Render it when the surface can display a graph. The richer `metadata.display_hints` block carries the same chart plus layout/tooltip detail.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description goes far beyond that by disclosing regulatory requirements (SEC/FINRA disclosure display), the behavior of the MCP App widget (rendering conditional, editable fields), and the exact ordering constraint (lead-in before call). It also warns against implying a visible chart and against re-rendering duplicates. No contradictions with annotations.

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 long but well-structured with clear section headers (DISCLOSURE, VISUALIZATION, ORDER, INPUTS) and front-loads the core purpose. Every sentence carries functional weight—no filler—though it could be tightened slightly without losing meaning. The length is justified by regulatory and UI interaction complexity.

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?

Given the tool's complexity (12 optional parameters, output schema, disclosure obligations, UI widget behavior), the description covers all essential aspects: return fields, disclosure requirements, widget handling, lead-in ordering, and parameter handling. Nothing an agent needs to call this correctly and present results responsibly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description adds value by stating that all parameters are optional and default to sensible values, and by instructing the agent to only send explicitly stated values—this is usage-level semantic guidance beyond the schema. It does not repeat field meanings, which is appropriate given full coverage.

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 explicitly states the tool's function: a full retirement simulation comparing a savings trajectory with and without a Savvly allocation over the planning horizon. It also lists the key output fields (gap_score, possible_higher_monthly_paycheck, headline, timeline) and distinguishes it from sibling tools like project_savvly_lumpsum and project_savvly_monthly by scope (full trajectory vs. specific projections).

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

Usage Guidelines5/5

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

Provides explicit, actionable guidance: call immediately, pass only user-stated values, omit defaults, do not ask for inputs, and write a lead-in paragraph before calling. It also addresses the widget rendering context and how to reference results, giving clear when-to-use and how-to-use instructions that separate this tool from its siblings.

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.