Skip to main content
Glama

Project savings growth

smartfin_project_savings_growth
Read-onlyIdempotent

Future balance of savings or an investment growing at a fixed yearly rate, with optional monthly contributions and a chosen compounding frequency. Returns the balance, total paid in and interest earned. Use for forward-looking "how much will I have" questions at an assumed rate. Do not use for what a real stock did in the past (use smartfin_calculate_investment_return). A fixed rate is an assumption, not a forecast.

Input Schema

NameRequiredDescriptionDefault
yearsYesNumber of years
currencyNoCurrency symbol for the amounts in the summary only; amounts are never converted. The link opens the page in US dollars, and how_to says to pick the currency there. Default USD
principalYesStarting amount in the currency chosen
annual_rate_pctYesAssumed yearly rate in %, e.g. 7
compounds_per_yearNo1 yearly, 2 twice a year, 4 quarterly, 12 monthly, 365 daily. Default 12
monthly_contributionNoAdded each month, in the currency chosen. Default 0

Output Schema

NameRequiredDescriptionDefault
citeYesHow to credit this result
dataYes
nextYesSuggested follow-up calls
linksYes
how_toYesSteps for the user to see or redo this on smartfin.fyi
sourceYes
summaryYesPlain-language result the assistant can quote

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / annual_rate_pct / maximum
      Previous value: -1000New value: +100
    • changedInput schema / properties / monthly_contribution / maximum
      Previous value: -1000000000New value: +10000000
    • changedInput schema / properties / principal / maximum
      Previous value: -10000000000New value: +100000000
    • changedInput schema / properties / years / maximum
      Previous value: -100New value: +50
  2. Changed3 schema fields changed
    • addedInput schema / properties / currency
      Added value: +{
      +  "description": "Currency symbol for the amounts in the summary only; amounts are never converted. The link opens the page in US dollars, and how_to says to pick the currency there. Default USD",
      +  "enum": [
      +    "USD",
      +    "EUR",
      +    "GBP",
      +    "CHF",
      +    "AUD",
      +    "CAD",
      +    "SGD",
      +    "HKD",
      +    "INR",
      +    "JPY"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / monthly_contribution / description
      Previous value: -"Added each month, in dollars. Default 0"New value: +"Added each month, in the currency chosen. Default 0"
    • changedInput schema / properties / principal / description
      Previous value: -"Starting amount in dollars"New value: +"Starting amount in the currency chosen"
  3. Changed1 schema field changed
    • addedOutput schema / properties / links / properties / page
      Added value: +{
      +  "description": "SmartFin's page for this stock, when it has one",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety burden is off the description. The description nonetheless adds meaningful context: it enumerates the three output components and states that the fixed rate is an assumption rather than a forecast — a real interpretive caveat for downstream reasoning.

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

Conciseness5/5

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

Four compact sentences: capability first, then output, then usage, then the exclusion and the assumption caveat. Every sentence carries information an agent needs, and the caution about fixed rates is placed last where it reads as a qualifier rather than burying the lead.

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

Completeness4/5

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

With an output schema present and 100% schema coverage, the description need not restate returns or parameter formats, and it doesn't waste space doing so. It covers purpose, usage, an exclusion, and the assumption caveat. The one real omission for a 19-sibling toolset is disambiguation from smartfin_calculate_future_value.

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 description coverage is 100%, including enum labels and defaults for compounds_per_year and currency, so the schema carries the parameter burden. The description only echoes that contributions are optional and compounding is choosable; it adds no syntax or interaction detail (e.g., whether contributions compound at the same frequency) beyond the schema. Baseline 3 is appropriate.

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 opens with a precise verb-plus-resource framing: future balance of savings/investments at a fixed yearly rate, with optional monthly contributions and a chosen compounding frequency. It also names the three returned figures (balance, total paid in, interest earned), so an agent knows exactly what computation this performs.

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?

It gives an explicit positive trigger (forward-looking "how much will I have" questions) and an explicit exclusion with a named alternative (past stock performance → smartfin_calculate_investment_return). The gap: smartfin_calculate_future_value in the sibling list appears to cover the same ground and is never mentioned or differentiated, leaving the agent to guess between two near-identical tools.

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.

Resources