Skip to main content
Glama

SmartMoney77

Server Details

SmartMoney77 MCP v0.6.0 — 14 public tools that turn financial questions into exact numbers and citable links. New: historical_investment_return and compare_investments, which compute "what if I had invested" results from real yearly price data. Also compound interest, FIRE number, credit-card payoff, emergency fund, inflation, latte factor, investment fees, cost of waiting, plus discovery/deep-link/share-pack tools for a catalog of calculators in 6 languages (he/en/ar/es/pt/in). Public, no login. Endpoint: https://smartmoney77.com/mcp

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct calculators (fire_number, credit_card_payoff, emergency_fund, inflation_check), so selection is usually obvious. However, build_share_pack overlaps with build_calculator_link (it embeds a link), and compound_interest/killer_fees/latte_factor plus historical_investment_return/compare_investments share the same future-value/comparison mechanics under different framings, which can cause occasional misselection.

Naming Consistency4/5

All names are uniformly snake_case, which is the most important consistency factor. There is a minor split between verb-led utility names (build_calculator_link, list_calculators, compare_investments, get_tool_guide) and concept-noun calculator names (compound_interest, fire_number, latte_factor), but the pattern is readable and roughly maps to function.

Tool Count5/5

14 tools sits squarely in the well-scoped range. Each calculator tool corresponds to a distinct, non-redundant financial calculation, and the two helper tools (list_calculators, get_tool_guide) support discovery, so every tool earns its place.

Completeness4/5

