financial-calculators
Server Details
Financial calculators over MCP: compound interest, FIRE, historical returns, deep links, 6 languages
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 14 tools
Tools are mostly distinct, but there is mild overlap: historical_investment_return vs compare_investments (single vs multi-asset) and get_tool_guide vs list_calculators (both discovery helpers). Descriptions clarify boundaries, so an agent can select correctly with care.
Names are all snake_case and readable, but they mix verb_noun helpers (build_calculator_link, list_calculators) with noun-phrase calculator names (fire_number, compound_interest), so the pattern is not fully predictable.
14 tools is well-scoped for a financial calculator server, with each tool earning its place by covering a distinct calculation or essential helper function. It stays within the typical 3-15 range without feeling thin or bloated.
The surface covers many common financial calculators and provides list_calculators and build_calculator_link to reach all 31 site calculators. However, computed outputs are only directly available for a subset; the rest rely on link generation, leaving a minor gap.
Available Tools
14 toolsbuild_calculator_linkBuild calculator linkARead-onlyIdempotentInspect
Build a deep link to a SmartMoney77 calculator with pre-filled values that auto-calculate on open. Use list_calculators first to find the slug and its parameters. Example: { "calculator": "bitcoin-history", "lang": "en", "params": { "amount": 1000, "year": 2015 } } → https://smartmoney77.com/en/bitcoin-history?amount=1000&year=2015
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| params | No | Pre-filled query params for the calculator, e.g. { expenses: 4000, saving: 1500 }. Use the exact param names from list_calculators. | |
| currency | No | Optional currency override, e.g. USD, GBP, SAR, MXN, BRL. Ignored for history calculators (always USD). | |
| calculator | Yes | Calculator slug, e.g. 'fire-number' or 'bitcoin-history'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Ready-to-open deep link — the URL to cite and share. |
| lang | Yes | Language used in the URL. |
| notes | Yes | Warnings, e.g. an ignored or unsupported currency. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| calculator | Yes | Resolved calculator slug. |
| acceptedParams | Yes | Comma-separated params this calculator accepts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context that the resulting link auto-calculates on open, which is not conveyed by annotations or 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?
The description is front-loaded with purpose, followed by a concise prerequisite instruction and a concrete example. Every sentence and the example earn their place without redundancy.
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?
Given the rich schema, annotations, and the presence of an output schema, the description provides everything needed: purpose, prerequisite routing to list_calculators, and a concrete input-to-URL example. No important invocation details are 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 every parameter is already documented in detail, including lang formatting effects and currency exceptions. The description adds only an illustrative example mapping inputs to a URL, which does not add semantic meaning 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 states a specific verb and resource: 'Build a deep link to a SmartMoney77 calculator with pre-filled values that auto-calculate on open.' It clearly distinguishes this link-building tool from siblings like list_calculators and the individual calculator tools by naming the action and output.
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?
It explicitly routes the agent to 'Use list_calculators first to find the slug and its parameters,' which is clear prerequisite guidance and points at a sibling tool. It does not state when not to use this tool, but the context for invocation is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_investmentsCompare historical investmentsARead-onlyIdempotentInspect
Run the same "what if I had invested" calculation across 2-8 assets and rank them by final value. USD only, same yearly low/high average pricing as the SmartMoney77 history calculators. Assets: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil. Example: { "amount": 1000, "buy_year": 2015, "assets": ["bitcoin", "sp500", "gold"] } → each asset's value today, sorted best first, each with its own reproduction link.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| amount | Yes | Amount invested in USD, identical for every asset. | |
| assets | Yes | 2-8 asset slugs. Valid: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil. | |
| buy_year | Yes | Year of purchase. | |
| sell_year | No | Year to sell in, or "today" for the live market price. Default "today". | today |
Output Schema
| Name | Required | Description |
|---|---|---|
| amount | Yes | |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| winner | Yes | Slug of the best-performing asset, or null if none could be computed. |
| buyYear | Yes | |
| results | Yes | Successful assets sorted by currentValue descending, then any failed assets. |
| sellDate | Yes | |
| methodology | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and open-world traits, so the description adds genuine context beyond them: USD-only constraint, the shared 'yearly low/high average' pricing model with SmartMoney77, and the per-asset reproduction link returned. Useful behavioral detail, though auth/rate-limit or error behavior is absent.
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 purpose, scope and output in three dense sentences plus a worked example. The inline asset enumeration is somewhat redundant with the schema but is still readable and earns its place as a quick reference.
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?
Given an output schema exists, the description needn't explain return values, yet it still previews the ranked result and reproduction link. Combined with the example and pricing methodology, an agent has everything needed to invoke it 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 description coverage is 100%, so the baseline is 3, but the description adds value with a concrete example payload showing how amount, buy_year and assets combine and clarifying the ranked output order. The asset slug list duplicates the schema, which slightly blunts the added value.
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 and resource ('run the same what-if-I-had-invested calculation across 2-8 assets and rank them by final value'), which cleanly separates it from the single-asset historical_investment_return and from compound_interest. The asset universe and ranking output are named up front.
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?
Use is implied by 'across 2-8 assets and rank them' (i.e., pick this when comparing multiple assets), but the description never explicitly says when to prefer it over historical_investment_return or compound_interest, nor does it state exclusions. Adequate but with a clear routing gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compound_interestCompound interest projectionARead-onlyIdempotentInspect
Project the future value of an initial amount plus monthly contributions at a given annual return (monthly compounding), and return a link to the same calculation on SmartMoney77. Example: { "initial": 10000, "monthly": 500, "rate": 8, "years": 20 } → futureValue = 343,778. Monthly contributions are made at the end of each month (ordinary annuity).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | Yes | Expected annual return in percent, e.g. 8. | |
| years | Yes | Investment horizon in years (1-80). | |
| initial | Yes | Initial lump sum, in the user's currency. | |
| monthly | No | Monthly contribution (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| rate | Yes | |
| years | Yes | |
| growth | Yes | futureValue minus contributed — the compounding gain. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| contributed | Yes | Initial amount plus all monthly contributions. |
| futureValue | Yes | Projected balance at the end of the horizon, rounded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful domain behavior beyond that: monthly compounding, contributions at the end of each month (ordinary annuity), and that a SmartMoney77 link is returned alongside the value.
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?
The purpose and key convention are front-loaded, and the worked example earns its space by illustrating the exact semantics of the inputs and output. The sentence is long but contains no filler or repetition of schema content.
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 an output schema present, the description need not enumerate return fields, and it still notes the returned link. Compounding frequency, contribution timing, and rate interpretation are all resolved, leaving only sibling routing as a gap for an otherwise self-contained calculator.
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 all five parameters (initial, monthly, rate, years, lang) are already documented in the schema, including defaults, bounds, and language/formatting behavior. The description adds only the annuity-timing nuance, not per-parameter meaning, so the 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?
The description states a precise verb and resource ('project the future value of an initial amount plus monthly contributions at a given annual return') and pins down the compounding convention. The worked example with concrete numbers makes the function unmistakable and distinguishes it from siblings like compare_investments or fire_number.
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 the calculation described, but there is no explicit guidance on when to choose this over siblings such as cost_of_waiting, latte_factor, or compare_investments, nor any stated preconditions. The mention that it returns a SmartMoney77 link hints at the follow-up flow but is not framed as 'use this when...'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cost_of_waitingCost of waiting to investBRead-onlyIdempotentInspect
Compare investing the same monthly amount starting at an early age versus a later age, and show what the delay costs by retirement. Example: { "monthly": 1000, "start": 25, "compare": 35, "retire": 67, "rate": 8 } → a large gap created mostly by compounding, not by the extra contributions.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | No | Expected annual return in percent (default 10 — same as the site's field default). | |
| start | Yes | Early starting age. | |
| retire | No | Retirement age (default 67). Must exceed `compare`. | |
| compare | Yes | Delayed starting age. Must be greater than `start`. | |
| monthly | Yes | Monthly amount invested in both scenarios. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| cost | Yes | early minus late — the cost of waiting. |
| late | Yes | Balance at retirement when starting at `compare`. |
| early | Yes | Balance at retirement when starting at `start`. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| lateYears | Yes | Years invested in the delayed scenario. |
| earlyYears | Yes | Years invested in the early scenario. |
| extraContributed | Yes | Extra money actually paid in by starting early. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety behavior is covered. The description usefully adds an interpretive claim about results (the gap comes mostly from compounding, not extra contributions), but says nothing about permissions, limits, or computation assumptions beyond the return rate.
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 sentences, front-loaded with the purpose before the example. The embedded JSON example is compact and directly usable, though the qualitative result claim consumes space that could have carried usage guidance.
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 6 fully documented parameters, an output schema, and complete annotations, the description needs only to frame purpose and scenario, which it does. Minor gaps are the absence of sibling routing and of any caveats about assumptions in the comparison model.
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%, with each parameter documented including constraints (retire must exceed compare, compare greater than start). The example reinforces the parameter roles but adds no semantics beyond what the schema already provides, so the 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 (compare) and resource (investing the same monthly amount at an early vs later age) and frames the outcome as 'what the delay costs by retirement'. It is clearly distinguishable in substance from siblings like compound_interest, though it never names an alternative to differentiate explicitly.
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 choose this tool over compound_interest, compare_investments, or latte_factor, and no prerequisites or exclusions are given. The example implies the intended scenario but does not guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credit_card_payoffCredit card payoffARead-onlyIdempotentInspect
Calculate how long it takes to clear a credit card balance at a fixed monthly payment and APR, plus the total interest paid. Example: { "balance": 10000, "payment": 400, "rate": 18 } → about 32 months and ~2,600 in interest. Errors when the payment is smaller than the first month's interest.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | Yes | Annual interest rate (APR) in percent, e.g. 18. | |
| balance | Yes | Outstanding card balance. | |
| payment | Yes | Fixed monthly payment. Must exceed the first month's interest. | |
| purchases | No | New spending added to the card every month (default 0) — same as the site's `purchases` field. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| years | Yes | Same duration in years, one decimal. |
| months | Yes | Months until the balance reaches zero. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| totalPaid | Yes | Total actually paid over the payoff period. |
| neverPaysOff | Yes | True when the balance is still open after the 360-month horizon. |
| totalInterest | Yes | Total interest paid over the payoff period. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent profile, and the description adds genuine context on top: it discloses the error condition (payment below first month's interest) and the shape of the result (months plus total interest). It stops short of discussing rounding or edge cases.
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 sentences, front-loaded with the core purpose, followed by a concrete worked example and the single failure mode. No filler; every element earns its place.
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 an output schema present and annotations covering safety, the description only needs to add behavioral and usage context, which it does via the example and the error note. The monthly 'purchases' input is left to the schema, which is acceptable given full coverage.
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 all five parameters are already documented in the schema, including the purchases field and the lang enum. The description's example anchors the three required inputs but adds no syntax or meaning beyond the schema, so the 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+resource: calculating time-to-payoff for a credit card balance and the total interest paid. The scope (fixed monthly payment and APR) is precise enough to separate it from siblings like compound_interest or cost_of_waiting without opening any schema.
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 the narrow domain (paying down a card balance), and one failure condition is noted, but there is no explicit when-to-use/when-not guidance or named alternative among the many calculator siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emergency_fundEmergency fund coverageARead-onlyIdempotentInspect
Calculate how many months of expenses current savings cover, the target emergency fund size, the gap, and how long it takes to close it. Example: { "expenses": 3000, "savings": 6000, "contribution": 500, "target": 6 } → 2 months covered, target 18,000, gap 12,000, 24 months to go.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| target | No | Target coverage in months (default 6). | |
| savings | No | Current emergency savings (default 0). | |
| expenses | Yes | Monthly living expenses. | |
| contribution | No | Monthly amount added to the fund (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| gap | Yes | Amount still missing (0 when the target is reached). |
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| targetAmount | Yes | expenses × target months. |
| monthsCovered | Yes | savings / expenses, one decimal. |
| monthsToTarget | Yes | Months to close the gap at the given contribution; 0 when reached, null when no contribution was given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a pure read-only, idempotent, non-destructive, non-open-world calculation, so the safety profile is covered. The description adds the deterministic input→output mapping via the worked example, but says nothing about edge cases (e.g. zero contribution → infinite time) or limits beyond what the schema constrains.
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 sentences, front-loaded with the computed outputs and followed by a single compact worked example. No filler; every clause earns its place.
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?
An output schema exists and annotations carry the safety profile, so the description needn't explain return values or side effects. Parameters are fully documented, and the example confirms the calculation semantics — nothing essential 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 coverage is 100%, so the schema already documents every parameter, making 3 the baseline. The worked example goes beyond the schema by showing how expenses, savings, contribution, and target combine into concrete outputs, adding interpretive value.
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 (Calculate) and resource (emergency fund coverage: months covered, target, gap, months to close). The listed outputs make it unmistakably distinct from siblings like fire_number or compound_interest without opening their schemas.
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 example implies the scenario (given expenses/savings/contribution/target, compute coverage and path to target), so usage is inferable. However, it never states when to prefer this over fire_number, compound_interest, or cost_of_waiting, nor any prerequisites, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fire_numberFIRE number & years to freedomARead-onlyIdempotentInspect
Calculate the financial-independence (FIRE) target from monthly expenses using the 4% rule, plus how many years of saving are needed. Example: { "expenses": 4000, "saving": 1500, "current": 50000 } → fireNumber 1,200,000.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | No | Expected annual real return in percent (default 5 — same as the site's field default). | |
| saving | Yes | Amount saved/invested per month. | |
| current | No | Current invested savings (default 0). | |
| expenses | Yes | Monthly living expenses in retirement. | |
| withdrawalRate | No | Safe withdrawal rate in percent (default 4 = the 4% rule). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| rate | Yes | |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| reachable | Yes | Whether the target is reachable within 100 years. |
| fireNumber | Yes | Portfolio needed: annual expenses / withdrawal rate. |
| yearsToFire | Yes | Years to reach the target, or null when unreachable within 100 years. |
| withdrawalRate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds the method disclosure (4% rule) and the secondary output (years of saving), but says nothing about language handling, formatting side effects, or determinism beyond what annotations imply.
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 sentences, purpose first, concrete example second — zero filler and nothing repeated from the schema. Well front-loaded for a quick selection decision.
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 a full output schema and 100% parameter documentation, the description only needs to frame the calculation, which it does. It is close to complete; the only omission is routing guidance relative to the many sibling calculators.
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 100%, so every parameter including lang, rate and withdrawalRate is already documented in the schema. The example illustrates expenses/saving/current meaningfully but adds no syntax or format detail beyond the schema, so the 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 (calculate) and a well-defined resource (FIRE target) and spells out the two outputs: the target and years of saving. The FIRE concept is distinct enough to separate it from siblings like compound_interest or emergency_fund, though it never names an alternative.
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 worked example ({expenses, saving, current} → fireNumber), which shows the intended call shape but not when to pick this over cost_of_waiting or compound_interest. No when-not conditions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tool_guideTool guide (prompts & resources)ARead-onlyIdempotentInspect
Discovery helper: returns the standard prompt template, argument template, output-interpretation guide and related resources for one or all SmartMoney77 tools, so you can call them correctly without guessing. Example: { "tool": "fire_number" }.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | Tool name to describe. Omit for all. One of: list_calculators, build_calculator_link, build_share_pack, compound_interest, fire_number, credit_card_payoff, emergency_fund, inflation_check, latte_factor, killer_fees, cost_of_waiting, historical_investment_return, compare_investments. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| guides | Yes | One guide per matching tool. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds what is returned, but no additional behavioral details such as error behavior or special conditions. This is adequate with annotations present, but not exceptional.
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?
The description consists of two sentences, with the first sentence stating the resource set and scope and the second providing a concrete JSON example. There is no filler and the key action 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 simple tool with one optional parameter, a clear purpose, and an output schema, the description is sufficient. It lists the kinds of guides returned, says it works for one or all tools, and gives an example. No missing information is necessary for correct invocation.
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?
The schema description already fully documents the single 'tool' parameter, including the omit-for-all behavior and the list of valid values. The description's example illustrates usage but does not add semantics beyond what the schema already provides. Baseline 3 applies due to 100% schema coverage.
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 concrete deliverable (standard prompt template, argument template, output-interpretation guide, resources) and clearly identifies the tool as a discovery helper. This distinguishes it from the calculator siblings, which perform calculations rather than return usage guidance.
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 phrase 'so you can call them correctly without guessing' clearly indicates when to use this tool: before invoking other SmartMoney77 tools when usage details are unclear. It doesn't explicitly exclude alternatives like list_calculators, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
historical_investment_returnHistorical investment returnARead-onlyIdempotentInspect
Compute what a past investment would be worth today (or in a later year), using the same yearly low/high average prices as the SmartMoney77 history calculators. All amounts and prices are in USD only. Assets: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil. Example: { "asset": "bitcoin", "amount": 1000, "buy_year": 2015 } → units bought, current value, profit, total return and CAGR, plus a link that reproduces it on the site.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| asset | Yes | Asset slug. One of: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil. | |
| amount | Yes | Amount invested in USD. | |
| buy_year | Yes | Year of purchase. Must be within the asset's data range. | |
| sell_year | No | Year to sell in, or "today" for the live market price. Default "today". | today |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link that reproduces this calculation on SmartMoney77. |
| cagr | Yes | Compound annual growth rate in percent, or null for a same-year holding. |
| asset | Yes | |
| profit | Yes | currentValue minus initialInvestment. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| buyYear | Yes | |
| buyPrice | Yes | Buy price used: the buy year's low/high average, USD. |
| sellDate | Yes | The sell year, or "today" when the live price was used. |
| assetName | Yes | |
| sellPrice | Yes | Sell price used, USD. |
| methodology | Yes | One-sentence explanation of the pricing method and source. |
| currentValue | Yes | Value of the position at the sell date, in USD. |
| dataUpdatedAt | Yes | When the sell price is from; states explicitly when a live-price fallback happened. |
| unitsPurchased | Yes | Units (coins/shares/ounces/barrels) bought with the initial amount. |
| initialInvestment | Yes | Amount invested, in USD. |
| totalReturnPercent | Yes | Total return over the whole period, in percent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and open-world traits, so the bar is lower. The description still adds real context: the pricing methodology (same yearly low/high averages as the site calculators), a hard USD-only currency constraint, and the shape of what comes back (units, value, profit, return, CAGR, link).
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?
Purpose is front-loaded, followed by data-source, currency and asset scope, then a concrete example. The enumeration of 17 asset slugs is the only verbose stretch, but it is load-bearing because it defines valid values.
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 an output schema present (no need to explain return values), full schema coverage, and annotations covering the safety profile, the description supplies everything else an agent needs: data source, currency restriction, valid assets, and a combined-parameter example.
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 all five parameters including lang and sell_year are already documented, making 3 the baseline. The description restates the asset list and gives a worked example combining asset/amount/buy_year, which adds modest value but no syntax 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?
States a specific verb and resource: computing what a past investment would be worth today or in a later year, with the added scope that it uses yearly low/high average prices. This differentiates it somewhat from a generic growth calculator, but it never names the overlapping siblings (compound_interest, compare_investments) it must be chosen over.
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 the concrete example and the 'past investment' framing, so an agent can infer when it applies. There is no explicit when-to-use, when-not-to-use, or alternative-tool guidance despite several overlapping financial calculators in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inflation_checkInflation erosion checkARead-onlyIdempotentInspect
Calculate how much purchasing power cash loses to inflation over time, and what nominal amount keeps the same buying power. Example: { "amount": 100000, "rate": 3, "years": 10 } → realValue ≈ 74,409 and equivalentNeeded ≈ 134,392.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | No | Annual inflation rate in percent (default 3). | |
| years | Yes | Number of years (1-80). | |
| amount | Yes | Amount of money held today. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| lost | Yes | amount minus realValue. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| realValue | Yes | Today's-money purchasing power of the amount after the period. |
| lostPercent | Yes | Purchasing power lost, in percent (one decimal). |
| equivalentNeeded | Yes | Nominal amount needed later to buy what `amount` buys today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false) already make clear this is a safe, side-effect-free computation. The description adds little behavioral context beyond that, though the worked example implicitly reveals the shape of the result (realValue, equivalentNeeded) and the fact that it's a pure calculation with no state change.
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 sentences, front-loaded with the core purpose and followed by a compact numeric example that earns its space by defining the two outputs. No filler or repetition.
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?
An output schema exists, so return values needn't be spelled out, and annotations cover the safety profile; parameters are fully documented in the schema. The description supplies purpose and an illustrative example, leaving only sibling differentiation and language-formatting behavior unaddressed.
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 schema already documents amount, rate (default 3), years (1-80), and the lang enum with formatting implications. The example ties amount/rate/years to outputs but adds no semantics beyond the schema, so the baseline of 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?
The description states a specific dual purpose with a concrete verb and resource: computing real purchasing-power loss to inflation and the nominal amount preserving buying power. The worked example ({amount:100000, rate:3, years:10} → realValue ≈ 74,409, equivalentNeeded ≈ 134,392) makes the output tangible. It doesn't name or contrast against nearby siblings such as compound_interest or cost_of_waiting, so it stops short of 5.
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 the example and the purpose framing, but there is no explicit when-to-use or when-not-to-use guidance, and no routing to alternatives like compound_interest or cost_of_waiting, which are adjacent concepts an agent could confuse with this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
killer_feesInvestment fee impactARead-onlyIdempotentInspect
Compare how much a high management fee costs versus a low fee over time on a portfolio with monthly contributions. Example: { "portfolio": 100000, "monthly": 1000, "highFee": 1.5, "lowFee": 0.3, "years": 25 } → the low-fee portfolio ends materially higher.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | No | Gross annual return in percent before fees (default 8 — same as the site). | |
| years | Yes | Investment horizon in years (1-60). | |
| lowFee | Yes | Lower annual fee in percent, e.g. 0.3. | |
| highFee | Yes | Higher annual fee in percent, e.g. 1.5. | |
| monthly | No | Monthly contribution (default 0). | |
| portfolio | Yes | Current portfolio value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| difference | Yes | withLowFee minus withHighFee — the cost of the higher fee. |
| withLowFee | Yes | Ending balance net of the lower fee. |
| withHighFee | Yes | Ending balance net of the higher fee. |
| differencePercent | Yes | Difference as a percent of the high-fee balance (one decimal). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the qualitative shape of the result ('the low-fee portfolio ends materially higher'), which is useful framing but not a precise disclosure of what the output contains. With annotations carrying the behavioral burden, this lands at the minimum-viable level.
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 sentences, front-loaded with the purpose, followed by a compact example that doubles as a usage illustration. No filler. Slightly dense in the example, but every element earns its place.
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?
An output schema exists, so return values need not be described, and the annotations cover the safety profile. The main gap is that the description does not say whether lowFee must be lower than highFee or how fees interact with the gross 'rate', which an agent might need when constructing inputs. Otherwise it is complete for a read-only calculator.
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 each field (portfolio, monthly, highFee, lowFee, years, rate, lang) is already documented with defaults and ranges in the schema. The example in the description illustrates typical units and magnitudes, but adds no syntax or constraint detail beyond what the schema states, so the baseline of 3 is correct.
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 concrete verb and resource: compare the long-term cost of a high vs low management fee on a portfolio with monthly contributions. It is clear enough to distinguish from generic siblings like compound_interest or inflation_check, but it never explicitly contrasts itself with those alternatives, which is what would be needed for a 5.
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 context is only implied by the example input. There is no statement of when to pick this over compare_investments or compound_interest, and no prerequisites or exclusions. It is adequate to infer intent but the agent gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latte_factorLatte factor (small daily habit cost)ARead-onlyIdempotentInspect
Calculate what a small recurring daily expense (coffee, cigarettes, takeaway) costs over time and what it would grow to if invested instead. Monthly cost = cost × perWeek × 52 / 12, and monthly contributions are made at the end of each month (ordinary annuity). Example: { "cost": 5, "years": 30, "rate": 8, "perWeek": 5 } → ~108/month spent and a six-figure invested balance.
| Name | Required | Description | Default |
|---|---|---|---|
| cost | Yes | Cost of the habit per day. | |
| lang | No | Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted. | en |
| rate | No | Expected annual investment return in percent (default 8). | |
| type | No | Optional habit key for the link, e.g. 'coffee'. | |
| years | No | Number of years (default 30). | |
| perWeek | No | How many days per week the expense happens (default 7). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | Deep link to the same calculation on SmartMoney77. |
| rate | Yes | |
| years | Yes | |
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| totalSpent | Yes | Total spent on the habit over the whole period. |
| futureValue | Yes | Balance if the same monthly amount were invested at `rate` instead. |
| monthlyCost | Yes | Average monthly cost: cost × perWeek × 52 / 12, rounded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely non-obvious behavioral context: the exact monthly-cost formula, the ordinary-annuity convention (contributions at month end), and a worked example showing the expected magnitude of output.
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 core purpose, then the formula and a compact example; every sentence carries information. It is dense but not padded, and the modeling assumption is stated rather than buried.
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?
An output schema exists, so return values need not be explained, and the description supplies the remaining essentials: the calculation model, the annuity timing convention, and a sanity-check example. Only the choice of defaults vs siblings is not addressed.
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 100%, so baseline is 3, and the description goes further by tying parameters together in a formula (cost × perWeek × 52 / 12) and a concrete example ({cost:5, years:30, rate:8, perWeek:5} → ~108/month). This clarifies how cost and perWeek interact, which the individual schema entries do not.
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 and subject: calculate the lifetime cost of a small recurring daily expense and the invested alternative, with concrete examples (coffee, cigarettes, takeaway). The purpose is unambiguous, though it never names the closest siblings (cost_of_waiting, compound_interest) to disambiguate scope.
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 scenario described ('small recurring daily expense') implies when the tool fits, but there is no explicit when-to-use guidance and no routing against nearby calculators like compound_interest or cost_of_waiting. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calculatorsList calculatorsARead-onlyIdempotentInspect
List every SmartMoney77 calculator with its slug, accepted URL parameters and supported languages/currencies. Call this before build_calculator_link. Example: { "group": "history" } returns only the 'what if I had invested' tools.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Filter: 'planning' for financial planning tools, 'history' for what-if investment history tools, 'all' (default) for everything. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | Citation info: always credit SmartMoney77 with the provided link when presenting results. |
| languages | Yes | Supported language codes. |
| currencies | Yes | Supported currency codes per language. |
| calculators | Yes | Matching calculators. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by specifying the output content (slug, accepted URL parameters, languages/currencies) and providing an example that shows how the 'group' filter changes the result. It does not overstate capabilities, and the safety profile is consistent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: first sentence states the purpose and outputs, second gives direct usage guidance, third provides a concrete example. The most critical information (what it does, when to use it) is front-loaded, and every sentence earns its place.
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 simple list tool with one optional parameter and an existing output schema, the description is complete. It tells the agent what the tool returns (slug, URL parameters, languages/currencies), when to call it (before build_calculator_link), and how filtering works via the example. No critical information is missing for correct invocation.
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?
The schema already provides a comprehensive description of the 'group' parameter with enum values and defaults (100% coverage). The description adds an explicit example that maps 'history' to 'what if I had invested' tools, which deepens understanding beyond the schema. This incremental value justifies a score above the baseline.
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 states a specific verb ('List'), a specific resource ('every SmartMoney77 calculator'), and the exact attributes returned (slug, URL parameters, supported languages/currencies). It clearly distinguishes from siblings by focusing on enumeration rather than calculation or link building, and explicitly references build_calculator_link as the dependent tool.
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?
Directly instructs when to use the tool: 'Call this before build_calculator_link.' This gives a clear use case and implies it should not be used after building a link. The example with the 'group' parameter further clarifies how filtering affects the output, reinforcing appropriate usage.
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.
12 tool updates
- Changed
build_calculator_link1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code: he, en, ar, es, pt or in."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
build_share_pack1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code: he, en, ar, es, pt or in."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
compare_investments1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned links."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
compound_interest1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
cost_of_waiting1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
credit_card_payoff1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
emergency_fund1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
fire_number1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
historical_investment_return1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
inflation_check1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
killer_fees1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
- Changed
latte_factor1 field changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Language code for the returned link."New value: +"Language of the reply: he, en, ar, es, pt or in. Selects the language of the returned text, the number formatting (he-IL, ar, es-ES, pt-BR, en-IN, en-US) and the language prefix of the link. Default en. Structured fields always stay raw and unformatted."
14 tool updates
- First observed
build_calculator_link - First observed
build_share_pack - First observed
compare_investments - First observed
compound_interest - First observed
cost_of_waiting - First observed
credit_card_payoff - First observed
emergency_fund - First observed
fire_number - First observed
get_tool_guide - First observed
historical_investment_return - First observed
inflation_check - First observed
killer_fees - First observed
latte_factor - First observed
list_calculators
Related MCP Connectors
Free calculators as MCP tools: finance, taxes, health, units, dates. Search, fetch & compute.
Free finance and trading calculators as MCP tools: risk/reward, RMD, Coast FIRE, inflation.
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
FIRE & retirement calculators + a multi-currency portfolio rebalancer (exact buy/sell trades).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePublic, no-login MCP server exposing SmartMoney77's financial calculators: compound interest, FIRE number, credit-card payoff, emergency fund, inflation, fees and the cost of waiting. Also computes historical "what if I had invested" returns from real yearly price data, and builds deep links and share packs for calculators in 6 localized editions.MIT
- AlicenseAqualityCmaintenanceThe most comprehensive everyday calculator MCP server — 501 tools across 22 categories covering 8 countries' tax systems (FR, BE, CH, CA, US, UK, MA, SN). Finance, health, math, science, construction, conversions, education, sport, cooking, travel, and more. Free, no API key required. Streamable HTTP transport.1518 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides 62 French tax calculation tools via MCP, running on Cloudflare Workers with Rust/Wasm and versioned official rules.MIT
- AlicenseCqualityAmaintenanceopen-source personal finance app with a first-party MCP server. 91 HTTP tools (OAuth 2.1 + DCR) and 87 stdio tools cover transactions, budgets, accounts, portfolio analytics, FX conversion, loans, subscriptions, goals, importers, and rules. Users self-host with Docker + PostgreSQL or use the managed cloud8917AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.