showrealcost
Server Details
Loan-cost math: payments, payoff time, offers with fees, payday loans, Rule of 78s, Fed rates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool maps to a distinct loan scenario (averages, offer comparison, debt payoff strategies, standard installment payment, payday loans, payoff timeline, per-diem interest, precomputed/Rule of 78s, refinance). The only mild overlaps are loan_payment vs payoff_time and loan_payment vs refinance_check, but descriptions clearly delimit fixed-term cost versus timeline versus a new offer. An agent can generally select correctly from the descriptions.
All names are snake_case and readable, using a consistent noun/action-phrase style (average_loan_rates, payoff_time, per_diem_interest). The main deviation is compare_loan_offers, which is verb-led while most others are noun phrases, but the convention is still largely predictable.
Nine tools is well within the ideal 3-15 range and each earns its place by covering a distinct loan type or calculation. Nothing looks like a redundant wrapper or filler tool.
The surface covers the full consumer-loan lifecycle: rate benchmarking, offer comparison, payoff strategy, standard and alternative loan costings, payoff timing, and refinance analysis. Minor gaps remain (e.g., amortization schedule export, student/mortgage-specific handling), but core borrow-and-repay workflows have no dead ends.
Available Tools
9 toolsaverage_loan_ratesAverage loan rates from the Federal Reserve, and how a quote comparesARead-onlyIdempotentInspect
The latest Federal Reserve (G.19) average interest rates at commercial banks for a 24-month personal loan, 60- and 72-month new car loans, and credit cards, with the change from the previous quarter and from a year earlier. Optionally compares a rate someone was offered with the average and gives the gap in dollars. Averages across banks, never any one lender; quarterly figures bundled with the server, not live quotes. Use for "what is the average car loan rate", "have personal loan rates gone up" and "is 9% high for a car loan".
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Optional with offered_rate_pct: amount borrowed or card balance, in dollars | |
| months | No | Optional with offered_rate_pct: number of monthly payments | |
| loan_type | No | One kind of loan; leave out for all four | |
| offered_rate_pct | No | Optional: a rate the person was offered, to compare with the average (needs loan_type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-open-world, so the bar is lower, yet the description adds real value: 'quarterly figures bundled with the server, not live quotes' sets data-freshness expectations, and 'Averages across banks, never any one lender' clarifies the aggregation semantics. It could still note the data vintage/as-of date handling, but the extra context is substantive.
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 data source and what is returned, then the optional comparison, then usage examples. Every sentence carries information, though the final example-query sentence is slightly long and could be trimmed without loss.
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 no output schema, the description correctly carries the return semantics ('change from the previous quarter and from a year earlier', dollar gap on comparison) and the optional-input coupling (comparison needs loan_type). It is essentially complete for a read-only reference lookup, with only minor gaps around data vintage.
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, but the description goes beyond the schema by explaining the comparison mode (offered rate vs. average, 'gap in dollars') and enumerating the loan kinds in prose matching the enum. It doesn't add per-parameter detail on amount/months formatting beyond what the schema states.
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: 'The latest Federal Reserve (G.19) average interest rates at commercial banks' for named loan products. It scopes it against siblings with 'Averages across banks, never any one lender', which distinguishes it from lender/offer-specific tools like compare_loan_offers and refinance_check.
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 gives concrete when-to-use triggers ('what is the average car loan rate', 'have personal loan rates gone up', 'is 9% high for a car loan') and notes the optional comparison flow. It does not explicitly exclude or route to a named alternative (e.g., use compare_loan_offers for multiple offers), so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_loan_offersCompare loan offers on the same cash in handARead-onlyIdempotentInspect
Compare two to four loan offers with different rates and fees fairly: each offer is sized so the borrower receives the same cash, then compared on payment, total cost of borrowing (interest plus fees) and estimated APR. Use for "is a lower rate with an origination fee cheaper than a higher rate with none".
| Name | Required | Description | Default |
|---|---|---|---|
| offers | Yes | ||
| cash_needed | Yes | Cash the borrower needs to receive, in dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive behavior, so the safety bar is met. The description adds value beyond that by disclosing the comparison basis (payment, total cost including interest plus fees, estimated APR) and the equal-cash sizing methodology, though it says nothing about precision, rounding, or error 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, no filler: the first defines the operation and its fair-comparison mechanic, the second supplies the motivating question. The most important scoping detail 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?
With no output schema, the description usefully enumerates what is returned (payment, total cost of borrowing, estimated APR) and explains the equal-cash premise. It is nearly complete, though it omits how fee_deducted and fee_pct interact with the sizing rule, which is the terminology an agent must reason about.
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 50% (annual_rate_pct and months are undocumented). The description compensates by explaining the critical normalization semantics – that offers are re-sized so cash received is equal – which is exactly the property that makes the comparison valid and is not captured anywhere in 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 (compare) plus the resource (loan offers), the scope (two to four offers), and the normalization rule (each offer sized so the borrower receives the same cash), then names the three comparison outputs. An agent can distinguish this from siblings like loan_payment or average_loan_rates immediately.
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 description gives an explicit triggering scenario: deciding whether a lower rate with an origination fee beats a higher rate without one. It says when to use it clearly, but never names an alternative tool to use instead or states when-not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debt_payoff_planPay off several debts: avalanche, snowball or minimumsARead-onlyIdempotentInspect
Simulate paying off several debts with minimum payments plus an optional extra each month, highest rate first (avalanche) and smallest balance first (snowball), against minimums only. Returns months to debt-free and total interest for each. Use for "avalanche or snowball on my debts" and "what does $200 extra a month do".
| Name | Required | Description | Default |
|---|---|---|---|
| debts | Yes | ||
| extra_per_month | No | Extra paid each month on top of all minimums, in dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe, read-only, idempotent, closed-world simulation, so the burden is light. The description adds real behavioral content beyond that: minimums are held fixed, an extra payment is optional, and the output reports months to debt-free and total interest per strategy.
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 tightly packed sentences: the first defines the simulation and each strategy, the second covers the return values and example user intents. No filler, and the core 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?
With no output schema, the description correctly fills that gap by naming the returned metrics. It omits secondary constraints such as the 12-debt cap and the single-entry minimum, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, and the description compensates for the extra_per_month semantics ('optional extra each month') and the fixed-minimum-payment rule. It says nothing about the structure of the required debts array (name, balance, annual_rate_pct), leaving that burden entirely on 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 (simulate paying off several debts) and enumerates the three distinct strategies it models: avalanche, snowball, and minimums-only. This clearly differentiates it from sibling tools like loan_payment or payoff_time, which handle single-loan or simpler scenarios.
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?
Gives explicit trigger phrases ('avalanche or snowball on my debts', 'what does $200 extra a month do') that map directly onto the tool's capability, which is strong routing guidance. It does not, however, name or exclude any sibling tool, so the agent must infer this is multi-debt rather than single-loan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_paymentLoan payment and total interestARead-onlyIdempotentInspect
For a fixed-rate installment loan (personal, auto, any level-payment loan): the monthly payment, total interest, total repaid, how the first payment splits between interest and principal, and optionally how much has been paid and is still owed after a number of payments. Use for "what will this loan cost" and "where did my payments go".
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount borrowed, in dollars | |
| months | Yes | Number of monthly payments | |
| payments_made | No | Optional: payments already made, to see progress so far | |
| annual_rate_pct | Yes | Annual interest rate in percent, e.g. 6.97 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description goes beyond that by defining the applicable model precisely (fixed-rate, level-payment), which tells the agent where results stop being valid — useful behavioral context. It still omits computational conventions such as rounding or how a 0% rate is handled.
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 loan model and the outputs, then a short usage clause. The output enumeration is dense but every element (payment, interest, total repaid, split, progress) maps to a distinct returned value, so it earns its space; it is slightly long for a single run-on sentence.
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 no output schema, the description carries the return-value burden and does so by listing each computed figure. Combined with 100% schema coverage on inputs, an agent has enough to call it correctly; only edge-case behavior (rate=0, rounding) is 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 coverage is 100%, so the baseline is 3. The description adds meaning by explaining what the optional payments_made parameter yields ('how much has been paid and is still owed after a number of payments'), which is semantics not evident from the parameter's one-line schema description.
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 precise verb+resource set: monthly payment, total interest, total repaid, first-payment split, and optional progress. The scoping phrase 'fixed-rate installment loan (personal, auto, any level-payment loan)' also implicitly separates it from siblings like payoff_time or refinance_check.
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?
Gives two concrete triggering questions ('what will this loan cost', 'where did my payments go') and bounds the loan type it applies to. It stops short of naming an alternative sibling or stating when NOT to use it (e.g. variable-rate or interest-only loans), so it is clear context but not full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payday_loan_costCost and APR of a payday or other fee-based short-term loanARead-onlyIdempotentInspect
For a payday loan, title loan, pawn loan, cash-advance app or any loan priced by a fee for a number of days: the fee in dollars, the APR, and what renewing (rolling over) costs. Use for "what is the APR on a $500 payday loan at $15 per $100" and "what does rolling it over cost".
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount borrowed, in dollars | |
| flat_fee | No | Any flat fee, tip or instant-transfer fee for one term, in dollars | |
| renewals | No | Times the loan is renewed or rolled over by paying only the fee | |
| term_days | Yes | Days until the loan is due | |
| fee_per_100 | No | Fee per $100 borrowed for one term, in dollars (e.g. 15) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description usefully adds what is actually computed and returned (fee, APR, renewal cost), which matters because there is no output schema. It does not describe edge-case behavior such as what happens with zero renewals or missing fee_per_100.
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 the outputs are front-loaded in the first sentence, and the second sentence supplies concrete usage triggers. The opening enumeration of loan types is a bit list-heavy, but no sentence is filler.
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 no output schema, the description carries the burden of naming return values, and it does name three (fee, APR, renewal cost). All five parameters are fully described in the schema. What remains missing is any note on result units or edge cases, which is a minor gap for a pure 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 every parameter is already documented in the schema, and the baseline is 3. The description reinforces the fee-per-$100 and rollover semantics through its examples but adds no format or boundary detail beyond what the schema states.
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 computation and its outputs: 'the fee in dollars, the APR, and what renewing (rolling over) costs'. It also scopes the applicable instrument class ('payday loan, title loan, pawn loan, cash-advance app or any loan priced by a fee for a number of days'), which separates it from amortized-loan siblings like loan_payment and average_loan_rates without needing 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 description gives a clear inclusion condition ('any loan priced by a fee for a number of days') and two concrete triggering questions about APR and rollover cost. It stops short of naming an alternative or stating when NOT to use it, so an agent must infer the boundary against loan_payment on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payoff_timeMonths to pay off a balance at a fixed paymentARead-onlyIdempotentInspect
How long a balance (credit card or loan) takes to pay off at a fixed monthly payment, and the interest paid. Use for "how long to pay off my card at $X a month" and for comparing a bigger payment by calling it twice.
| Name | Required | Description | Default |
|---|---|---|---|
| balance | Yes | Balance owed today, in dollars | |
| annual_rate_pct | Yes | Annual interest rate in percent | |
| monthly_payment | Yes | Fixed amount paid each month, in dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, which is the full safety profile for a pure calculator. The description adds that it returns both a duration and interest paid, but discloses nothing about edge cases (e.g. payment below interest accrual, zero rate), rounding, or units.
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 front-loaded, followed immediately by the usage scenario and the comparison trick. No filler and nothing redundant with the schema.
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?
All three required parameters are richly specified and the description covers both return values (payoff time and interest paid) in the absence of an output schema. What remains missing is only edge-case behavior, which is minor for a deterministic 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 balance, rate and payment are already documented with units and bounds. The description merely echoes "fixed monthly payment" without adding format or constraint nuance, 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 precise computation: months to pay off a balance at a fixed payment plus total interest, with the input resource (credit card or loan) named. It is clearly a payoff-duration calculator and implicitly distinct from siblings like loan_payment, though it never explicitly differentiates itself from debt_payoff_plan or compare_loan_offers.
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?
Gives a concrete triggering scenario ("how long to pay off my card at $X a month") and even the technique for a comparison task (call twice with a larger payment). No explicit when-not boundary or sibling routing (e.g. vs debt_payoff_plan), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
per_diem_interestPer-diem interest on a payoffARead-onlyIdempotentInspect
The interest a simple-interest loan adds each day, and over a number of days. Use for reading a payoff letter, for "how much more is my payoff than my statement balance", and for the cost of a skipped or deferred payment.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Days of interest | |
| balance | Yes | Principal balance, in dollars | |
| annual_rate_pct | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuine behavioral context beyond that: the accrual model is simple interest and scales linearly with the day count, which tells the agent what math to expect. It stops short of disclosing rounding, day-count convention, or currency units.
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, the computational definition front-loaded before the use cases, with no filler. The opening clause is slightly roundabout but still efficient and 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?
No output schema exists, so the description is the only place to learn what comes back; it implies a dollar interest figure but never states the return shape, units, or precision. For a simple three-parameter calculator with full annotation coverage this is adequate, but the missing output framing is a real gap.
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 67% (days and balance documented, annual_rate_pct undocumented). The description contributes no parameter-level detail such as whether the rate is nominal annual, percent vs. decimal, or an actual/365 basis. Names are largely self-explanatory, so the baseline 3 holds.
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 the exact quantity computed (the interest a simple-interest loan accrues per day and over N days), a specific mechanism (simple interest) and a specific scope. It is clearly distinct from siblings like loan_payment or payoff_time, which compute different quantities, without needing the 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?
It gives three concrete situations for use: reading a payoff letter, quantifying the gap between payoff and statement balance, and costing a skipped/deferred payment. That is strong positive guidance, but no exclusions or named alternative tool tell the agent when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
precomputed_loan_payoffEarly payoff on a precomputed (Rule of 78s) loanARead-onlyIdempotentInspect
For a precomputed or add-on interest loan (common from dealers, finance companies and furniture stores): the payoff after a number of payments under the Rule of 78s and under the actuarial method, and how much more the Rule of 78s keeps. Use for "why is my payoff different from my balance".
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount financed, in dollars | |
| months | Yes | ||
| payments_made | Yes | Payments made so far | |
| annual_rate_pct | Yes | Contract rate in percent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is fully covered. The description adds genuine non-annotation content: that the tool returns two parallel payoff figures and the extra amount the Rule of 78s retains, which is the key behavioral fact for interpreting results. It stops short of stating assumptions (prepayment penalties, rounding) or error behavior.
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 domain qualifier and the computed outputs, with the scenario as a short trailing sentence. Dense but every clause carries information; only the parenthetical lender list is arguably expendable.
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 no output schema, the description must convey return semantics, and it does name the three conceptual outputs (Rule of 78s payoff, actuarial payoff, difference). It omits input assumptions and edge-case handling, but for a stateless calculator with four required scalar params this is close to complete.
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 75%, so the schema documents most parameters (amount, payments_made, annual_rate_pct) and the description repeats none of that detail. It also does not clarify the amount-vs-months relationship or what happens when payments_made approaches months, so the baseline of 3 for a mostly self-documenting schema is appropriate.
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 specific computation (early payoff) for a specific loan class (precomputed/add-on interest, Rule of 78s) and states both outputs: payoff under Rule of 78s and under the actuarial method plus the difference. It clearly distinguishes itself from generic siblings like loan_payment or payoff_time by domain, though it never names a sibling 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?
Usage is conveyed only through a quoted scenario ('why is my payoff different from my balance'), which implies the right context but gives no explicit when-not or routing to alternatives such as payoff_time for simple-interest loans. An agent can infer the intended situation but must guess the boundary cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refinance_checkDoes a refinance offer save money?ARead-onlyIdempotentInspect
Compare keeping a loan against a refinance offer, from today forward: interest remaining on the current loan, interest on the new loan, and what happens if the borrower takes the new rate but keeps paying the old payment. Use for "the new loan has a lower payment, does it actually save money".
| Name | Required | Description | Default |
|---|---|---|---|
| balance | Yes | Balance owed today, in dollars | |
| new_months | Yes | Term of the new loan in months | |
| new_loan_fee | No | Any fee added to the new loan, in dollars | |
| new_rate_pct | Yes | ||
| current_payment | Yes | Current monthly payment, in dollars | |
| current_rate_pct | Yes |
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 the safety profile is covered. The description adds real modeling context beyond them: the comparison is forward-looking from today, includes the borrower continuing the old payment at the new rate, and does not attempt to reconstruct the past.
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 comparison being performed and then the scenario that triggers it. Dense but every clause carries meaning; only mild compression room remains.
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 no output schema, the description carries the return-value burden and does name the three computed components (remaining interest, new-loan interest, keep-payment-scenario outcome). An agent still cannot tell the exact output shape or whether a single savings figure is returned, keeping this below a 5.
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 67% and the required fields (balance, rates, payments, term) are largely self-documented by the schema. The description echoes the concepts (current payment, new rate, old payment) but adds no units, constraints, or interpretation rules beyond what the schema already provides — baseline 3.
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 (current loan vs refinance offer) with the exact scope: 'from today forward', covering remaining interest, new-loan interest, and the keep-old-payment scenario. This specificity cleanly separates it from the generic compare_loan_offers sibling without needing to name it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit triggering question ('the new loan has a lower payment, does it actually save money'), which is a clear use context. It stops short of naming an alternative tool or stating when not to use it, so it falls short of a 5.
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.
9 tool updates
- First observed
average_loan_rates - First observed
compare_loan_offers - First observed
debt_payoff_plan - First observed
loan_payment - First observed
payday_loan_cost - First observed
payoff_time - First observed
per_diem_interest - First observed
precomputed_loan_payoff - First observed
refinance_check
Related MCP Connectors
Student-loan math: RAP, IBR, ICR, PSLF. npx: no key. Remote: free login, no card, 5 questions total
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
Row-by-row loan amortization schedules: monthly or daily accrual, extra principal, PMI, biweekly.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceQuery 13,000+ US consumer lenders with eligibility criteria, rates, CFPB complaints, and ratings. Find matching lenders by borrower profile, get full profiles, compare lenders, and check eligibility.MIT
- FlicenseNot gradedqualityCmaintenanceProvides educational fixed-rate loan estimates with mortgage and auto loan calculators.-
- AlicenseAqualityBmaintenanceUS federal student loan repayment math for AI agents, from a parity-verified engine rather than estimated. RAP, IBR, ICR, PAYE and tiered Standard payments with forgiveness timing and tax on forgiveness, plus the plans a borrower is excluded from and the rule why, such as Parent PLUS not qualifying for RAP. No key to start; keyed answers at mcp.finology.tech/mcp add citations.357 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables basic math, investment analysis (ROI, average cost, portfolio value), and loan calculations (monthly payment, total cost, early payment savings) through natural language.-
Glama MCP Gateway
Add one secure layer between your agents and this server.