The surface covers the core personal-finance domains: investing history, retirement/FIRE, debt payoff, inflation, fees, and recurring-expense analysis, with helpers for discovery and link-building. Minor gaps remain—only about 14 of the advertised 31 calculators are exposed as direct compute tools, though build_calculator_link partially bridges that, and there is no update/state operation (which isn't needed for stateless calculators).

Available Tools

14 tools
build_share_packBuild social share packA
Read-onlyIdempotent
Inspect

Build everything needed to share a SmartMoney77 calculation on social media in one call: the deep link to the result, a ready-to-embed 1200x628 image URL rendered on our servers, a link that opens the on-site share modal (1200x628, 1080x1080, 1080x1920 downloads), and a localized caption with attribution. Works for all 31 calculators. Example: { "calculator": "fire-number", "lang": "en", "params": { "expenses": 4000, "saving": 1500 } }

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
emojiNoOptional emoji to open the caption with. Defaults to a chart emoji.
paramsNoCalculation params to pre-fill, e.g. { amount: 1000, year: 2015 }. Same names as build_calculator_link.
currencyNoOptional currency override, e.g. USD, ILS, BRL. Ignored for history calculators (always USD).
calculatorYesCalculator slug, e.g. 'fire-number' or 'bitcoin-history'. Use list_calculators to discover slugs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
langYes
notesYes
sizesYesEvery image size, each with a direct server-rendered PNG URL.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
captionYesLocalized, ready-to-post social caption including the link and attribution.
shareUrlYesDeep link to the calculated result — the URL to cite.
calculatorYes
ogImageUrlYesServer-rendered 1200x628 PNG of this result. Safe to embed directly.
downloadUrlYesOpens the result with the share modal already open, offering all three image sizes.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare it a safe, idempotent, closed-world read. The description adds real behavioral context beyond them: the image is 'rendered on our servers', the share-modal link serves three download sizes, and the caption is localized with attribution. It also notes the results are one call rather than multiple round trips.

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?

One dense but well-formed sentence front-loads the outcome and enumerates the returns, followed by a compact scope statement and a single inline example. It is slightly long but every clause carries distinct information; no filler.

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 and full annotation coverage already present, the description supplies everything else an agent needs: the four artifacts produced, calculator coverage, and a call example. Only the relationship to build_calculator_link as a lighter alternative is left implicit.

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 baseline is 3, but the description adds a concrete worked example payload and cross-references build_calculator_link for param naming, which helps an agent construct the nested params object correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 everything needed to share a SmartMoney77 calculation on social media') and enumerates the exact deliverables: deep link, 1200x628 image URL, share-modal link, and localized caption. It is clearly distinguishable from the calculator compute tools, though it never explicitly contrasts itself with the nearest sibling build_calculator_link beyond borrowing its param names.

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

Usage Guidelines3/5

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

'Works for all 31 calculators' scopes the tool but gives no when-to-use guidance, no prerequisites, and no statement of when to prefer build_calculator_link (link only) over this heavier share-pack call. Usage is implied by the phrase 'share on social media' rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_investmentsCompare historical investmentsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
amountYesAmount invested in USD, identical for every asset.
assetsYes2-8 asset slugs. Valid: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil.
buy_yearYesYear of purchase.
sell_yearNoYear to sell in, or "today" for the live market price. Default "today".today

Output Schema

ParametersJSON Schema
NameRequiredDescription
amountYes
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
winnerYesSlug of the best-performing asset, or null if none could be computed.
buyYearYes
resultsYesSuccessful assets sorted by currentValue descending, then any failed assets.
sellDateYes
methodologyYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 projectionA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateYesExpected annual return in percent, e.g. 8.
yearsYesInvestment horizon in years (1-80).
initialYesInitial lump sum, in the user's currency.
monthlyNoMonthly contribution (default 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
rateYes
yearsYes
growthYesfutureValue minus contributed — the compounding gain.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
contributedYesInitial amount plus all monthly contributions.
futureValueYesProjected balance at the end of the horizon, rounded.

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

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, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 investB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateNoExpected annual return in percent (default 10 — same as the site's field default).
startYesEarly starting age.
retireNoRetirement age (default 67). Must exceed `compare`.
compareYesDelayed starting age. Must be greater than `start`.
monthlyYesMonthly amount invested in both scenarios.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
costYesearly minus late — the cost of waiting.
lateYesBalance at retirement when starting at `compare`.
earlyYesBalance at retirement when starting at `start`.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
lateYearsYesYears invested in the delayed scenario.
earlyYearsYesYears invested in the early scenario.
extraContributedYesExtra money actually paid in by starting early.

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 payoffA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateYesAnnual interest rate (APR) in percent, e.g. 18.
balanceYesOutstanding card balance.
paymentYesFixed monthly payment. Must exceed the first month's interest.
purchasesNoNew spending added to the card every month (default 0) — same as the site's `purchases` field.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
yearsYesSame duration in years, one decimal.
monthsYesMonths until the balance reaches zero.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
totalPaidYesTotal actually paid over the payoff period.
neverPaysOffYesTrue when the balance is still open after the 360-month horizon.
totalInterestYesTotal interest paid over the payoff period.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

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 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 coverageA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
targetNoTarget coverage in months (default 6).
savingsNoCurrent emergency savings (default 0).
expensesYesMonthly living expenses.
contributionNoMonthly amount added to the fund (default 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapYesAmount still missing (0 when the target is reached).
urlYesDeep link to the same calculation on SmartMoney77.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
targetAmountYesexpenses × target months.
monthsCoveredYessavings / expenses, one decimal.
monthsToTargetYesMonths to close the gap at the given contribution; 0 when reached, null when no contribution was given.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 freedomA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateNoExpected annual real return in percent (default 5 — same as the site's field default).
savingYesAmount saved/invested per month.
currentNoCurrent invested savings (default 0).
expensesYesMonthly living expenses in retirement.
withdrawalRateNoSafe withdrawal rate in percent (default 4 = the 4% rule).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
rateYes
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
reachableYesWhether the target is reachable within 100 years.
fireNumberYesPortfolio needed: annual expenses / withdrawal rate.
yearsToFireYesYears to reach the target, or null when unreachable within 100 years.
withdrawalRateYes

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)A
Read-onlyIdempotent
Inspect

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" }.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoTool 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

ParametersJSON Schema
NameRequiredDescription
countYes
guidesYesOne guide per matching tool.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 returnA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
assetYesAsset slug. One of: bitcoin, ethereum, solana, sp500, nasdaq100, nvidia, microsoft, meta, apple, tesla, amazon, google, netflix, amd, gold, silver, oil.
amountYesAmount invested in USD.
buy_yearYesYear of purchase. Must be within the asset's data range.
sell_yearNoYear to sell in, or "today" for the live market price. Default "today".today

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link that reproduces this calculation on SmartMoney77.
cagrYesCompound annual growth rate in percent, or null for a same-year holding.
assetYes
profitYescurrentValue minus initialInvestment.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
buyYearYes
buyPriceYesBuy price used: the buy year's low/high average, USD.
sellDateYesThe sell year, or "today" when the live price was used.
assetNameYes
sellPriceYesSell price used, USD.
methodologyYesOne-sentence explanation of the pricing method and source.
currentValueYesValue of the position at the sell date, in USD.
dataUpdatedAtYesWhen the sell price is from; states explicitly when a live-price fallback happened.
unitsPurchasedYesUnits (coins/shares/ounces/barrels) bought with the initial amount.
initialInvestmentYesAmount invested, in USD.
totalReturnPercentYesTotal return over the whole period, in percent.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 checkA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateNoAnnual inflation rate in percent (default 3).
yearsYesNumber of years (1-80).
amountYesAmount of money held today.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
lostYesamount minus realValue.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
realValueYesToday's-money purchasing power of the amount after the period.
lostPercentYesPurchasing power lost, in percent (one decimal).
equivalentNeededYesNominal amount needed later to buy what `amount` buys today.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 impactA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage 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
rateNoGross annual return in percent before fees (default 8 — same as the site).
yearsYesInvestment horizon in years (1-60).
lowFeeYesLower annual fee in percent, e.g. 0.3.
highFeeYesHigher annual fee in percent, e.g. 1.5.
monthlyNoMonthly contribution (default 0).
portfolioYesCurrent portfolio value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
differenceYeswithLowFee minus withHighFee — the cost of the higher fee.
withLowFeeYesEnding balance net of the lower fee.
withHighFeeYesEnding balance net of the higher fee.
differencePercentYesDifference as a percent of the high-fee balance (one decimal).

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
costYesCost of the habit per day.
langNoLanguage 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
rateNoExpected annual investment return in percent (default 8).
typeNoOptional habit key for the link, e.g. 'coffee'.
yearsNoNumber of years (default 30).
perWeekNoHow many days per week the expense happens (default 7).

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesDeep link to the same calculation on SmartMoney77.
rateYes
yearsYes
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
totalSpentYesTotal spent on the habit over the whole period.
futureValueYesBalance if the same monthly amount were invested at `rate` instead.
monthlyCostYesAverage monthly cost: cost × perWeek × 52 / 12, rounded.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 calculatorsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoFilter: 'planning' for financial planning tools, 'history' for what-if investment history tools, 'all' (default) for everything.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceYesCitation info: always credit SmartMoney77 with the provided link when presenting results.
languagesYesSupported language codes.
currenciesYesSupported currency codes per language.
calculatorsYesMatching calculators.

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 12 tool updates
    • Changedbuild_calculator_link1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedbuild_share_pack1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedcompare_investments1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedcompound_interest1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedcost_of_waiting1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedcredit_card_payoff1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedemergency_fund1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedfire_number1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedhistorical_investment_return1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedinflation_check1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedkiller_fees1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
    • Changedlatte_factor1 field changed
      • changedInput schema / properties / lang / description
        Previous 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."
  2. 14 tool updates
    • First observedbuild_calculator_link
    • First observedbuild_share_pack
    • First observedcompare_investments
    • First observedcompound_interest
    • First observedcost_of_waiting
    • First observedcredit_card_payoff
    • First observedemergency_fund
    • First observedfire_number
    • First observedget_tool_guide
    • First observedhistorical_investment_return
    • First observedinflation_check
    • First observedkiller_fees
    • First observedlatte_factor
    • First observedlist_calculators

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Public, 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
  • A
    license
    A
    quality
    C
    maintenance
    11 MCP tools for personal finance and Zero-Based Budgeting. Create budget plans, calculate net worth, financial runway, savings goals, and audit subscriptions. Includes a voice transaction parser. All tools return rich markdown with tables, benchmarks, and actionable recommendations. Built by GetALife — the gamified budgeting app for iOS and Android.
    11
    35 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides 77 deterministic financial calculators, live market data, and a meta-advisor that chains tools into prioritized plans from plain-language descriptions.
    77
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides tools for managing personal finances via MCP, including accounts, transactions, debts, savings, budgets, and asset tracking, with summaries and reporting capabilities.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources