nestegg-calculators
Server Details
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- VladimirWrites/nestegg.money
- GitHub Stars
- 2
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4/5 across 99 of 99 tools scored. Lowest: 3.3/5.
Many tools are distinct formulas, but there are overlapping families (e.g., future-value, compound-interest, contributions all handle contributions; cagr, required-return, roi all measure returns). The sheer volume of 99 tools increases misselection risk, even with clear descriptions.
All tool names are lowercase with hyphens, following a consistent pattern (verb-noun or noun-phrase). Acronyms like irr, npv, and roa are used predictably. No mixed conventions or camelCase.
99 tools is far beyond the 'extreme mismatch' threshold of 50+. While each calculator is individual, the sheer number makes the server unwieldy and likely to overwhelm agents.
The tool surface covers a wide range of financial calculations: time value of money, loans, bonds, options, depreciation, accounting ratios, FIRE, and German tax specifics. Minor gaps exist (e.g., annuity-due variants, bond yield-to-call), but the core domain is thoroughly addressed.
Available Tools
99 toolsaccrued-interestAccrued InterestARead-onlyIdempotentInspect
Accrued interest since the last coupon: the annual coupon pro-rated by days elapsed over the day-count basis.
| Name | Required | Description | Default |
|---|---|---|---|
| faceValue | Yes | Face value. | |
| couponRatePct | Yes | Annual coupon rate in percent. | |
| dayCountBasis | No | Day-count basis (default 360). | |
| daysSinceLastCoupon | Yes | Days since the last coupon. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accrued | No | Accrued interest. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only and idempotent behavior. The description adds the formula (annual coupon pro-rated by days elapsed over day-count basis), which clarifies the calculation logic. However, it does not disclose edge cases or return format, though the output schema partially covers that. The added value is moderate beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the purpose and immediately gives the calculation formula. There is no wasted wording, and it is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, output schema, annotations), the description is sufficiently complete. It explains the core calculation and is supported by schema and annotations. Minor gaps like explicit usage guidance are not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have descriptions. The description adds the relationship between parameters (days elapsed, day-count basis, coupon rate) but does not provide new parameter-level details. Baseline 3 applies per the rubric.
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 clearly states the tool's purpose: calculating accrued interest since the last coupon. It provides a specific verb (pro-rated) and resource (annual coupon), and explains the calculation methodology. This distinguishes it from sibling tools like bond-price or current-yield by focusing on the accrued interest component.
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 implies usage for accrued interest calculations but does not explicitly state when to use it over alternatives or provide exclusions. Sibling tools include other bond-related calculators, but no cross-referencing or guidance is offered. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
after-tax-yieldAfter-Tax YieldARead-onlyIdempotentInspect
After-tax yield: a yield reduced by the tax rate. Percents in and out.
| Name | Required | Description | Default |
|---|---|---|---|
| yieldPct | Yes | Pre-tax yield in percent. | |
| taxRatePct | Yes | Tax rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| afterTaxPct | No | After-tax yield, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only and idempotent. The description adds that inputs and outputs are percentages, clarifying unit convention. The formula is simple but no additional behavioral details such as rounding or edge cases are disclosed.
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?
Single sentence, front-loaded, and every word earns its place. Efficiently communicates the formula and unit expectations with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter calculator with full schema coverage, read-only annotations, and an output schema present, the description is adequate. Could mention the inverse relationship to tax-equivalent-yield, but that is not required for basic operation.
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 already documents both parameters with percentages. Description explicitly states 'yield reduced by tax rate,' clarifying the mathematical relationship between yieldPct and taxRatePct beyond field-level descriptions.
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?
Description clearly identifies the tool as computing after-tax yield via tax-rate reduction, distinguishing it from related yield tools. Uses a noun phrase rather than an explicit verb, but the purpose is unambiguous.
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?
No when-to-use guidance, no mention of alternatives like tax-equivalent-yield, and no context for when this calculation applies. Merely states what it does without exclusions or prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amortizationAmortization ScheduleARead-onlyIdempotentInspect
Monthly loan amortization schedule and summary. Supports dated extra principal payments and a rate-fixed period. detail controls output size: 'summary' (default) returns totals plus a per-year breakdown; 'monthly' returns the full schedule (paginate with offset/limit). Returns numbers and schedules; no advice.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Fix the term (compute the payment) or fix the payment (compute the term). | |
| rate | Yes | Annual interest rate in percent (6 = 6%). | |
| extra | No | Optional dated extra principal payments. | |
| limit | No | Max monthly rows when detail=monthly (default and maximum 360; page with nextOffset). | |
| amount | Yes | Loan principal. | |
| detail | No | Output size. summary (default): totals + yearly breakdown. monthly: full schedule (use offset/limit to paginate). | |
| offset | No | Monthly schedule start index when detail=monthly (default 0). | |
| payment | No | Monthly payment, used when mode is 'payment'. | |
| rateSteps | No | Optional rate changes (e.g. after a Zinsbindung). The installment is held; from each date the outstanding balance continues at the new annual rate. | |
| startDate | Yes | First payment month as an ISO date (YYYY-MM-DD). | |
| termYears | No | Term in years, used when mode is 'term'. | |
| fixedUntil | No | Optional. Rate is certain until this ISO date; beyond it the schedule is an estimate. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yearly | No | Per-year totals: { year, interest, principal, extra, payments, endBalance }. |
| payments | No | Number of payments made. |
| schedule | No | Monthly rows (only when detail=monthly). |
| totalPaid | No | Total paid (incl. extras). |
| nextOffset | No | Next pagination offset, or null. |
| payoffDate | No | Payoff date, ISO. |
| scheduleTotal | No | Total monthly rows (when detail=monthly). |
| totalInterest | No | Total interest paid. |
| monthlyPayment | No | Monthly payment. |
| scheduledMonths | No | Scheduled months (null if open-ended). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description doesn't need to restate safety. It adds value by disclosing the default output behavior ('summary' returns totals plus per-year breakdown), the need to paginate with offset/limit for 'monthly', and the non-advisory nature ('no advice'). This goes beyond the structured metadata and helps set expectations for the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each with distinct value: purpose, features, output behavior, and output type/disclaimer. It is front-loaded with the core purpose, avoids redundancy, and does not waste words. The only minor omission is not explicitly naming the 'yearly' enum value, but the description still conveys that summary includes yearly breakdown.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, nested optional arrays), the description provides a good high-level map: core function, key optional inputs, output modes, and pagination. The schema covers parameter details and an output schema exists, so the description doesn't need to explain return structures. It could mention the 'yearly' detail option or clarify 'rate-fixed period' more, but these are minor gaps given the rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly documented (e.g., rate 'in percent', mode semantics, offset/limit purpose). The description mostly restates what the schema already provides, such as detail options and pagination, without adding new parameter-level insights. The baseline of 3 is appropriate because the schema does the heavy lifting.
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 opens with a specific resource: 'Monthly loan amortization schedule and summary.' It clearly distinguishes the tool from more general financial calculators by focusing on amortization with monthly detail and summary output. The scope (loan amortization) and key features (extra principal payments, rate-fixed period) are immediately evident.
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 implies usage by explaining output options ('detail controls output size') and capabilities ('Supports dated extra principal payments and a rate-fixed period'), but it does not explicitly state when to choose this over sibling tools like loan-payoff or biweekly-payoff. There are no explicit alternatives or exclusion conditions, leaving the agent to infer applicability from the tool's name and features.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annuity-fvAnnuity Future ValueARead-onlyIdempotentInspect
Future value of an ordinary annuity. rate is the per-period rate in percent.
| Name | Required | Description | Default |
|---|---|---|---|
| payment | Yes | Payment per period. | |
| periods | Yes | Number of periods. | |
| ratePct | Yes | Rate per period in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fv | No | Future value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds the per-period rate clarification, but does not disclose edge-case behavior or return details. This is adequate given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the core purpose. No redundant words or filler. It earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple financial calculator with full schema annotations and an output schema, the description is largely complete. It clearly defines the annuity type and rate unit. It could mention intended use cases or exclusions, but the tool's simplicity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter fully described. The description simply restates the rate parameter semantics ('rate is the per-period rate in percent') without adding new meaning beyond the schema. Baseline of 3 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 clearly states the tool computes the future value of an ordinary annuity, using a specific verb and resource. It distinguishes itself from sibling tools like annuity-pv and annuity-payment by explicitly mentioning 'future value' and 'ordinary annuity'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention exclusions or when to prefer this over future-value or annuity-payment. The only hint is the 'ordinary annuity' qualifier, but no explicit usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
annuity-paymentAnnuity PaymentARead-onlyIdempotentInspect
The level payment that amortizes a present value over n periods (the loan-payment formula). rate is per period.
| Name | Required | Description | Default |
|---|---|---|---|
| periods | Yes | Number of periods. | |
| ratePct | Yes | Rate per period in percent. | |
| presentValue | Yes | Present value / principal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| payment | No | Level payment (null if periods<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint false, and idempotentHint, covering the safety and repeatability profile. The description adds useful behavioral context by emphasizing that the rate is per period and that the payment is level (fully amortizing), which goes beyond the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, straightforward sentence with no wasted words. It front-loads the core purpose and includes a helpful clarification about the rate.
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?
The tool has a full schema, output schema, and annotations, so the description does not need to explain return values or safety. It adequately covers the calculation purpose and rate semantics, making it sufficiently complete for a simple financial formula tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's note that 'rate is per period' reinforces the schema's 'Rate per period in percent' but does not add new semantic meaning beyond what the schema already provides.
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 clearly states the tool computes the level payment that amortizes a present value over n periods, using the loan-payment formula. This specific verb and resource distinguish it from sibling tools like annuity-fv and annuity-pv, which calculate future/present value rather than the payment.
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 clear context: it is the loan-payment formula with a per-period rate, implying when to use it. However, it does not explicitly name alternative tools or provide exclusion criteria, 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.
annuity-pvAnnuity Present ValueARead-onlyIdempotentInspect
Present value of an ordinary annuity (level payment at each period end). rate is the per-period rate in percent.
| Name | Required | Description | Default |
|---|---|---|---|
| payment | Yes | Payment per period. | |
| periods | Yes | Number of periods. | |
| ratePct | Yes | Rate per period in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pv | No | Present value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and idempotentHint, so the description doesn't need to restate that. It adds the behavioral constraint that this is an ordinary annuity with payments at period end, and clarifies that the rate is per-period in percent, which prevents misuse. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose and includes the key nuance about payment timing. Every word 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?
Given the simplicity of the tool, the combination of the description, full schema descriptions, and annotations is sufficient. The description covers the main concept and the rate unit, leaving no obvious gaps for a straightforward financial calculation. It doesn't explain the formula, but that's not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters (payment, periods, ratePct), and the description reinforces that ratePct is per-period and in percent. However, it adds little beyond the schema's existing parameter descriptions, so the added semantic value is marginal.
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 explicitly states the tool calculates the present value of an ordinary annuity, with a parenthetical clarifying level payments at period end. This clearly distinguishes it from sibling tools like annuity-fv or annuity-payment.
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 implies when to use the tool by defining the scenario (ordinary annuity, period-end payments), but it does not explicitly name alternatives or state when not to use it. It doesn't mention that annuity-fv handles future value or that present-value may handle general cash flows. Guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
balloon-loanBalloon LoanARead-onlyIdempotentInspect
Balloon loan: payment based on a long amortization, with the balloon being the balance still due after the shorter balloon term.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Loan amount. | |
| ratePct | Yes | Annual rate in percent. | |
| amortMonths | Yes | Amortization basis in months. | |
| balloonMonths | Yes | Months until the balloon is due. |
Output Schema
| Name | Required | Description |
|---|---|---|
| balloon | No | Balloon balance due. |
| payment | No | Monthly payment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds transparent behavioral context by explaining the calculation mechanism: payment is based on the amortization period, and the balloon equals the balance remaining after the balloon term. This goes beyond the annotations but stops short of discussing edge cases or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that leads with the term 'Balloon loan' and immediately explains the core concept. Every word earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values. The description captures the essential relationship between the amortization period and the balloon term, making it nearly complete for a simple financial calculator. However, it does not mention how the parameters interplay in edge cases (e.g., balloonMonths > amortMonths), leaving a slight 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 100%, with each parameter (amount, ratePct, balloonMonths, amortMonths) having a clear description. The tool description does not add parameter-specific syntax or additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines a balloon loan as 'payment based on a long amortization' with the balloon being the remaining balance due after the shorter term. It explicitly names the resource (balloon loan) and the computation logic, distinguishing it from siblings like amortization or interest-only-payment.
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 implies usage for balloon loan calculations but does not provide explicit guidance on when to use this tool versus alternatives such as amortization or loan-payoff. No when-not-to-use or alternative references are given, leaving the agent to infer applicability from the financial context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
barista-fireBarista FIREARead-onlyIdempotentInspect
Barista FIRE: the nest egg needed when part-time income covers part of the spending, so the portfolio only funds the remainder at the safe withdrawal rate.
| Name | Required | Description | Default |
|---|---|---|---|
| annualSpend | Yes | Yearly spending. | |
| partTimeIncome | Yes | Yearly part-time income. | |
| withdrawalRatePct | No | Safe withdrawal rate in percent (default 4). |
Output Schema
| Name | Required | Description |
|---|---|---|
| target | No | Nest egg needed (null if withdrawal rate<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds the behavioral formula: the portfolio funds the remainder after part-time income at the safe withdrawal rate. This goes beyond the annotations by explaining the calculation logic, though edge cases are not covered.
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?
A single, well-front-loaded sentence that defines the tool's purpose without redundant words. Every part of the description 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?
Given a simple three-parameter calculator with an output schema, the description sufficiently conveys the core calculation and result. It does not explicitly formulaize (annualSpend - partTimeIncome) / withdrawalRatePct, but the concept is clear enough for a simple tool.
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 clarifying that annualSpend and partTimeIncome are combined (the remainder is funded) and that withdrawalRatePct is the divisor, which goes beyond the schema's simple 'Yearly spending' descriptions.
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 clearly states the tool computes the nest egg needed when part-time income covers part of spending, defining the calculation concept. It is distinct from generic fire-number and coast-fire siblings, though it lacks an explicit verb like 'calculate'.
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 implies usage when part-time income partially covers spending, but it does not explicitly mention when not to use it or compare it with alternatives like coast-fire or fire-number. The condition is present but not framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
biweekly-payoffBiweekly PayoffARead-onlyIdempotentInspect
Biweekly mortgage acceleration: paying half the monthly payment every two weeks. Returns the biweekly payment and the months and interest saved.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Loan amount. | |
| ratePct | Yes | Annual rate in percent. | |
| termMonths | Yes | Original term in months. |
Output Schema
| Name | Required | Description |
|---|---|---|
| monthsSaved | No | Months saved. |
| interestSaved | No | Interest saved. |
| biweeklyPayment | No | Biweekly payment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true. The description adds the calculation method ('paying half the monthly payment every two weeks') and the return values, which is transparent for a read-only calculator. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core concept, and contains no redundant information. Every word 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?
Given the tool's simplicity (3 required params, no nested objects, output schema present), the description adequately conveys the operation, return values, and basic context. It is complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions (amount, ratePct, termMonths), providing 100% coverage. The description does not add further parameter nuance beyond the biweekly payment concept, so the baseline 3 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 clearly identifies a biweekly mortgage acceleration calculator and specifies its outputs: 'Returns the biweekly payment and the months and interest saved.' It distinguishes this from sibling tools like amortization or loan-payoff by focusing on the biweekly payment strategy.
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 states the scenario ('Biweekly mortgage acceleration') but does not explicitly discuss when to use this tool versus alternatives or any exclusions. Usage is implied from the tool's specific purpose rather than clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
black-scholesBlack-Scholes Option PriceARead-onlyIdempotentInspect
Black-Scholes price of a European call or put option, plus d1/d2. Volatility and rates in percent; optional continuous dividend yield.
| Name | Required | Description | Default |
|---|---|---|---|
| spot | Yes | Current underlying price. | |
| type | No | Option type (default call). | |
| years | Yes | Time to expiry in years. | |
| strike | Yes | Strike price. | |
| riskFreePct | Yes | Risk-free rate in percent. | |
| volatilityPct | Yes | Annualized volatility in percent. | |
| dividendYieldPct | No | Continuous dividend yield in percent (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| d1 | No | d1. |
| d2 | No | d2. |
| price | No | Option price (null if degenerate). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and idempotentHint annotations, safety is already disclosed. The description adds valuable behavioral context: volatility and rates are in percent (not decimals), and the output includes d1/d2. It also specifies European-only scope, a key limitation. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the core purpose. Every clause contributes essential information: European scope, call/put, d1/d2, percent units, and optional dividend yield. There is no fluff.
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?
The tool is a 7-parameter pricing model with a rich schema and output schema present. The description covers the key model context and unit conventions. Minor details like per-share pricing are inferable or already documented in structured fields.
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%, with each parameter having a description. The description only reiterates the optional dividend yield and percent convention already present in the schema, adding no new parameter-specific meaning.
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 clearly states the tool computes the Black-Scholes price of European call/put options plus d1/d2. This specific verb+resource combination with the European scope distinguishes it from sibling tools like option-greeks and option-breakeven.
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 implies the applicable context: European options, Black-Scholes model, and inclusion of d1/d2. It does not explicitly exclude other option types or list alternatives, but the clear scope provides sufficient context for correct tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bond-durationBond DurationBRead-onlyIdempotentInspect
Macaulay duration (PV-weighted average time of cashflows, in years) and modified duration (price sensitivity to yield).
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Years to maturity. | |
| yieldPct | Yes | Annual yield in percent. | |
| faceValue | Yes | Face value. | |
| couponRatePct | Yes | Annual coupon rate in percent. | |
| periodsPerYear | No | Coupon periods per year (default 2). |
Output Schema
| Name | Required | Description |
|---|---|---|
| macaulay | No | Macaulay duration, years. |
| modified | No | Modified duration. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, which fully covers the safety profile of this pure calculation tool. The description adds semantic context by defining the output metrics, but it does not disclose any behavioral assumptions (e.g., continuous compounding, default periodsPerYear=2) that could affect results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that defines both output metrics without redundancy. Every clause contributes to the understanding of what the tool computes, making it an exemplar of concise and effective communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and clear annotations, the description sufficiently covers the core functionality. It explains the meaning of the two duration measures and implies the input parameters from context. However, it omits subtle behaviors like the default compounding frequency or edge cases for zero-coupon bonds, which would benefit a finance user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter coverage with descriptions for all five parameters, so the schema already explains each field. The description adds no additional parameter-level detail beyond what the schema provides, making this a baseline score with no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as providing Macaulay duration and modified duration, specifying their formulas and meaning. It distinguishes between the two metrics and sets it apart from sibling tools like convexity or bond-price, though it lacks an explicit action verb such as 'calculate' or 'compute'.
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 no guidance on when to use this tool versus alternatives like convexity or yield-to-maturity. It does not state any preconditions, such as needing fixed-cashflow bonds, nor does it mention when modified duration is preferred over Macaulay duration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bond-priceBond PriceARead-onlyIdempotentInspect
Price of a coupon bond given a yield: present value of the coupons plus the face at maturity.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Years to maturity. | |
| yieldPct | Yes | Annual yield in percent. | |
| faceValue | Yes | Face (par) value. | |
| couponRatePct | Yes | Annual coupon rate in percent of face. | |
| periodsPerYear | No | Coupon periods per year (default 2). |
Output Schema
| Name | Required | Description |
|---|---|---|
| price | No | Bond price (null if degenerate). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and closed-world behavior. The description adds the calculation logic (PV of coupons + face), which is useful context beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys purpose and method without redundancy. Every word 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?
Given the simple deterministic nature, full parameter documentation, annotations, and output schema, the description provides sufficient context. It clearly explains the core calculation without requiring further elaboration.
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 parameters are fully documented. The description mentions coupon and face but does not add new meaning beyond the schema. Baseline of 3 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 clearly states the tool computes the price of a coupon bond given a yield, using present value of coupons plus face value. This distinguishes it from siblings like bond-duration or yield-to-maturity, which answer different questions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'given a yield' implies the tool is used when you have a yield and want to find the price, but it does not explicitly mention alternatives or when not to use it. No clear exclusionary guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
break-even-unitsBreak-Even UnitsARead-onlyIdempotentInspect
Break-even volume: fixed costs divided by the per-unit contribution (price - variable cost), plus the revenue at that volume.
| Name | Required | Description | Default |
|---|---|---|---|
| fixedCosts | Yes | Total fixed costs. | |
| pricePerUnit | Yes | Selling price per unit. | |
| variableCostPerUnit | Yes | Variable cost per unit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| units | No | Break-even units (null if no contribution). |
| revenue | No | Revenue at break-even (null if none). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds value by detailing the exact calculation and the additional revenue output, which goes beyond the annotations but does not contradict them.
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?
A single, focused sentence that conveys the formula and the additional output without unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with full schema coverage and an output schema, the description covers the essential behavior. However, it does not mention edge cases like the undefined scenario when price equals variable cost, which could be relevant in some contexts.
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% with simple field descriptions. The description enriches these by defining the mathematical relationship among the parameters (price minus variable cost, divided into fixed costs), giving the agent a clear understanding of how inputs are used.
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 explicitly states the break-even volume formula (fixed costs divided by per-unit contribution) and notes it also computes revenue at that volume. This clearly distinguishes it from other break-even tools like option-breakeven or refi-breakeven, which have different contexts.
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 formula implies use for unit-level break-even analysis, but the description provides no explicit when-to-use or alternative comparisons. There is no stated exclusion, but the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
budget-50-30-2050/30/20 Budget SplitARead-onlyIdempotentInspect
The 50/30/20 budget split of monthly income into needs, wants, and savings.
| Name | Required | Description | Default |
|---|---|---|---|
| monthlyIncome | Yes | Monthly take-home income. |
Output Schema
| Name | Required | Description |
|---|---|---|
| needs | No | 50% needs. |
| wants | No | 30% wants. |
| savings | No | 20% savings. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds no extra behavioral traits such as rounding, assumptions, or output details, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose with no unnecessary words. It is appropriately sized for a simple calculator.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one input, output schema present, clear annotations), the description is complete enough. The output schema handles the return value explanation, so the description only needs to state the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter, monthlyIncome, as 'Monthly take-home income.' Since schema coverage is 100%, the description does not need to add more, and it does not provide any additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: splitting monthly income into needs, wants, and savings according to the 50/30/20 rule. It is specific about the resource (monthly income) and the action (split), and it distinguishes itself from sibling financial calculators.
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?
No guidance is provided on when to use this tool or when to choose an alternative. There is no mention of budgeting scenarios, prerequisites, or comparisons with similar tools like savings-rate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cagrCAGRARead-onlyIdempotentInspect
Compound annual growth rate between two values over a number of years. Returns a decimal (0.07 means 7%).
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Ending value. | |
| begin | Yes | Starting value. | |
| years | Yes | Number of years. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the output format as a decimal (e.g., 0.07 = 7%), which is valuable behavioral context beyond the annotations that declare read-only and idempotent behavior. It does not cover edge cases or side effects, but for a simple calculation this adds sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that defines the tool and includes the return format. It is front-loaded and contains no waste, perfectly balancing brevity and informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool with annotations and an output schema, the description is complete enough. It states the purpose and the output format, though it does not address potential edge cases (e.g., zero starting value) or parameter constraints, leaving a minor 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?
The input schema already provides descriptions for all three parameters (begin, end, years) with 100% coverage. The description adds no new parameter-specific meaning beyond 'between two values... over a number of years', which is a restatement rather than additional semantic detail.
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 clearly defines the tool as computing the compound annual growth rate between two values over a number of years. This includes the specific verb 'growth rate' and the resources/parameters involved, distinguishing it from other financial calculators.
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 implies when to use the tool (when a CAGR calculation is needed) but does not provide explicit guidance on alternatives or exclusions. It lacks a 'when not to use' statement or references to sibling tools, so it only meets the implied usage level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap-rateCap RateARead-onlyIdempotentInspect
Capitalization rate: net operating income as a percent of property value.
| Name | Required | Description | Default |
|---|---|---|---|
| noi | Yes | Net operating income. | |
| propertyValue | Yes | Property value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| capRatePct | No | Cap rate, percent (null if value<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnly and idempotent behavior, the description adds the exact operational formula (NOI as a percent of property value), which clarifies the calculation beyond the structured metadata. It does not address edge cases like zero property value, but the output schema and simple nature reduce the need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that defines the concept and formula without any filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter calculator with an output schema and read-only annotations, the description plus schema fully specifies the calculation. It lacks explicit usage scenarios or edge-case handling, but these are not critical for such a self-contained formula tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% description coverage for both parameters. The description adds the relationship between them—'net operating income as a percent of property value'—clarifies the numerator and denominator roles, and indicates the output is a percentage, which goes beyond the schema's simple field labels.
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 clearly defines what the tool computes: capitalization rate as net operating income divided by property value. Though it lacks an explicit verb like 'calculate', the formula makes the tool's function unambiguous and distinct from siblings like gross-rent-multiplier or noi.
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 implies the tool is used to compute cap rate but provides no explicit guidance on when to choose it over alternatives or any exclusions. For a simple formula calculator, this implied usage is acceptable, but it does not meet the standard for a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cash-on-cashCash-on-Cash ReturnARead-onlyIdempotentInspect
Cash-on-cash return: annual pre-tax cash flow as a percent of the cash invested.
| Name | Required | Description | Default |
|---|---|---|---|
| cashInvested | Yes | Cash invested. | |
| annualCashFlow | Yes | Annual pre-tax cash flow. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cashOnCashPct | No | Cash-on-cash return, percent (null if invested<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and determinism. The description adds the formula and explicitly states the result is expressed as a percentage, which is useful behavioral context beyond the annotations. No contradiction.
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?
A single sentence of 14 words that is front-loaded with the metric name and delivers the formula efficiently. Every word contributes value, with no repetition or 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?
The tool is a simple calculation with two fully described parameters, an output schema present, and annotations covering safety. The description provides the formula and result format, making it complete for the agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters described ('Annual pre-tax cash flow' and 'Cash invested'). The tool description essentially restates these definitions, adding only the relationship that cash flow is divided by cash invested. Per the rubric, baseline is 3 when schema coverage is high.
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 precisely defines cash-on-cash return as 'annual pre-tax cash flow as a percent of the cash invested,' which is a specific formula. This clearly distinguishes the tool from sibling metrics like ROI or cap-rate by stating the exact calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and definition: an agent would select this when asked to compute cash-on-cash return. However, it gives no guidance on choosing between related metrics (e.g., ROI, cap-rate) or when not to use it, so it only reaches the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coast-fireCoast FIREARead-onlyIdempotentInspect
Coast FIRE: whether the current nest egg, left to grow untouched to retirement, already reaches the FIRE target. Returns the target, the projected balance, whether it coasts, and any shortfall.
| Name | Required | Description | Default |
|---|---|---|---|
| annualSpend | Yes | Yearly spending in retirement. | |
| annualRatePct | Yes | Expected annual growth in percent. | |
| currentNestEgg | Yes | Amount invested today. | |
| withdrawalRatePct | No | Safe withdrawal rate in percent (default 4). | |
| yearsToRetirement | Yes | Years until retirement. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gap | No | Shortfall in future-value terms. |
| projected | No | Projected balance at retirement. |
| fireTarget | No | FIRE target. |
| isCoasting | No | True if it already coasts. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds context about the return values (target, projected balance, coasting status, shortfall) and the deterministic nature of the projection, which goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the concept and then lists the return values. Every word earns its place, with no unnecessary fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for this tool: it explains the concept, lists return values, and is supplemented by a full schema, output schema, and clear annotations. There is no hidden complexity or missing information that would leave an AI agent uncertain about invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a clear description (e.g., 'Amount invested today', 'Expected annual growth in percent'). The tool description adds minimal parameter-specific meaning, but the schema already carries the load, so the baseline score of 3 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 clearly states the tool's function: evaluating whether a current nest egg left untouched reaches the FIRE target at retirement. It specifies the resource ('current nest egg') and the action ('whether it coasts'), and distinguishes it from sibling FIRE calculators like fire-number or barista-fire by the unique coast FIRE concept.
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 implies the usage context (checking coast FIRE status) but does not explicitly state when to choose this over alternatives like barista-fire or fire-number. There is no mention of exclusions or alternative tools, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compound-interestCompound InterestARead-onlyIdempotentInspect
Compound growth at any frequency, with an optional contribution each period (paid at period end). Generalizes future-value (periodsPerYear 1) and contributions (periodsPerYear 12).
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Number of years. | |
| principal | Yes | Starting amount. | |
| annualRatePct | Yes | Annual growth rate in percent. | |
| periodsPerYear | No | Compounding periods per year (default 1). | |
| contributionPerPeriod | No | Optional. Amount added each period (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it is a safe, repeatable read. The description adds valuable behavioral detail that contributions are paid at period end, which affects timing of calculations. This exceeds the annotation baseline.
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, zero filler. The first sentence states the core function and the second positions it relative to siblings. Every word 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?
Given the five parameters and the presence of an output schema, the description covers the core behavior, contribution timing, and generalization to sibling tools. No necessary context is missing for a mathematical calculator tool.
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 covers all parameters with descriptions, so baseline is 3. The description adds useful semantic context by explaining that periodsPerYear=1 corresponds to future-value and periodsPerYear=12 corresponds to contributions, clarifying defaults and typical usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes compound growth at any frequency with optional periodic contributions, and explicitly distinguishes it from sibling tools by noting it generalizes future-value and contributions. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names sibling tools future-value and contributions, explaining how periodsPerYear=1 maps to future-value and periodsPerYear=12 maps to contributions. This provides concrete guidance on when to use this general tool versus those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contribution-marginContribution MarginBRead-onlyIdempotentInspect
Contribution margin per unit and as a percent of price.
| Name | Required | Description | Default |
|---|---|---|---|
| pricePerUnit | Yes | Selling price per unit. | |
| variableCostPerUnit | Yes | Variable cost per unit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ratioPct | No | Contribution margin ratio, percent (null if price=0). |
| contributionMargin | No | Contribution per unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds that output includes both unit margin and percent of price, but says nothing about edge cases (e.g., zero price) or the underlying formula. This adds some context beyond annotations, so 3.
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?
Description is one short sentence with no filler or redundancy. It front-loads the core purpose and avoids repeating parameter names. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter calculator with an output schema, this description is mostly complete for an agent to understand return dimensions. However, it omits contextual cues about when this metric is useful or how it relates to sibling tools, and it does not explicitly state the formula. Still, given the simplicity and annotations, it is adequate, scoring 4.
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?
Both parameters have full descriptions in the schema (selling price per unit, variable cost per unit), so schema coverage is 100%. The tool description does not add any additional parameter semantics beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes contribution margin per unit and as a percent of price, distinguishing output forms. Though it lacks an explicit verb like 'calculate', the noun phrase is specific and unambiguous. Given sibling tools like break-even-units and margin-markup, the description narrows the scope but does not explicitly differentiate from them, so 4.
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?
No guidance is provided on when to use this tool versus alternatives like margin-markup or break-even-units. The description merely states what it computes, leaving the agent to infer from the name. This is a clear gap for a financial calculator with many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contributionsFuture Value of ContributionsARead-onlyIdempotentInspect
Future value of a fixed monthly contribution, optionally stepping up each year.
| Name | Required | Description | Default |
|---|---|---|---|
| months | Yes | Number of months. | |
| monthly | Yes | Monthly contribution. | |
| annualRatePct | Yes | Annual growth rate in percent. | |
| contribGrowthPct | No | Optional. Contribution step-up percent per year. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and idempotentHint=true, so the safe, non-destructive nature is covered. The description adds the 'stepping up each year' behavior, but it omits details like compounding frequency or whether contributions are made at the beginning or end of each month, which are relevant for a financial tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core calculation ('Future value') and quickly covers the key nuance ('stepping up each year'). No unnecessary words are present.
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?
The description is adequate for a straightforward calculator, but it leaves out crucial assumptions such as compounding frequency and contribution timing. While an output schema exists, it is not visible here, and the description alone is somewhat under-specified for a formula with multiple plausible interpretations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters already documented. The description simply echoes 'fixed monthly contribution' and 'stepping up,' providing no additional parameter semantics beyond what the schema already gives.
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 'Future value of a fixed monthly contribution, optionally stepping up each year,' which clearly specifies the tool's purpose. It distinguishes itself from siblings like 'future-value' and 'annuity-fv' by highlighting the step-up feature.
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 implies when to use this tool—whenever a future value of periodic contributions with possible annual increases is needed—but it does not explicitly contrast with alternatives or state exclusions. This provides only implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convexityBond ConvexityARead-onlyIdempotentInspect
Bond convexity (years^2): the curvature of price with respect to yield, used alongside duration.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Years to maturity. | |
| yieldPct | Yes | Annual yield in percent. | |
| faceValue | Yes | Face value. | |
| couponRatePct | Yes | Annual coupon rate in percent. | |
| periodsPerYear | No | Coupon periods per year (default 2). |
Output Schema
| Name | Required | Description |
|---|---|---|
| convexity | No | Convexity, years^2. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe calculation. The description adds the unit (years^2) and context of curvature, but does not disclose formula assumptions (e.g., compounding frequency) or edge cases. This adds modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tightly written sentence that front-loads the metric name and unit, then defines the concept. Every word contributes to understanding, with no 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?
The tool is a simple calculator with an output schema and annotations. The description explains what convexity is, but lacks decision guidance on when to use it versus other bond metrics (e.g., bond-duration or bond-price). This is a gap for an AI agent selecting among siblings, though the low complexity mitigates it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 5 parameters (100% coverage), so the description does not need to explain parameters. It adds no additional meaning about how faceValue, couponRatePct, etc., relate to convexity, leaving the schema to carry the weight. Baseline 3 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 clearly identifies the tool as calculating bond convexity, defines it as 'the curvature of price with respect to yield,' and notes it is 'used alongside duration,' which distinguishes it from the sibling bond-duration tool. The unit (years^2) is also specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'used alongside duration' implies complementary use with duration, but it does not explicitly state when to choose this tool over alternatives or provide criteria such as 'use when assessing non-linear price risk.' No exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credit-card-payoffCredit Card PayoffARead-onlyIdempotentInspect
Months to clear a credit-card balance at a fixed monthly payment, plus interest paid. Null when the payment can't cover the first month's interest.
| Name | Required | Description | Default |
|---|---|---|---|
| aprPct | Yes | Annual percentage rate in percent. | |
| balance | Yes | Current balance. | |
| monthlyPayment | Yes | Fixed monthly payment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| months | No | Months to clear (null if never). |
| totalPaid | No | Total paid (null if never). |
| totalInterest | No | Total interest (null if never). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true and idempotentHint=true already establish the safe, read-only nature. The description adds a crucial behavioral detail: 'Null when the payment can't cover the first month's interest.' This goes beyond the annotations by disclosing a failure condition and the output's null state, which helps the agent interpret results correctly. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently states the core calculation, the interest component, and the null condition. Every clause earns its place with no filler, making it easily scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with only three parameters and an output schema (not shown), the description covers the essential semantics: the primary output (months to clear, interest paid) and a key edge case (null when payment insufficient). It does not explicitly state compounding assumptions or formula details, but these are not necessary for selection/invocation. The output schema likely provides return structure, so the description adequately supports correct use.
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% (balance, aprPct, monthlyPayment all have descriptions). The description does not add any parameter-specific semantics beyond what the schema already provides. For example, the schema says 'Fixed monthly payment,' and the description repeats 'fixed monthly payment,' but does not elaborate on units, ranges, or edge cases. Baseline 3 is appropriate when the schema carries the parameter documentation.
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 clearly states the primary function: 'Months to clear a credit-card balance at a fixed monthly payment, plus interest paid.' This identifies the specific computation and the credit-card context, distinguishing it from sibling tools like loan-payoff or debt-payoff. The verb 'clear' combined with the resource 'credit-card balance' leaves no ambiguity about the tool's purpose.
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 offers no explicit guidance on when to use this tool versus alternatives. It does not mention any exclusions, preconditions, or a preferred context. While the credit-card focus is implicit, there is no direct comparison to similar tools like loan-payoff or biweekly-payoff, leaving the agent to infer usage without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current-ratioCurrent RatioARead-onlyIdempotentInspect
Current ratio: current assets over current liabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| currentAssets | Yes | Current assets. | |
| currentLiabilities | Yes | Current liabilities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| currentRatio | No | Current ratio (null if liabilities<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds the mathematical relationship but does not disclose edge-case behavior (e.g., zero liabilities) or return format. This is sufficient for a simple pure function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that states the metric and formula. No wasted words; it is immediately parseable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple ratio calculator with full schema descriptions, annotations, and an output schema, the description is adequate. However, it does not mention the use case (liquidity analysis) or distinguish from quick-ratio, which slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes both parameters as numbers with basic descriptions (100% coverage). The description adds the key relationship that currentAssets is divided by currentLiabilities, which is crucial semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the current ratio as current assets over current liabilities, making the calculation explicit. However, it lacks an explicit verb like 'calculates' and does not differentiate from the sibling 'quick-ratio' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided regarding when to use this tool versus alternatives like quick-ratio or other liquidity ratios. The description is purely a formula, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current-yieldCurrent YieldARead-onlyIdempotentInspect
Current yield: the annual coupon as a percent of the bond's current price.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Current bond price. | |
| faceValue | Yes | Face value. | |
| couponRatePct | Yes | Annual coupon rate in percent of face. |
Output Schema
| Name | Required | Description |
|---|---|---|
| currentYieldPct | No | Current yield, percent (null if price<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description need not repeat those. It adds the mathematical relationship (coupon as a percentage of current price), which is useful behavioral context beyond the annotations, though it does not discuss edge cases like zero price.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the calculation. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and presence of an output schema and readOnly/idempotent annotations, the description adequately defines the calculation. No additional behavioral or return-value context is necessary.
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% with all three parameters described. The description reinforces that couponRatePct is an annual rate and price is the current price, but it does not add new parameter-level details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: 'Current yield: the annual coupon as a percent of the bond's current price.' This specific formula-based definition distinguishes it from sibling tools like yield-to-maturity and bond-price.
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 implies the tool is for calculating current yield but provides no explicit guidance on when to use it versus alternatives such as yield-to-maturity or bond-duration. There are no stated exclusions or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-abgeltungsteuerGerman Capital Gains Tax (Abgeltungsteuer)ARead-onlyIdempotentInspect
German flat tax on capital income (Abgeltungsteuer, §32d EStG) for tax years 2023-2026 with the year's Sparerpauschbetrag built in. 25% above the allowance, Soli 5.5% on top (no Freigrenze for capital income), and with church tax the statutory reduced rate (e.g. 24.45% at 9%) plus the church tax itself.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Tax year: 2023, 2024, 2025 or 2026. | |
| joint | No | true for jointly assessed couples (doubles the Sparerpauschbetrag). | |
| churchTaxPct | No | Church tax rate: 8, 9, or 0 for none (default 0). | |
| capitalIncome | Yes | Annual capital income (interest, dividends, realized gains) in EUR. | |
| foreignTaxCredit | No | Optional. Creditable foreign withholding tax (q in the §32d formula). |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | Income after taxes. |
| soli | No | Soli (5.5%). |
| year | No | Tax year. |
| taxable | No | Taxable after allowance. |
| totalTax | No | All taxes. |
| allowance | No | Sparerpauschbetrag applied. |
| churchTax | No | Church tax. |
| incomeTax | No | Flat tax (25% or church-reduced). |
| capitalIncome | No | Income. |
| effectiveRatePct | No | Total tax / income, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the calculation components (25% rate above allowance, 5.5% Soli, no Freigrenze, church tax reduced rate), going well beyond the annotation hints (readOnly, idempotent). This provides a clear behavioral model of how the tax is computed, including the treatment of church tax.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at two sentences, front-loading the tax type and scope before diving into rates. Every sentence contributes substantive tax rule information without redundancy or 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?
Given the complexity of German capital gains tax and the presence of a full output schema and annotations, the description provides sufficient context on the tax rules, rates, allowance, and church tax effects. It explains the core calculation intent without needing to describe return values.
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?
All five parameters are already fully described in the input schema (100% coverage), so the description adds little parameter-specific meaning. The mention of the Sparerpauschbetrag and church tax rates aligns with parameters, but the schema already carries this information.
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 clearly identifies the tool as computing Germany's flat tax on capital income (Abgeltungsteuer), citing the legal provision (§32d EStG) and specifying the applicable tax years (2023-2026) and the built-in Sparerpauschbetrag. This distinguishes it from other German tax tools like de-net-salary or tax-from-brackets.
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 implies use for German capital gains tax calculations but does not explicitly state when to use this tool versus alternatives like de-net-salary or tax-from-brackets. It only constrains applicability to tax years 2023-2026, leaving usage guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debt-payoffDebt PayoffARead-onlyIdempotentInspect
Multi-debt payoff plan under a fixed monthly budget. method 'avalanche' (highest rate first) minimizes interest; 'snowball' (smallest balance first) clears accounts soonest. Returns months, total interest, and payoff order; flags insolvent budgets.
| Name | Required | Description | Default |
|---|---|---|---|
| debts | Yes | The debts to pay off. | |
| method | No | Payoff strategy (default avalanche). | |
| monthlyBudget | Yes | Total amount available across all debts each month. |
Output Schema
| Name | Required | Description |
|---|---|---|
| months | No | Months to debt-free (null if insolvent). |
| insolvent | No | True if the budget can't keep up. |
| payoffOrder | No | Debt names in payoff order. |
| totalInterest | No | Total interest (null if insolvent). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it readOnly and idempotent. The description adds behavior context: it returns months, total interest, payoff order, and flags insolvent budgets, plus explains the effects of each method ('avalanche minimizes interest, snowball clears accounts soonest'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core purpose and includes only essential details about methods and output. Every clause adds value; no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description provides sufficient behavioral details (return values, insolvency flag, method effects). It could mention that insolvency occurs when budget falls below minimum payments, but that's inferable.
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 descriptions cover all 3 parameters (100%). The tool description adds meaning to the 'method' parameter by explaining the strategic trade-off (avalanche vs snowball) and clarifies the role of the fixed monthly budget, going beyond the enum and schema text.
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 clearly states the tool's purpose: creating a multi-debt payoff plan under a fixed monthly budget, with methods and outputs. It distinguishes from siblings like credit-card-payoff by focusing on multi-debt scenarios and named strategies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'multi-debt payoff plan' – it's for tackling more than one debt. However, it doesn't explicitly note when not to use it or point to alternatives such as credit-card-payoff or loan-payoff for single-debt cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
declining-balance-depreciationDeclining-Balance DepreciationARead-onlyIdempotentInspect
Declining-balance depreciation: a fixed percent of the reducing book value, for a given year. Returns that year's depreciation and the remaining book value.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (1-based). | |
| value | Yes | Initial cost. | |
| ratePct | Yes | Annual depreciation rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bookValue | No | Book value at year end. |
| depreciation | No | Depreciation this year. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds the output details (depreciation and remaining book value) and the 'for a given year' scope, but does not disclose edge cases or assumptions. No contradiction.
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 concise sentences front-load the method and output without any filler. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator tool with well-documented schema and an output schema, the description is sufficient. It specifies the method, the year scope, and the return values. Missing explicit edge-case handling but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all three parameters (value, ratePct, year) at 100% coverage. The description adds the conceptual context of 'fixed percent of reducing book value' but no additional syntax or format specifics.
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 clearly states the tool computes declining-balance depreciation using a fixed percentage of reducing book value for a specified year and returns both that year's depreciation and remaining book value. This specific method definition distinguishes it from sibling tools like straight-line or double-declining.
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 implies usage by defining the method, but does not explicitly state when to choose this over alternatives such as straight-line-depreciation or double-declining-depreciation. It lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-gross-to-netGerman Gross-to-Net (manual figures)ARead-onlyIdempotentInspect
German net (Netto) salary from gross (Brutto). No tax tables are baked in: look up the current year's statutory figures and pass them in. Income tax (Lohnsteuer) and Soli are amounts; church tax is a percent of the income tax; the four employee social rates and the two contribution ceilings are inputs. Use consistent units (e.g. all annual).
| Name | Required | Description | Default |
|---|---|---|---|
| soli | No | Solidarity surcharge (Solidaritätszuschlag) amount (often 0 below the threshold). | |
| gross | Yes | Gross salary (Brutto). | |
| carePct | No | Employee long-term care (Pflegeversicherung) rate in percent. | |
| healthPct | No | Employee health (Krankenversicherung incl. Zusatzbeitrag) rate in percent. | |
| incomeTax | No | Income tax (Lohnsteuer) amount for the period — look up via the §32a / Steuerklasse tables. | |
| pensionPct | No | Employee pension (Rentenversicherung) rate in percent (e.g. 9.3). | |
| churchTaxPct | No | Church tax (Kirchensteuer) rate in percent of income tax (8 or 9, 0 if none). | |
| healthCeiling | No | Contribution ceiling for health and care. | |
| pensionCeiling | No | Contribution ceiling (Beitragsbemessungsgrenze) for pension and unemployment. | |
| unemploymentPct | No | Employee unemployment (Arbeitslosenversicherung) rate in percent (e.g. 1.3). |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | Net. |
| soli | No | Soli. |
| gross | No | Gross. |
| churchTax | No | Church tax. |
| incomeTax | No | Income tax. |
| contributions | No | { pension, unemployment, health, care, total }. |
| totalDeductions | No | Total deductions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: income tax and Soli are amounts, church tax is a percent of income tax, and social rates/ceilings are explicit inputs. It also clarifies the manual model. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences. The first sentence states the purpose, and the second covers the manual-input requirement, the input types, and unit consistency. Every word earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool, the description adequately explains the external figures needed, the relationships among inputs, and the unit consistency requirement. The output schema covers the return structure, so the description doesn't need to detail outputs. It could mention calculation order or edge cases, but the provided context is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The description adds meaning by grouping 'the four employee social rates and the two contribution ceilings' and clarifying the type relationships (e.g., church tax as percent of income tax, income tax as amount). This goes beyond the individual parameter descriptions.
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 'German net (Netto) salary from gross (Brutto)' with a specific verb and resource, and the title adds 'manual figures,' which distinguishes it from the sibling 'de-net-salary.' The purpose is explicit and unambiguous.
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 clear when-to-use context: 'No tax tables are baked in: look up the current year's statutory figures and pass them in.' It also advises 'Use consistent units.' However, it stops short of explicitly naming an alternative tool like 'de-net-salary,' so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-kindergeldGerman Child Benefit (Kindergeld)ARead-onlyIdempotentInspect
German child benefit (Kindergeld) for 2023-2026: the year's flat monthly amount per child (uniform since 2023), as monthly and annual totals.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year: 2023, 2024, 2025 or 2026. | |
| children | No | Number of children (default 1). |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | Year. |
| annual | No | Total annual. |
| monthly | No | Total monthly. |
| children | No | Children. |
| perChildMonthly | No | Monthly amount per child. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint, idempotentHint) already establish a safe read operation, and the description adds meaningful context by explaining that the amount is a flat monthly rate per child (uniform since 2023) and that outputs include monthly and annual totals. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the tool's purpose and key scope without redundancy. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter calculator with a known output schema, the description is complete enough. It covers the essential input range (2023-2026), per-child applicability, and output measures (monthly and annual totals), though it does not delve into potential edge cases or output formatting details, which are handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for both year and children, covering 100% of parameters. The description adds value by clarifying that the benefit is per child and specifying the output structure (monthly and annual totals), which enriches the interpretation of the children parameter and the tool's behavior.
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 clearly identifies the tool as providing German child benefit (Kindergeld) amounts for 2023-2026, specifying per-child monthly and annual totals. It distinguishes itself from sibling financial calculators by focusing on this specific benefit and noting the uniform rate since 2023.
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?
No explicit when-to-use guidance or alternative tools are mentioned. However, the description implies its usage context by clearly naming the Kindergeld calculator and its parameters, making it distinguishable by domain. The absence of explicit exclusions or alternatives leaves room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-midijobGerman Midijob ContributionsARead-onlyIdempotentInspect
German Midijob / Uebergangsbereich (paragraph 20 Abs. 2a SGB IV) for 2023-2026: classifies a monthly pay as Minijob / Midijob / regular against the year's thresholds and, inside the Midijob band, computes the reduced contribution bases (Faktor F from the year's rates) and the employee vs employer social-insurance split.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Optional. Age - under 23 skips the childless care surcharge. | |
| year | Yes | Year: 2023, 2024, 2025 or 2026. | |
| children | No | Children, for the care-insurance rate (default 0). | |
| bundesland | No | Optional. State code; SN applies the Saxony care split. | |
| monthlyPay | Yes | Gross monthly pay in EUR. | |
| kvZusatzPct | No | Optional. Krankenkasse Zusatzbeitrag in percent; defaults to the year's average. | |
| childrenUnder25 | No | Optional. Children under 25 for the care discounts, when different. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | Year. |
| zone | No | minijob | midijob | regular | none. |
| rates | No | { employee, total } percent rates. |
| faktorF | No | Faktor F (midijob only). |
| employee | No | { pension, unemployment, health, care, total }. |
| employer | No | { total }. |
| monthlyPay | No | Pay. |
| thresholds | No | { minijobMonthly, midijobUpper }. |
| savingsVsFull | No | Employee saving vs full contributions. |
| contributionBase | No | { total, employee } reduced bases. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent hints. The description adds value by revealing the classification logic (Minijob/Midijob/regular), use of year-specific thresholds and Faktor F, and the employee/employer split—without contradicting the annotations. It does not go into every nuance (e.g., age/child effects), but those are visible in the schema, so no contradiction or major omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that packs the subject, scope, core actions, and legal reference without fluff. Every phrase contributes: the tool name is not merely restated, and the sentence front-loads the key concept 'Midijob/Uebergangsbereich' before detailing computation. This is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex German payroll tool with 7 params and an output schema, the description is complete enough: it explains the classification and computation behaviors, and the schema covers parameter meanings and return structure. It does not explicitly mention edge cases (e.g., age-related surcharge) but those are in the schema. Slightly less than perfect because it could briefly note that results depend on optional parameters, but core context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add detailed parameter-specific semantics beyond mentioning 'year's rates' and 'Faktor F'; individual params like age, children, bundesland are only explained in the schema. Thus, it neither hurts nor significantly improves parameter understanding beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb+resource: it classifies monthly pay as Minijob/Midijob/regular and computes contribution bases and splits. It references the legal basis (§20 Abs. 2a SGB IV) and explicitly covers 2023-2026, distinguishing it from generic calculators like 'contributions' or 'de-net-salary'.
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 clear context: it is for German Midijob/Uebergangsbereich calculations for 2023-2026, including classification against thresholds and computing Faktor F. It implies when to use it (when pay falls in the transition band) but does not explicitly name alternatives or exclusions among sibling tools. This matches 'clear context, no exclusions'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-net-salaryGerman Net Salary (exact, by tax year)ARead-onlyIdempotentInspect
Exact German net (Netto) salary from annual gross (Brutto) for tax years 2023-2026. Income tax and Soli follow the official BMF Programmablaufplan for the year (to the euro; 2024 uses the retroactive December tariff), church tax comes from the PAP's Kirchensteuer base, and employee social insurance uses that year's ceilings and rates (KV Zusatzbeitrag defaults to the year's average). Earlier years are rejected - use de-gross-to-net with self-supplied figures instead.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Optional. Age in years - under 23 skips the childless care surcharge. | |
| year | Yes | Tax year: 2023, 2024, 2025 or 2026. | |
| faktor | No | Optional. Tax-class-4 Faktorverfahren factor, default 1.0 (no factor). Only the small minority of married IV/IV couples who applied for it have one; it is assigned by the Finanzamt and printed on the payslip / ELStAM (e.g. 0.921, always <= 1). Leave unset unless the payslip shows a Faktor. | |
| children | No | Kinderfreibetrag counter (ZKF), halves allowed (default 0). Also drives the care-insurance child discounts. | |
| taxClass | No | Steuerklasse 1-6 (default 1). | |
| bundesland | No | Optional. State code (BW, BY, BE, ... SN, TH). Drives the Saxony care-insurance split and the pre-2025 East pension ceiling. | |
| grossAnnual | Yes | Annual gross salary (Brutto) in EUR. | |
| kvZusatzPct | No | Optional. The Krankenkasse's own Zusatzbeitrag in percent — pass the actual rate for exact results (rates change yearly, e.g. TK 2025: 2.45, 2026: 2.69). Defaults to the year's official average, which is only right for generic estimates. | |
| churchTaxPct | No | Church tax rate: 8, 9, or 0 for none (default 0). | |
| privateHealth | No | ||
| childrenUnder25 | No | Optional. Children under 25 for the care-insurance discounts, when it differs from `children`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | { annual, monthly }. |
| soli | No | Solidaritätszuschlag. |
| year | No | Tax year. |
| gross | No | { annual, monthly }. |
| totalTax | No | All taxes. |
| churchTax | No | Kirchensteuer. |
| incomeTax | No | Lohnsteuer (annual). |
| assumptions | No | Inputs as applied (tax class, Zusatzbeitrag, PAP basis, ...). |
| contributions | No | { pension, unemployment, health, care, total, rates, ceilingsApplied }. |
| totalDeductions | No | Taxes + contributions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds valuable behavioral details beyond annotations: the official BMF Programmablaufplan, 2024 retroactive tariff spec, church tax base, social insurance ceilings, and the Zusatzbeitrag default. It also notes rejection of earlier years. This goes beyond the annotation basics, though it doesn't detail output structure (covered by output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with a follow-up sentence for the alternative tool. It front-loads the main purpose and packs in crucial details without waste. It's slightly longer than ideal but every clause carries information, earning a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, nested object, output schema), the description covers the essential context: tax year range, official method, regional/status defaults, and the rejection of out-of-range years. The output schema covers return values, so the description needn't explain those. It could mention a few more edge cases, but overall it's complete enough.
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 91%, so the schema already documents most parameters thoroughly. The description mentions one parameter default (KV Zusatzbeitrag average) which is already in the schema, but does not add significant extra meaning beyond schema. Baseline 3 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 states the tool computes exact German net salary from annual gross for tax years 2023-2026, using specific official methods. It clearly distinguishes from the sibling de-gross-to-net by noting that earlier years are rejected and directing users to that tool with self-supplied figures.
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?
Explicitly states when to use (for exact official calculations in 2023-2026) and explicitly names the alternative (de-gross-to-net) for rejected years. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
depreciateDepreciationARead-onlyIdempotentInspect
Value after compounding down (or up) at a yearly percentage rate over a number of years. This is the method the app uses for long-term assets.
| Name | Required | Description | Default |
|---|---|---|---|
| up | No | false depreciates, true appreciates. | |
| value | Yes | Starting value. | |
| years | Yes | Number of years. | |
| annualRatePct | Yes | Annual rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the behavioral trait of compounding (down or up) at a yearly rate, which goes beyond the annotations that only indicate read-only and idempotent. It clarifies that the tool can both depreciate and appreciate based on the 'up' parameter, adding useful context. There is no contradiction with the annotations, and the description enriches the safety profile with method details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the core behavior. Every word contributes: the first sentence states the calculation and the second gives application context. No redundancy or fluff, making it highly concise and well-structured.
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?
The tool is a simple read-only calculation with a complete output schema, and the description explains the core method and typical use case (long-term assets). It does not need to explain return values since the output schema exists. It could mention edge cases (e.g., negative rates) but given the simplicity and available schema, it is sufficiently 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?
The input schema already documents all parameters with clear descriptions, achieving 100% coverage. The description does not add new individual parameter meaning beyond the schema, but it does provide a high-level formula context (compounding down/up over years). Since the schema handles the heavy lifting, the baseline of 3 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 clearly states what the tool computes: "Value after compounding down (or up) at a yearly percentage rate over a number of years." It identifies the resource (a financial value) and the method (compounding), and distinguishes it from other depreciation methods (e.g., straight-line, declining-balance) by mentioning the ability to appreciate. However, it lacks an explicit verb like 'calculates' or 'computes,' which prevents a top score.
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 provides some usage context with "This is the method the app uses for long-term assets," implying when to use it. However, it does not explicitly compare to alternatives or state exclusions (e.g., when not to use it or which sibling to use instead). The guidance is implied rather than explicit, so it earns a middle score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
de-rentenpunkteGerman Pension Points (Rentenpunkte)ARead-onlyIdempotentInspect
German pension points (Entgeltpunkte, paragraph 63 SGB VI) for 2023-2026: points earned from an annual gross via the year's Durchschnittsentgelt (capped at the contribution ceiling), the aktueller Rentenwert for both halves of the year, and optionally the gross monthly state pension for a total point count.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year: 2023, 2024, 2025 or 2026. | |
| bundesland | No | Optional. State code - East states use the East ceiling before 2025. | |
| grossAnnual | Yes | Annual insured gross salary in EUR. | |
| totalPoints | No | Optional. Accumulated points, to project the gross monthly pension at today's Rentenwert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | Year. |
| points | No | Points earned this year. |
| projection | No | { totalPoints, monthlyPension, note } when totalPoints given. |
| rentenwert | No | { janToJun, fromJuly } EUR per point per month. |
| grossAnnual | No | Gross. |
| insuredGross | No | Gross after the ceiling. |
| ceilingApplied | No | True if capped. |
| maxPointsThisYear | No | Ceiling / average. |
| durchschnittsentgelt | No | Average earnings divisor. |
| monthlyPensionPerPoint | No | Current EUR per point. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds valuable behavioral context: the contribution ceiling cap and the fact that the aktueller Rentenwert can differ for the two halves of the year. It also clarifies that an optional total points input projects the gross monthly pension, which is not evident from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that packs the legal reference, year range, calculation logic, and optional function. It is front-loaded with the core purpose and avoids redundant filler. However, it includes several technical German terms (Entgeltpunkte, Durchschnittsentgelt, aktueller Rentenwert) that may add cognitive load, keeping it just below a 5.
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?
The tool is a straightforward calculator with 4 parameters and an output schema, so the description does not need to explain return values. It covers the key calculation aspects (ceiling cap, half-year Rentenwert) and the optional projection mode. It is complete enough for a typical agent to use correctly, though it could mention edge cases like invalid years, but the schema already constrains valid years.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with clear descriptions (100% coverage). The description adds formula-level context (e.g., contribution ceiling, Durchschnittsentgelt) that helps interpret grossAnnual and year, but it does not significantly expand on parameter semantics beyond what the schema provides. This aligns with the baseline score of 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?
The description clearly identifies the tool as a calculator for German pension points (Entgeltpunkte) across 2023-2026, specifying the formula inputs (gross salary, Durchschnittsentgelt, contribution ceiling, aktueller Rentenwert). It is specific about the resource and scope, but lacks an explicit verb like 'calculate' or 'compute', which slightly lowers the score.
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 implies usage through the year range and the optional totalPoints parameter for pension projection, but it does not explicitly contrast with alternative tools or state when to use this tool versus others (e.g., de-net-salary). The legal reference and German-specific terminology strongly imply a niche use case, but no exclusions or alternative guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discountDiscountARead-onlyIdempotentInspect
A single percentage discount: the amount off and the final price.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Original price. | |
| discountPct | Yes | Discount in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| discount | No | Amount off. |
| finalPrice | No | Final price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds the concrete output details (amount off and final price), which are not revealed by annotations or schema alone, giving useful behavioral transparency for a calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the tool's purpose and outputs without any wasted words. Every phrase contributes meaning, achieving excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter financial calculator, the description covers the essential purpose and outputs. The presence of an output schema (though not shown) reduces the need to detail return values. It misses edge-case handling (e.g., percent as fraction vs. whole), but this is not a critical gap for such a tool.
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% (price and discountPct both have descriptions). The description does not add any further parameter-specific meaning, but since the schema fully documents the parameters, a baseline of 3 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 explicitly states the tool computes a single percentage discount and reports both the amount off and the final price. The word 'single' distinguishes it from the sibling tool 'successive-discounts', making its purpose unambiguous.
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 clearly implies use for one discount rather than multiple/layered discounts. It does not explicitly name an alternative tool (e.g., successive-discounts), but the 'single' qualifier provides contextual guidance without excluding edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounted-paybackDiscounted PaybackARead-onlyIdempotentInspect
Discounted payback period: like payback-period but each cashflow is discounted at the per-period rate.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePct | Yes | Discount rate per period in percent. | |
| cashflows | Yes | Inflow each period. | |
| initialCost | Yes | Upfront cost. |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Discounted payback in periods (null if never). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds the key behavioral detail that each cashflow is discounted at the per-period rate, which is not covered by annotations or schema. This goes beyond the basic structure, though it does not elaborate on return behavior, which is acceptable given the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately names the tool's purpose and its key differentiator from a sibling. It is concise, front-loaded, and contains no redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward calculation tool with a complete input schema, an output schema, and annotations covering read-only and idempotent behavior, the description provides sufficient context. It also names the alternative tool. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for ratePct, cashflows, and initialCost. The tool description does not add significant parameter-level meaning beyond the schema, but it indirectly aligns 'ratePct' with the 'per-period rate' mentioned. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool calculates the discounted payback period and explicitly distinguishes it from the sibling tool 'payback-period' by noting that each cashflow is discounted at a per-period rate. This provides a specific verb, resource, and key differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'like payback-period but...' directly references an alternative tool and specifies the difference, telling the user when to choose this tool (when discounting is needed) versus payback-period. This is explicit usage guidance with an alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dollar-cost-averagingDollar-Cost AveragingARead-onlyIdempotentInspect
Dollar-cost averaging: buying a fixed amount each period at the given prices. Returns units accumulated, total invested, average cost, and final value at the last price.
| Name | Required | Description | Default |
|---|---|---|---|
| prices | Yes | Price at each purchase period. | |
| periodicInvestment | Yes | Fixed amount invested each period. |
Output Schema
| Name | Required | Description |
|---|---|---|
| units | No | Units accumulated. |
| avgCost | No | Average cost per unit (null if none). |
| invested | No | Total invested. |
| finalValue | No | Value at the last price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to repeat those safety traits. It adds value by specifying the return values (units accumulated, total invested, average cost, final value), which goes beyond the bare schema. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core concept and followed by the outputs. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and an output schema available, the description is sufficient. It states the input pattern and the calculated results, making the tool's behavior clear. The presence of an output schema means return value details do not need to be exhaustively repeated.
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 descriptions cover both parameters fully (price at each period and fixed investment amount). The description does not add additional parameter-level detail beyond restating the concept, so the baseline score of 3 applies given the 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool calculates dollar-cost averaging by buying a fixed amount each period at the given prices, and lists the computed outputs (units accumulated, total invested, average cost, final value). This specific verb+resource distinguishes it from the many other financial calculators in the sibling list.
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 explains the concept of dollar-cost averaging but does not explicitly state when to use this tool over alternatives such as future-value or compound-interest. It implies usage for DCA calculations but lacks explicit exclusions or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
double-declining-depreciationDouble-Declining DepreciationARead-onlyIdempotentInspect
Double-declining-balance depreciation: 2/usefulYears of the book value each year, not falling below salvage.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (1-based). | |
| value | Yes | Initial cost. | |
| salvage | No | Salvage value (default 0). | |
| usefulYears | Yes | Useful life in years. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bookValue | No | Book value at year end. |
| depreciation | No | Depreciation this year. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, so safety is covered. The description adds behavioral details beyond annotations by explaining the calculation algorithm and the salvage floor, which is essential for understanding how depreciation stops.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the method, formula, and constraint without any redundant words. It is front-loaded with the method name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and complete parameter descriptions, the description is sufficient. It explains the algorithm and the salvage floor. Minor ambiguity about year semantics is resolved by the schema, making the tool well-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters, but the description adds meaning by showing how value, usefulYears, and salvage are used in the formula. However, 'year' is not explicitly tied to the formula in the description, though the schema clarifies it is 1-based.
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 clearly states it computes double-declining-balance depreciation with a specific formula (2/usefulYears of book value) and a salvage floor. This directly distinguishes it from sibling depreciation calculators like straight-line or sum-of-years-digits.
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 tool name and description make it obvious when to use this tool: for double-declining-balance depreciation calculations. It does not explicitly mention alternatives or exclusions, but the method is well-defined and the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dscrDebt Service Coverage RatioARead-onlyIdempotentInspect
Debt service coverage ratio: net operating income divided by annual debt service.
| Name | Required | Description | Default |
|---|---|---|---|
| noi | Yes | Net operating income. | |
| annualDebtService | Yes | Annual debt service. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dscr | No | Debt service coverage ratio (null if debt<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds the computational behavior (division), but does not disclose edge-case handling such as division by zero when annualDebtService is zero.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that defines the ratio and the calculation. Every word contributes meaning, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, deterministic financial calculation, the description fully conveys the purpose and computation. The presence of an output schema covers return values, and the two parameters are clearly defined, so no additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions fully cover both parameters, providing baseline clarity. The tool description adds value by specifying the relationship between the parameters (NOI divided by annual debt service), making the numerator/denominator roles explicit beyond the individual parameter descriptions.
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 clearly defines the tool as the debt service coverage ratio and explicitly states the formula (net operating income divided by annual debt service). This distinguishes it from sibling tools like 'noi' and 'cap-rate' by specifying the exact computation and inputs.
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 provides no guidance on when to use this tool versus alternatives. There is no mention of typical use cases (e.g., evaluating loan risk) or exclusions, leaving the agent to infer context from the formula alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dtiDebt-to-IncomeARead-onlyIdempotentInspect
Debt-to-income ratio, percent (monthly debt / gross monthly income).
| Name | Required | Description | Default |
|---|---|---|---|
| monthlyDebt | Yes | Total monthly debt payments. | |
| grossMonthlyIncome | Yes | Gross monthly income. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dtiPct | No | Debt-to-income, percent (null if income<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The formula itself is a strong behavioral disclosure: it tells the agent exactly how the calculation is performed. Combined with the annotations (readOnlyHint=true, idempotentHint=true), this gives a complete safety profile. The only missing piece is edge-case handling (e.g., zero income), but the explicit formula covers the core behavior beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct line that states the output unit and the formula. No filler words, no redundant content. It is immediately readable and front-loaded with the core concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool, the description provides the essential purpose, formula, and output unit. The output schema exists, so return values are documented elsewhere. It lacks usage context (covered in dimension 2), but overall it gives enough information for basic selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already provides 100% coverage with clear descriptions for monthlyDebt and grossMonthlyIncome. The description adds relational meaning by showing how the parameters interact (numerator and denominator) in the ratio, which goes beyond the individual schema descriptions and clarifies their purpose.
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 explicitly defines the debt-to-income ratio as a percentage with the exact formula (monthly debt / gross monthly income). This is specific, unambiguous, and clearly distinguishes it from sibling financial ratio tools like LTV, DSCR, and cap-rate.
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?
No usage guidance is provided. The description does not indicate when to use this tool (e.g., loan qualification assessments) or how it compares to alternatives such as mortgage-affordability or debt-payoff. The agent is left without context for selecting it over similar calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
effective-rateEffective RateARead-onlyIdempotentInspect
Convert a nominal annual rate to the effective annual rate (APY) for a compounding frequency, or with toNominal recover the nominal rate from an APY.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePct | Yes | The rate in percent (nominal, or effective when toNominal is true). | |
| toNominal | No | false (default) returns the effective rate; true returns the nominal rate. | |
| periodsPerYear | Yes | Compounding periods per year (12 monthly, 365 daily). |
Output Schema
| Name | Required | Description |
|---|---|---|
| nominalRatePct | No | Nominal rate, percent (when toNominal). |
| effectiveRatePct | No | Effective annual rate (APY), percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds behavioral context by explaining the compounding-frequency dependency and the toNominal flag, making the transformation logic transparent. No contradictions or hidden side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys both conversion directions and key parameter roles, earning its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and two required parameters, the description covers the primary use cases and the reverse operation. No missing information that an agent would need to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description adds meaning by explaining that ratePct is interpreted as nominal or effective depending on toNominal, and that periodsPerYear is the compounding frequency. This exceeds the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a nominal annual rate to the effective annual rate (APY) for a compounding frequency, and also supports the reverse with toNominal. It uses a specific verb ('Convert') and resource, distinguishing it from sibling tools like compound-interest or after-tax-yield.
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 provides clear context for when to use the tool (nominal-to-effective or effective-to-nominal conversion) but does not explicitly exclude alternatives or name sibling tools. The dual-mode explanation gives strong guidance without being as explicit as a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emergency-fundEmergency FundARead-onlyIdempotentInspect
Months of runway: liquid savings divided by monthly expenses.
| Name | Required | Description | Default |
|---|---|---|---|
| liquidSavings | Yes | Cash and liquid savings on hand. | |
| monthlyExpenses | Yes | Total monthly expenses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| months | No | Months of runway (null if expenses<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds the precise arithmetic operation without contradicting those hints. It does not disclose edge-case behavior (e.g., zero monthly expenses), but for a pure calculator, the formula plus annotations are sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant detail. It efficiently states the output concept and the formula.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-number calculator with both inputs fully documented, an output schema present, and read-only/idempotent annotations, the description fully conveys the calculation and result semantics. No significant missing information.
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% with both parameters described, so the baseline is 3. The description goes beyond the schema by explaining the relationship between the parameters (division) and the output interpretation ('months of runway'), adding meaningful semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly explains that the tool computes 'months of runway' as liquid savings divided by monthly expenses. This makes the function unmistakable and distinct from sibling financial calculators.
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?
No explicit when-to-use guidance or alternative references are provided; the use case is implied only through the formula. There is no mention of scenarios where this metric is appropriate or when to prefer other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fee-dragFee DragARead-onlyIdempotentInspect
Effect of an annual fee: the compounded balance at the gross rate vs net of the fee, and the amount lost to fees.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Number of years. | |
| feePct | Yes | Annual fee in percent. | |
| principal | Yes | Starting amount. | |
| grossAnnualPct | Yes | Gross annual return in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | Net of fees. |
| gross | No | Gross balance. |
| lostToFees | No | Amount lost to fees. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent. The description adds context about the computational approach (comparing gross vs net balances and the fee loss), which is valuable. No contradiction exists, and the description does not omit any major safety or behavioral caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that leads with the core purpose ('Effect of an annual fee') and efficiently explains the outputs. Every word contributes meaning; there is no redundancy or 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?
Given the tool's simplicity, a fully documented schema, and the presence of an output schema, the description is sufficiently complete. It conveys the essential outcome without needing to elaborate on return formats or assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with clear descriptions for all four parameters (principal, grossAnnualPct, feePct, years). The description does not add parameter-specific details beyond what the schema already contains, so it does not exceed the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it calculates the effect of an annual fee on a compounded balance, comparing gross vs net growth and quantifying the amount lost to fees. This specific verb-resource combination distinguishes it from siblings like compound-interest or cagr.
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 implies the use case (when you want to see the impact of annual fees on investment growth) but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. Sibling tools like compound-interest are not mentioned, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fire-numberFIRE NumberARead-onlyIdempotentInspect
FIRE target nest egg from annual spend and a safe withdrawal rate (default 4%), plus the gap from today and the years to reach it given optional savings and growth. No advice.
| Name | Required | Description | Default |
|---|---|---|---|
| annualSpend | Yes | Yearly spending the nest egg must cover. | |
| annualRatePct | No | Optional. Annual portfolio growth in percent (default 0). | |
| currentNestEgg | No | Optional. Amount already saved (default 0). | |
| withdrawalRatePct | No | Safe withdrawal rate in percent (default 4 = the 4% rule). | |
| annualContribution | No | Optional. Amount saved per year (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| gap | No | Gap from today. |
| target | No | Target nest egg. |
| yearsToFI | No | Years to FI (null if unreachable). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds the 'No advice' disclaimer and explains the computational outputs (gap and years to reach), providing useful context beyond what annotations convey. It does not discuss error handling or edge cases, but the safety profile is well-covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that captures the tool's purpose, key inputs, default, and outputs, followed by a concise disclaimer. Every word earns its place, with no redundancy or excessive detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete schema, annotations, and an output schema present, the description adequately covers the tool's purpose and core outputs. It could mention limitations or assumptions beyond the default 4% rule, but the provided information is sufficient for an agent to use the tool correctly in most scenarios.
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 descriptions cover 100% of parameters, providing a solid baseline. The description adds meaning by synthesizing how parameters interact: 'gap from today' implies comparison with currentNestEgg, and 'years to reach it' uses annualContribution and growth. This goes beyond individual property descriptions to clarify the calculation flow.
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 clearly states the tool calculates a FIRE target nest egg from annual spend and safe withdrawal rate, plus the gap from today and years to reach it. This specific verb+resource with default rate distinguishes it from sibling calculators like barista-fire and coast-fire.
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 provides clear context for when to use the tool (standard FIRE calculation) by specifying inputs and outputs. It does not explicitly exclude alternatives or mention sibling tools, but the unique combination of nest egg, gap, and years-to-target gives enough guidance for an agent to select it over similar calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
future-valueFuture ValueARead-onlyIdempotentInspect
Future value of a single lump sum compounded annually.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Number of years. | |
| principal | Yes | Starting amount. | |
| annualRatePct | Yes | Annual growth rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is known. The description adds key behavioral context by specifying 'compounded annually' and 'single lump sum', which define the calculation scope beyond the annotations. It does not detail edge cases, but the output schema exists to cover return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, extremely concise, and directly front-loaded with the key concept. Every word is meaningful, and there is no redundancy or 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?
For a simple financial calculator with full schema coverage, a complete output schema, and annotations indicating safety, the description adequately captures the tool's purpose. It does not explain return values, but the output schema handles that, and the annual compounding detail is sufficient for the intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds contextual meaning by clarifying that principal is a one-time lump sum and compounding occurs annually, which complements the parameter descriptions without adding syntax or format details. No additional parameter-level information is provided.
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 clearly indicates the tool computes the future value of a single lump sum with annual compounding, distinguishing it from annuity or present-value calculators. However, it lacks an explicit action verb such as 'calculate' or 'compute', relying on the noun phrase 'Future value of a single lump sum'.
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 implies usage for a single lump sum with annual compounding, but it does not explicitly state when to use this tool over alternatives like annuity-fv or present-value. No exclusions or alternative tool references are provided, leaving the guidance implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx-convertFX ConvertARead-onlyIdempotentInspect
Convert an amount using a rate supplied by the caller (units of target currency per unit of source). No rate is ever looked up.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Rate: target units per source unit. | |
| amount | Yes | Amount to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavioral context by stating that the rate is supplied by the caller and that no rate lookup is performed. This goes beyond the annotations to clarify the tool's pure calculation nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundant wording. It is front-loaded with the action ('Convert an amount') and efficiently communicates the key scope constraint ('No rate is ever looked up').
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?
The tool is simple with only two parameters, both fully documented in the schema, and an output schema is present. The description, combined with annotations and schema, provides complete context for correct usage. No additional details like rounding or edge cases are necessary for this straightforward calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter description coverage, so the baseline is 3. The description restates the rate unit meaning ('units of target currency per unit of source') which is already in the schema's rate description, adding no new semantic information beyond what the schema provides.
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 clearly states the tool converts an amount using a caller-supplied rate, which is a specific verb+resource. It distinguishes itself from siblings by emphasizing that no rate lookup occurs, which is unique among the financial calculation tools.
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 clearly implies when to use this tool: when you have a rate and want to convert. The phrase 'No rate is ever looked up' provides an exclusionary guideline, signaling that this tool is not for rate retrieval. However, it does not explicitly name alternatives or provide explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gross-rent-multiplierGross Rent MultiplierARead-onlyIdempotentInspect
Gross rent multiplier: price divided by gross annual rent.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Purchase price. | |
| grossAnnualRent | Yes | Gross annual rent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| grm | No | Gross rent multiplier (null if rent<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe, non-mutating operation. The description adds the exact computation behavior, which is the core of this tool. It does not mention edge cases like zero rent, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 'Gross rent multiplier: price divided by gross annual rent.' It is front-loaded, contains no filler, and every word 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?
Given the tool's simplicity (two numeric inputs, one formula), the description, combined with the rich schema, annotations, and output schema, provides complete context. No additional guidance is necessary for correct use.
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% with descriptions for both parameters. The description adds the relationship between them ('price divided by gross annual rent'), clarifying the role of each parameter in the calculation beyond simple type definitions.
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 the formula 'price divided by gross annual rent', which is a specific calculation and clearly differentiates the tool from siblings. It is concise and unambiguous, though it does not explicitly name alternative tools.
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?
No guidance is provided on when to use this tool vs. alternatives like cap-rate or cash-on-cash. The description only gives the formula, with no context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holding-period-returnHolding Period ReturnARead-onlyIdempotentInspect
Holding-period return: (income + capital gain) / starting value, in percent.
| Name | Required | Description | Default |
|---|---|---|---|
| income | Yes | Income received over the period. | |
| endValue | Yes | Ending value. | |
| beginValue | Yes | Starting value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hprPct | No | Holding-period return, percent (null if begin=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the exact formula and output unit ('in percent'), which is valuable behavioral context beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a compact formula. No wasted words, information is front-loaded, and it is immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and 100% parameter coverage, the description is mostly sufficient. However, the formula references 'capital gain' without explicitly stating it equals endValue - beginValue, leaving a minor ambiguity in how inputs map to the calculation. Also, no mention of edge cases (e.g., zero starting value) is made.
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% with descriptions for all three parameters ('Income received over the period.', 'Ending value.', 'Starting value.'). The description adds no extra semantic detail to the parameters; it only restates the formula, so baseline 3 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 defines the tool as computing holding-period return with an explicit formula: '(income + capital gain) / starting value, in percent.' The resource (holding-period return) and calculation scope are specific, and the formula distinguishes it from sibling metrics like CAGR or ROI.
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 implies usage via the formula (e.g., when income and beginning/ending values are known) but provides no explicit context, exclusions, or comparisons to alternatives like 'cagr' or 'roi'. No direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hourly-to-salaryHourly to SalaryARead-onlyIdempotentInspect
Annualize an hourly rate (and the monthly equivalent).
| Name | Required | Description | Default |
|---|---|---|---|
| hourlyRate | Yes | Hourly rate. | |
| hoursPerWeek | No | Hours per week (default 40). | |
| weeksPerYear | No | Weeks per year (default 52). |
Output Schema
| Name | Required | Description |
|---|---|---|
| annual | No | Annual salary. |
| monthly | No | Monthly equivalent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safe read-only nature is covered. The description adds the monthly equivalent output, which is useful, but it does not disclose details like rounding or return format. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It communicates the essential transformation efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with full schema coverage and an output schema, the description covers the core transformation. It could mention the default assumptions, but those are already in the schema, so it is sufficiently 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?
The input schema fully describes all three parameters with defaults, and the description adds no additional parameter-specific meaning. Baseline 3 applies due to 100% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb "Annualize" and the resource "hourly rate", plus the additional monthly equivalent output. This distinguishes it from the sibling tool "salary-to-hourly" which performs the reverse conversion.
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 implies usage (when you have an hourly rate and want annual salary) but does not explicitly state when to use it vs. alternatives like salary-to-hourly, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inflation-adjustInflation AdjustARead-onlyIdempotentInspect
Convert a nominal amount to today's purchasing power (real), or with toNominal inflate a real amount forward, at a given annual inflation rate.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Number of years. | |
| amount | Yes | Amount to adjust. | |
| toNominal | No | false (default) deflates nominal to real; true inflates real to nominal. | |
| inflationRatePct | Yes | Annual inflation rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds directional semantics (real vs nominal) but does not disclose edge cases like negative inflation rates, rounding, or handling of years=0. With annotations present, this is adequate but not rich.
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?
A single sentence, front-loaded with the main verb and resource, and economically states both modes. No wasted words; every phrase contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values do not need to be described. The description covers both directions of the calculation and the core parameter roles. It is complete for typical financial inflation adjustments, though it could mention handling of negative rates or zero periods for full completeness.
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 beyond the schema by explaining the economic interpretation of 'amount' (nominal vs real) and how toNominal changes the operation. This clarifies the primary parameter's purpose more than the schema's generic 'Amount to adjust.'
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 uses a specific verb 'Convert' and clearly explains both directions (nominal to real, or real to nominal with toNominal). It names the resource ('amount', 'purchasing power') and differentiates from sibling tools by focusing on inflation adjustment rather than general time value of money.
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 implies when to use: whenever you need to adjust for inflation, and it explains the two possible modes (deflating vs inflating) based on the toNominal parameter. It does not explicitly exclude alternatives or name sibling tools, but the context is clear and unambiguous for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest-only-paymentInterest-Only PaymentBRead-onlyIdempotentInspect
Interest-only monthly payment on a balance.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Outstanding balance. | |
| ratePct | Yes | Annual rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| payment | No | Monthly interest payment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the tool's safe, non-mutating nature. The description adds minimal behavioral context by indicating the payment is monthly and based on a balance, but it does not explain the annual-to-monthly rate conversion or any edge cases. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It front-loads the core concept and is appropriately sized for a simple calculator tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity—two well-documented parameters, strong annotations, and an output schema—the description conveys the essential function. Minor gaps include lacking an explicit verb and not differentiating from sibling tools, but the schema and annotations compensate for most missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full descriptions for both parameters ('Outstanding balance' and 'Annual rate in percent') with 100% coverage, so the schema already handles parameter semantics. The description adds no additional parameter context, warranting the baseline score of 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?
The description clearly identifies the tool as computing an interest-only monthly payment on a balance, distinguishing it from related tools like amortization or annuity-payment. However, it uses a noun phrase rather than an explicit verb like 'calculates,' which would make the action more precise.
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 provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions or reference sibling tools such as amortization or loan-payoff, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intrinsic-time-valueIntrinsic & Time ValueARead-onlyIdempotentInspect
Split an option premium into intrinsic value (in-the-money amount) and time value.
| Name | Required | Description | Default |
|---|---|---|---|
| spot | Yes | Underlying price. | |
| type | No | Option type (default call). | |
| strike | Yes | Strike price. | |
| premium | Yes | Option premium. |
Output Schema
| Name | Required | Description |
|---|---|---|
| intrinsic | No | Intrinsic value. |
| timeValue | No | Time value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that intrinsic value is the in-the-money amount, adding semantic context beyond the read-only and idempotent annotations. It does not contradict annotations and provides enough behavioral understanding for a calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the primary action and output. Every word earns its place, with no redundancy or 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?
Given the tool's simplicity, an output schema exists to explain return values, and the description sufficiently explains the calculation's purpose. No additional context is needed for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described (e.g., spot as 'Underlying price'). The description adds no parameter-specific details beyond what the schema provides, so a baseline score of 3 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 uses a specific verb ('Split') and identifies the resource (option premium) and the exact outputs (intrinsic value and time value). It clearly distinguishes from sibling tools like option-greeks and option-breakeven by focusing on premium decomposition.
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 clearly states the tool's purpose ('Split an option premium...'), making it obvious when to use it. However, it does not explicitly mention when not to use it or name alternative tools, 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.
irrIRRARead-onlyIdempotentInspect
Internal rate of return: the per-period rate that zeroes the NPV of a cashflow series. Returns a percent, or null when the series never crosses zero.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Cashflows by period, starting at period 0. Outflows are negative. |
Output Schema
| Name | Required | Description |
|---|---|---|
| irrPct | No | Internal rate of return, percent (null if none). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent), the description adds the key behavioral detail that it returns null when the cashflow series never crosses zero, and clarifies the result is a percentage. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the term definition, and every clause contributes meaning. No 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?
Given the output schema exists and the parameter is documented, the description covers the essential behavior (percent return, null case). It doesn't address edge cases like multiple IRRs, but that's beyond the minimum for a simple financial tool. Sibling context implies regular periods are assumed, which aligns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter `cashflows` is fully described in the schema with period and sign conventions. The description adds no additional parameter-level meaning, but the high schema coverage carries the burden, so 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?
The description gives a precise mathematical definition of IRR, clearly stating what it computes and the return type. It implies regular periods via 'per-period rate' but does not explicitly contrast with XIRR or MIRR, so it falls short of full sibling differentiation.
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?
No guidance is provided on when to use IRR versus alternatives like XIRR (irregular intervals) or MIRR (reinvestment assumptions). The schema's 'by period' hint is subtle but not explicit in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan-aprLoan APRARead-onlyIdempotentInspect
Effective APR including upfront fees: the note-rate payment priced against the net proceeds (amount - fees). Annual percent.
| Name | Required | Description | Default |
|---|---|---|---|
| fees | No | Optional. Upfront fees / points in currency (default 0). | |
| amount | Yes | Loan amount. | |
| ratePct | Yes | Note (nominal) annual rate in percent. | |
| termMonths | Yes | Term in months. |
Output Schema
| Name | Required | Description |
|---|---|---|
| aprPct | No | Effective APR, percent (null if degenerate). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior; the description adds transparency about the calculation method (pricing note-rate payment against net proceeds), which helps the agent understand the formula without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose ('Effective APR including upfront fees') and provides the formula in a compact manner with no 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?
Given the schema coverage, output schema, and annotations, the description is sufficient to understand the tool's scope; the formula detail covers the behavioral nuance, making it complete for an AI agent.
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?
While the schema fully documents each parameter, the description adds relational semantics by explaining how fees reduce the amount to net proceeds, which clarifies the interplay between amount, fees, and the resulting APR.
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 clearly identifies the tool's function: calculating effective APR that includes upfront fees, and distinguishes it from simpler effective-rate tools by specifying the net proceeds calculation (amount - fees).
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 implies the tool is for loans with upfront fees, but does not explicitly compare to alternatives like effective-rate or state when not to use it, so it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan-payoffLoan PayoffBRead-onlyIdempotentInspect
Time and interest saved by paying a fixed extra amount every month on a loan, versus the baseline schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Fix the term (compute the payment) or fix the payment (compute the term). | |
| rate | Yes | Annual interest rate in percent (6 = 6%). | |
| extra | No | Optional dated extra principal payments. | |
| amount | Yes | Loan principal. | |
| payment | No | Monthly payment, used when mode is 'payment'. | |
| startDate | Yes | First payment month as an ISO date (YYYY-MM-DD). | |
| termYears | No | Term in years, used when mode is 'term'. | |
| fixedUntil | No | Optional. Rate is certain until this ISO date; beyond it the schedule is an estimate. | |
| extraMonthly | Yes | Extra principal paid each month. |
Output Schema
| Name | Required | Description |
|---|---|---|
| baseline | No | Baseline { months, totalInterest, payoffDate }. |
| accelerated | No | Accelerated { months, totalInterest, payoffDate }. |
| monthsSaved | No | Months saved. |
| interestSaved | No | Interest saved. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety traits. The description adds the comparative nature of the calculation ('versus the baseline schedule'), but doesn't disclose assumptions like interest compounding or payment timing. This adds some value beyond annotations but is not richly detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and free of unnecessary words. It front-loads the outcome ('Time and interest saved') clearly, making it easy to grasp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters and several related sibling tools, the description is minimal. It doesn't mention the two modes ('term' vs 'payment') or the optional extra payments, though these are covered in the schema. The presence of an output schema reduces the need to describe returns, but a bit more context on the baseline schedule and assumptions would make it more complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions. The tool description adds no parameter-specific information; however, the schema itself is comprehensive, so a baseline score of 3 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 clearly states the tool calculates time and interest saved by making fixed extra monthly payments, using the specific verb 'saved' and resource 'loan'. While it doesn't explicitly distinguish it from similar sibling tools like 'biweekly-payoff' or 'credit-card-payoff', the phrase 'fixed extra amount every month' implies the differentiation, making it clear but not fully explicit.
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 provides no guidance on when to use this tool compared to alternatives such as biweekly-payoff or debt-payoff. There is no mention of preferred scenarios, exclusions, or references to sibling tools. The usage context is only implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ltvLoan-to-ValueARead-onlyIdempotentInspect
Loan-to-value ratio, percent (loan / property value).
| Name | Required | Description | Default |
|---|---|---|---|
| loanAmount | Yes | Loan amount. | |
| propertyValue | Yes | Property value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ltvPct | No | Loan-to-value, percent (null if value<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds the computation formula and output unit ('percent'), but does not disclose additional behaviors such as handling of zero property value or output precision. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the metric name, and includes the essential formula without any unnecessary words or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, the description sufficiently explains the calculation and output format. The presence of an output schema and annotations covers return details and safety. A minor gap is the absence of input constraints (e.g., positive values), but not critical for this simple 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?
The schema provides basic property descriptions ('Loan amount', 'Property value'), but the description's formula 'loan / property value' clarifies the relationship and intended role of each parameter, adding meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: to compute the loan-to-value ratio as a percentage, with the explicit formula 'loan / property value'. This goes beyond the mere title 'Loan-to-Value' and distinguishes it from sibling financial metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the metric name and description, but no explicit alternatives or exclusions are mentioned. For example, it doesn't contrast with similar ratios like DTI or DSCR. The description relies on the user knowing when to apply LTV.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
margin-markupMargin & MarkupARead-onlyIdempotentInspect
Convert between margin and markup. Supply any one of cost/price plus one of marginPct/markupPct (or both cost and price); returns cost, price, profit, marginPct, and markupPct.
| Name | Required | Description | Default |
|---|---|---|---|
| cost | No | Unit cost. | |
| price | No | Selling price. | |
| marginPct | No | Profit as a percent of price. | |
| markupPct | No | Profit as a percent of cost. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cost | No | Cost. |
| price | No | Price. |
| profit | No | Profit. |
| marginPct | No | Margin, percent. |
| markupPct | No | Markup, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent), the description discloses that the tool always returns the full set of cost, price, profit, marginPct, and markupPct regardless of which inputs are supplied. This behavioral detail is not captured in the annotations and adds meaningful transparency about output completeness.
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 fluff, with the core verb and resource front-loaded. Every phrase earns its place: the input rule, the alternative input mode, and the output list are all packed efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 params, no required fields, conditional input constraints), the description fully covers the key nuance of which parameter combinations are valid. The output schema and per-parameter descriptions cover the rest, so the description is complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema already documents each parameter individually, the description adds crucial combinatorial semantics: that only certain input pairs are valid and that supplying both cost and price is also acceptable. This goes beyond per-field descriptions and helps the agent understand the relationship between parameters.
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 uses the specific verb 'Convert' with the resource 'margin and markup', immediately clarifying the tool's function. It clearly distinguishes itself from sibling financial calculators by naming its exact domain and the output fields it returns.
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 provides explicit input combination rules ('Supply any one of cost/price plus one of marginPct/markupPct (or both cost and price)'), giving clear context on how to invoke the tool. It doesn't explicitly name alternatives or when not to use it, but the unique scope makes the usage context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
max-drawdownMax DrawdownARead-onlyIdempotentInspect
Maximum drawdown of a value series: the largest peak-to-trough decline, as a positive percent.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | Sequence of values (e.g. portfolio levels). |
Output Schema
| Name | Required | Description |
|---|---|---|
| maxDrawdownPct | No | Largest peak-to-trough decline, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent. The description adds valuable behavioral context by specifying that the result is expressed as a positive percent, and it explains the calculation method (peak-to-trough), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence that front-loads the purpose and then defines the term. No redundant information or filler, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter input, the presence of an output schema, and annotations covering safety, the description adequately covers the tool's behavior. It defines the metric sufficiently for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single parameter 'series' is already described as 'Sequence of values (e.g. portfolio levels).' The description repeats the same concept without adding new semantics, so the baseline score of 3 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 clearly states the tool computes maximum drawdown of a value series, defining it as the largest peak-to-trough decline. The verb 'compute' is implicit in the definition, and the scope distinguishes it from sibling metrics like return-stats or cagr.
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 makes the usage context clear: it is for a value series, such as portfolio levels. It does not explicitly exclude alternatives or compare with sibling tools, but the uniqueness of the metric is obvious from the definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirrMIRRARead-onlyIdempotentInspect
Modified internal rate of return: negatives financed at financeRate, positives reinvested at reinvestRate. Percents in and out.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Cashflows by period (index 0 today; outflows negative). | |
| financeRatePct | Yes | Finance rate in percent. | |
| reinvestRatePct | Yes | Reinvestment rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mirrPct | No | Modified IRR, percent (null if degenerate). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds valuable behavioral context by explaining how negative cashflows are financed at financeRate and positives reinvested at reinvestRate, which reveals the core mechanism beyond the annotations. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the key concept and includes all essential information without any wasted words. It is highly concise while retaining clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the calculation and the presence of both input and output schemas, the description covers the necessary context: the formula's behavior, rate units, and cashflow direction. It could optionally mention constraints like needing at least one positive and one negative cashflow, but that is a mathematical requirement not essential for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by stating 'Percents in and out', clarifying that both rates are in percent (not decimal), and by describing the directional mapping of rates to cashflow signs. This goes beyond the schema's simple 'Finance rate in percent' descriptions.
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 clearly identifies the tool as 'Modified internal rate of return' and immediately distinguishes it from plain IRR by specifying that negatives are financed at financeRate and positives reinvested at reinvestRate. This is a specific calculation with a clear resource and scope, effectively differentiated from sibling tools like 'irr' and 'xirr'.
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 implies usage for MIRR calculations with explicit finance and reinvestment rates, but it does not explicitly state when to choose MIRR over IRR/XIRR or mention any exclusions. The context is adequate for a basic understanding but lacks direct guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mortgage-affordabilityMortgage AffordabilityARead-onlyIdempotentInspect
Maximum loan and home price the income supports: the DTI cap on gross monthly income (less existing debts) sets the payment, whose present value at the rate and term is the loan.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate in percent. | |
| dtiPct | Yes | Max share of gross monthly income for the payment, in percent (e.g. 36). | |
| termYears | Yes | Loan term in years. | |
| downPayment | No | Optional. Cash down payment, added to the loan for the home price (default 0). | |
| annualIncome | Yes | Gross annual income. | |
| monthlyDebts | No | Optional. Existing monthly debt payments (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| maxLoan | No | Max loan. |
| maxHomePrice | No | Max home price. |
| maxMonthlyPayment | No | Max payment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety and determinism. The description adds valuable behavioral context by explaining the DTI-cap-to-payment-to-present-value chain, which reveals how inputs are transformed into outputs without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the primary output ('Maximum loan and home price') and then succinctly defines the calculation. Every clause is meaningful, with no redundancy or 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?
Given that an output schema exists (documenting return values), annotations cover safety, and the input schema fully documents all parameters, the description is sufficiently complete. It explains the core financial model without needing to repeat schema details. Minor gaps like edge-case behavior are acceptable given the strong structured metadata.
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% with individual parameter descriptions, so baseline is 3. The description goes beyond the schema by linking parameters conceptually: 'gross monthly income (less existing debts)' ties annualIncome and monthlyDebts, and 'home price' implies the role of downPayment. This relational meaning helps an agent understand how parameters interact.
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 clearly states the tool computes the maximum loan and home price supported by income, using DTI, rate, and term. It uses specific financial terminology that distinguishes it from generic present-value or dti tools, though it lacks an explicit action verb like 'calculate' and does not name siblings.
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?
No explicit when-to-use guidance or comparison to alternatives is provided. The description explains the calculation logic but does not mention when this tool is preferred over related tools like dti, loan-apr, or present-value, making it hard for an agent to choose it correctly among many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
net-worthNet WorthARead-onlyIdempotentInspect
Net worth: assets minus liabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| assets | Yes | Total assets. | |
| liabilities | Yes | Total liabilities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| netWorth | No | Assets minus liabilities. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral clarity by stating the exact formula (assets minus liabilities), which goes beyond the annotations. The annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, pure calculation; the formula further explains the operation without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is immediately understandable and front-loaded with the core concept. It contains no filler or redundant information, achieving maximum efficiency for a simple calculation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple arithmetic tool with an output schema and strong annotations, the description provides the essential formula. However, it does not address potential edge cases (e.g., negative values) or offer usage context relative to the many sibling financial tools, which would slightly enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters (assets and liabilities) with 100% coverage. The description reinforces their meaning by showing how they relate in the formula, adding semantic context beyond individual parameter descriptions.
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 'Net worth: assets minus liabilities' clearly specifies the computation with a specific formula, distinguishing it from other financial calculators like current-ratio or quick-ratio. While it lacks an explicit verb like 'calculate', the formula is unambiguous and closely tied to the tool name.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, edge cases, or comparisons to sibling tools, leaving the agent to infer suitability from the formula alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
noiNet Operating IncomeBRead-onlyIdempotentInspect
Net operating income: gross rental income less vacancy and operating expenses.
| Name | Required | Description | Default |
|---|---|---|---|
| vacancyPct | Yes | Vacancy rate in percent. | |
| grossRentalIncome | Yes | Gross annual rental income. | |
| operatingExpenses | Yes | Annual operating expenses. |
Output Schema
| Name | Required | Description |
|---|---|---|
| noi | No | Net operating income. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the description adds the formula context. It does not disclose additional behavior such as rounding, output type, or handling of percent inputs, but the formula is a useful behavioral clarification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the tool's purpose. Every word earns its place with no redundancy or irrelevant information.
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?
The tool is simple, all parameters are documented, and an output schema exists, so the description need not explain return values. The formula is enough for a straightforward calculator, though it omits potential edge-case context like whether vacancy should be expressed as a whole number or decimal (schema does say percent).
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% with clear descriptions for each parameter. The description mentions vacancy and operating expenses but adds no further detail beyond what the schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines Net Operating Income as gross rental income less vacancy and operating expenses, which is a specific formula. It distinguishes the tool from siblings by stating the exact calculation, though it lacks an explicit verb like 'calculates'.
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?
No guidance is provided on when to use this tool versus alternatives. The description only gives the formula, with no mention of excluded scenarios or comparison to related tools such as cap-rate or cash-on-cash.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npvNPVARead-onlyIdempotentInspect
Net present value of a cashflow series (index 0 is today; outflows negative) discounted at a per-period rate.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Cashflows by period, starting at period 0. Outflows are negative. | |
| discountRatePct | Yes | Discount rate per period in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| npv | No | Net present value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds useful behavioral context about cashflow timing (index 0 today, negative outflows) and per-period discounting, but does not disclose edge cases, output details, or special conditions. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose ('Net present value of a cashflow series') and adds a parenthetical with essential conventions. Every word earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, 100% schema coverage, output schema, and strong annotations, the description adequately covers the conceptual core. It explains the cashflow convention and per-period rate, though it lacks reference to alternative sibling tools for irregular cashflows, which prevents a perfect score.
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% for both parameters, so the schema already fully explains cashflows and discountRatePct. The description's mention of index 0 and negative outflows simply duplicates the schema's cashflows description, adding no additional meaning.
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 clearly states the tool computes the net present value of a cashflow series. It specifies key conventions (index 0 is today, outflows negative, per-period discount rate) that help distinguish it from similar tools like xnpv (irregular periods) or present-value (single cashflow).
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?
No explicit guidance on when to use this tool versus alternatives is provided. The phrase 'per-period rate' implies regular periods but does not mention xnpv for irregular cashflows or give any when/not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
option-breakevenOption Break-EvenARead-onlyIdempotentInspect
Break-even underlying price at expiry: strike + premium for a call, strike - premium for a put.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Option type (default call). | |
| strike | Yes | Strike price. | |
| premium | Yes | Option premium paid. |
Output Schema
| Name | Required | Description |
|---|---|---|
| breakeven | No | Break-even underlying price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the exact calculation logic (strike + premium for call, strike - premium for put), which goes beyond the annotations' read-only and idempotent hints. It provides full behavioral transparency for this pure calculation tool.
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?
A single, front-loaded sentence that is efficient and free of wasted words. It immediately states the purpose and formula, making it easy to parse.
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?
The tool is simple, and the description fully covers the calculation logic. With a present output schema and comprehensive parameter definitions, there is no missing context or needed elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful relationships between the parameters (type, strike, premium) by explaining how they combine in the formula. This goes beyond the schema's individual parameter descriptions, even though schema coverage is 100%.
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 clearly states the tool's purpose: calculating break-even underlying price at expiry, with explicit formulas for calls and puts. It distinguishes itself from sibling break-even tools (e.g., break-even-units, points-breakeven) by focusing on options.
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 implies usage for option break-even calculations but does not explicitly mention when to use this tool over alternatives or any exclusions. It lacks explicit when/when-not guidance, but the context is clear from the formula and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
option-greeksOption GreeksARead-onlyIdempotentInspect
Black-Scholes greeks for a European option: delta, gamma, vega (per 1% vol), theta (per day), rho (per 1% rate).
| Name | Required | Description | Default |
|---|---|---|---|
| spot | Yes | Current underlying price. | |
| type | No | Option type (default call). | |
| years | Yes | Time to expiry in years. | |
| strike | Yes | Strike price. | |
| riskFreePct | Yes | Risk-free rate in percent. | |
| volatilityPct | Yes | Annualized volatility in percent. | |
| dividendYieldPct | No | Continuous dividend yield in percent (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| rho | No | Rho per 1% rate. |
| vega | No | Vega per 1% vol. |
| delta | No | Delta. |
| gamma | No | Gamma. |
| theta | No | Theta per day. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints, so the safety profile is covered. The description adds valuable behavioral context by specifying the model (Black-Scholes, European) and the units for each Greek (per 1% vol, per day, per 1% rate), which clarifies output semantics beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and enumerates the greeks with units. Every word earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich input schema, a present output schema, and annotations covering safety, the description is complete. It clearly states what the tool does, its scope (European option), and the output greeks with units, so the agent has enough context to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for all parameters, so the schema does the heavy lifting. The tool description does not add any additional parameter semantics, warranting the baseline score of 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?
The description clearly specifies the tool's purpose: computing Black-Scholes greeks for a European option. It lists the specific greeks (delta, gamma, vega, theta, rho) with their units, which distinguishes it from sibling tools like black-scholes (likely price) and option-breakeven.
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 implies usage when Greek values are needed, but it does not explicitly state when not to use it or mention alternatives. For example, it does not direct users to black-scholes for option pricing, leaving differentiation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payback-periodPayback PeriodARead-onlyIdempotentInspect
Simple payback period: periods until cumulative cashflows recover the initial cost, interpolated within the crossing period. Null if never.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Inflow each period. | |
| initialCost | Yes | Upfront cost. |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Payback in periods (null if never). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral details beyond the annotations: it specifies the calculation is 'interpolated within the crossing period' and returns 'Null if never'. This discloses edge-case behavior and the interpolation method, which is valuable context that annotations do not provide. Since annotations already declare read-only and idempotent, the description still adds meaningful behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core concept, the calculation method, and the null edge case. Every clause earns its place with no redundancy or filler. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema, the description is nearly complete. It covers the calculation method, interpolation, and null behavior. It does not explicitly address the expected order or sign of cashflows, but the schema and context imply this. The existence of an output schema means return values need not be described. Minor gaps exist (e.g., what happens with empty cashflows) but are not critical for a simple 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?
The input schema has 100% coverage with clear descriptions for both parameters ('Upfront cost.' and 'Inflow each period.'). The description does not significantly expand on parameter semantics; it reinforces that cashflows are inflows and initial cost is upfront, but the schema already conveys this. Baseline of 3 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 clearly states the tool's function: 'Simple payback period: periods until cumulative cashflows recover the initial cost, interpolated within the crossing period. Null if never.' It uses a specific verb ('recovers') and resource ('cumulative cashflows'), and distinguishes from the sibling 'discounted-payback' by explicitly labeling this as 'Simple'.
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 implies the tool is for undiscounted payback calculations, but it does not explicitly state when to use it versus alternatives like 'discounted-payback'. There is no 'use when' or 'use instead' guidance, though the term 'Simple' hints at a differentiation. This is a clear but under-specified usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentage-changePercentage ChangeARead-onlyIdempotentInspect
Percentage change from one value to another. Null when the starting value is zero.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Ending value. | |
| from | Yes | Starting value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| changePct | No | Percentage change (null if from=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds the null behavior for a zero starting value, which is not present in the schema or annotations. This is useful operational context that goes beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, immediately stating the core function and then the crucial edge case. Every word earns its place, with no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool with a complete input schema and an output schema present, the description covers the essential purpose and the key special case. No additional context is required for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for both 'from' and 'to'. The description's phrase 'from one value to another' simply mirrors the parameter names without adding new semantic detail, so it meets the baseline but adds no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-like phrase ('Percentage change from one value to another') and clearly identifies the resource being calculated. It also adds a distinctive edge case (null for zero starting value), which distinguishes it from simple arithmetic tools and clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (whenever a percentage change between two values is needed) but does not explicitly state when not to use it or list alternatives. Given there are many financial calculation tools in the sibling set, more explicit differentiation would be helpful, but the simplicity of the operation makes the inference straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perpetuityPerpetuityARead-onlyIdempotentInspect
Present value of a level or growing perpetuity: payment / (rate - growth). Null when growth is not below the rate.
| Name | Required | Description | Default |
|---|---|---|---|
| payment | Yes | Periodic payment. | |
| ratePct | Yes | Discount rate in percent. | |
| growthPct | No | Optional. Payment growth rate in percent (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| pv | No | Present value (null if growth>=rate). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, idempotent operation. The description adds valuable behavioral detail: the formula and the null condition when growth is not below the rate. This goes beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs the definition, formula, and edge case. There is no wasted text; it front-loads the purpose and provides the formula efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter calculation with a simple formula and an output schema present, the description covers the critical edge case (null when growth >= rate). It does not describe return formatting (handled by output schema) and the formula gives enough context for the calculation. Minor omission: no explicit mention of infinite horizon, but the name and formula imply it.
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 descriptions cover all parameters (100% coverage), but the description's formula ('payment / (rate - growth)') adds relational meaning among payment, ratePct, and growthPct. It also clarifies the default of growthPct via the formula's context, though that is already 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?
The description clearly states it computes the present value of a level or growing perpetuity, with a specific formula. It distinguishes itself from sibling tools like 'annuity-pv' and 'present-value' by explicitly targeting perpetuities.
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 implies usage for perpetuities (infinite cash flows) and provides the calculation context, but it does not explicitly mention alternatives or conditions for when not to use it. Given the clear domain and sibling list, the context is evident without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
points-breakevenPoints Break-EvenARead-onlyIdempotentInspect
Mortgage points break-even: the upfront cost to buy down the rate, the monthly payment saving, and the whole months to recoup it.
| Name | Required | Description | Default |
|---|---|---|---|
| ratePct | Yes | Base annual rate in percent. | |
| pointsPct | Yes | Points paid, percent of the loan. | |
| loanAmount | Yes | Loan amount. | |
| termMonths | Yes | Term in months. | |
| reducedRatePct | Yes | Reduced annual rate after buying points. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cost | No | Upfront cost of points. |
| monthlySaving | No | Monthly payment saving. |
| breakevenMonths | No | Whole months to recoup (null if no saving). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds the concrete outputs (upfront cost, monthly saving, months to recoup). This provides meaningful context beyond the structured fields, and there is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the tool's purpose and lists its outputs. Every word is informative, with no redundancy or tangential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a well-documented 5-parameter schema, an output schema, and clear annotations, the description adds the essential concept of what the tool returns. The tool is a straightforward calculator, and the information provided is sufficient for correct use.
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?
All 5 parameters are fully described in the schema (100% coverage), so the baseline applies. The description conceptually links parameters to outputs (e.g., upfront cost from pointsPct and loanAmount) but adds no individual parameter details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as computing mortgage points break-even, listing the three key outputs: upfront cost, monthly payment saving, and months to recoup. It is specific enough to distinguish from sibling tools like break-even-units (sales units) and refi-breakeven (refinancing).
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 implies the intended use case (analyzing mortgage points buy-down) but does not explicitly state when to use this tool versus alternatives. Sibling tools like refi-breakeven are visible to the agent, but no direct comparison or exclusion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio-longevityPortfolio LongevityARead-onlyIdempotentInspect
How many years a balance lasts while withdrawing from it: the balance grows each year, then the withdrawal (optionally stepping up) is taken. Returns the depletion year, or sustainable=true when it outlasts 200 years.
| Name | Required | Description | Default |
|---|---|---|---|
| balance | Yes | Starting balance. | |
| annualRatePct | Yes | Annual portfolio growth in percent. | |
| annualWithdrawal | Yes | Amount withdrawn in the first year. | |
| withdrawalGrowthPct | No | Optional. Yearly step-up of the withdrawal in percent (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Depletion year (null if sustainable). |
| sustainable | No | True if it outlasts 200 years. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description discloses the order of operations (growth before withdrawal), the optional step-up, and the 200-year threshold for 'sustainable'. This adds meaningful behavioral context.
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-load the core purpose and return behavior without wasted words.
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?
The description covers the calculation logic, return behavior, and cap condition. With an output schema and full parameter descriptions, no critical information is missing for an agent to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes all four parameters, so the description need not repeat them. It adds a small detail about the optional step-up ('optionally stepping up') which aligns with withdrawalGrowthPct, but overall the schema already covers parameter meaning.
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 clearly defines the tool's function: calculating how many years a balance lasts under withdrawals, with growth applied first. It distinguishes from related siblings like fire-number by focusing on longevity rather than required balance.
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 clear context for when to use the tool (to determine portfolio depletion time) but does not explicitly mention alternatives or exclusion cases. Still, the context is unambiguous enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
present-valuePresent ValueARead-onlyIdempotentInspect
Present value of a single future amount discounted annually. The inverse of future-value.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Number of years until the amount is received. | |
| futureAmount | Yes | Amount received in the future. | |
| annualRatePct | Yes | Annual discount rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pv | No | Present value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it is a safe, pure calculation. The description adds the annual discounting convention and the mathematical relationship to future-value, but does not disclose edge cases or potential pitfalls beyond what annotations and schema cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences. The first states the core purpose, and the second adds the inverse relationship to future-value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple financial calculator with three fully documented parameters, an output schema, and safety annotations, the description is complete. It communicates the single-amount scope and annual discounting, which is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (futureAmount, annualRatePct, years) clearly described. The tool description adds only the 'annual discounting' nuance, which is minor; the schema already carries the parameter semantics burden.
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 clearly states what the tool does: computes the present value of a single future amount discounted annually. It also explicitly mentions being the inverse of future-value, which distinguishes it from related sibling tools like annuity-pv, npv, or future-value.
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 provides clear context: it is for a single future amount and the inverse of future-value. However, it does not explicitly name alternative tools for multiple cash flows (e.g., npv) or state when not to use it, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put-call-parityPut-Call ParityARead-onlyIdempotentInspect
Put-call parity: given one option price, returns both. Provide call or put, plus spot, strike, years, and the rate.
| Name | Required | Description | Default |
|---|---|---|---|
| put | No | Put price (provide call or put). | |
| call | No | Call price (provide call or put). | |
| spot | Yes | Underlying price. | |
| years | Yes | Time to expiry in years. | |
| strike | Yes | Strike price. | |
| riskFreePct | Yes | Risk-free rate in percent. | |
| dividendYieldPct | No | Continuous dividend yield in percent (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| put | No | Put price. |
| call | No | Call price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and idempotentHint=true, the description adds some behavior: it returns both prices from one input. However, it does not disclose what happens if both call and put are provided, or neither – a significant edge case given that neither is required in the schema. This leaves room for interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the concept name and immediate purpose. Every word earns its place, and it avoids restating schema fields. This is an example of high-efficiency writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values need not be explained. The description covers the core behavior and inputs, but it lacks the crucial constraint that exactly one option price must be provided. This is a functional prerequisite that would affect an agent's invocation, so the description is adequate but not 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 description coverage is 100%, so the baseline is 3. The description does add the meaning that only one of call/put needs to be provided, which is useful context beyond individual field descriptions. However, it does not go into detail about units, defaults, or the dividend yield parameter, which are already covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as implementing put-call parity and states its function: 'given one option price, returns both.' This is a specific verb+resource+scope, and the name itself distinguishes it from siblings like black-scholes or option-greeks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the user when to use it: 'given one option price' – i.e., when you have one option price and need the other. It also lists the required inputs ('Provide call or put, plus spot, strike, years, and the rate'), giving clear context. However, it does not explicitly name alternatives or state when NOT to use it, falling 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.
quick-ratioQuick RatioARead-onlyIdempotentInspect
Quick (acid-test) ratio: (current assets - inventory) over current liabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| inventory | Yes | Inventory. | |
| currentAssets | Yes | Current assets. | |
| currentLiabilities | Yes | Current liabilities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| quickRatio | No | Quick ratio (null if liabilities<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description adds the calculation formula, which constitutes the core behavioral detail for a pure computation tool. No contradictions.
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?
A single, information-dense sentence communicates the exact formula with no filler. The structure is front-loaded and immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter ratio calculator with a full schema and output schema, the formula description covers everything needed. There is no hidden logic or state to disclose.
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 descriptions cover all three parameters at 100%, but the description's formula adds relational meaning (inventory is subtracted from current assets, then divided by liabilities), which goes beyond the individual parameter definitions.
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 precisely names the quick (acid-test) ratio and gives its formula, making it instantly clear what the tool calculates. This distinguishes it from the sibling `current-ratio` by explicitly including the inventory subtraction.
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 formula directly indicates when to use this tool (when the acid-test ratio is needed), but it does not explicitly mention alternatives like `current-ratio` or provide exclusion criteria. The context is clear but no 'when-not' guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
real-returnReal ReturnARead-onlyIdempotentInspect
Real (inflation-adjusted) return from a nominal rate via the Fisher relation: (1+nominal)/(1+inflation) - 1.
| Name | Required | Description | Default |
|---|---|---|---|
| nominalRatePct | Yes | Nominal annual rate in percent. | |
| inflationRatePct | Yes | Annual inflation in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| realPct | No | Real return, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe, pure calculation. The description adds the exact mathematical formula, which clarifies the computation's deterministic nature and the relationship between inputs. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that includes the tool's purpose and the formula. Every word earns its place; nothing is redundant or excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only calculator with a clear formula and an output schema, the description is complete. It explains the exact computation, and annotations cover safety and idempotency. No further behavioral details are necessary.
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% with descriptions for both parameters, so the baseline is 3. The description adds value by explicitly showing how the two rates (nominalRatePct and inflationRatePct) are used in the Fisher equation, providing mathematical context beyond the schema's simple 'in percent' descriptions.
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 clearly identifies the tool's purpose: computing the real (inflation-adjusted) return from a nominal rate. It includes the specific Fisher relation formula, which precisely distinguishes it from general inflation adjustment tools like 'inflation-adjust' and return-related siblings.
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 implies usage context (converting nominal to real return) but does not explicitly state when to use this tool over alternatives like 'inflation-adjust' or 'required-return'. No exclusions or alternative recommendations are provided, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refi-breakevenRefinance Break-EvenARead-onlyIdempotentInspect
Refinance break-even: monthly saving, whole months to recoup closing costs, and (if remainingMonths given) the net saving over the remaining term.
| Name | Required | Description | Default |
|---|---|---|---|
| newPayment | Yes | New monthly payment after refinancing. | |
| closingCosts | Yes | Upfront cost to refinance. | |
| currentPayment | Yes | Current monthly payment. | |
| remainingMonths | No | Optional. Months left on the loan, for the lifetime saving. |
Output Schema
| Name | Required | Description |
|---|---|---|
| monthlySaving | No | Monthly saving. |
| lifetimeSaving | No | Net lifetime saving (null if no term). |
| breakevenMonths | No | Whole months to recoup (null if no saving). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly and idempotent hints, but the description adds meaningful behavioral details: it notes that 'whole months' are used for recouping closing costs (implying rounding) and that the net saving is only computed when remainingMonths is provided. This conditional behavior goes beyond annotations and helps predict tool output based on input completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose and lists the key outputs. Every phrase contributes meaning (e.g., 'whole months' clarifies calculation detail, 'if remainingMonths given' specifies a condition). No redundancy or 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 an output schema present, the description need not explain return values. It covers the essential inputs and conditional behavior, making it complete for a straightforward calculator tool. Minor gaps like edge cases or negative savings are not mentioned, but these are not critical for basic usage.
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% with clear descriptions for each parameter. The tool description links parameters to outputs (e.g., 'monthly saving' from currentPayment and newPayment) but does not add significant new semantics beyond what the schema already provides. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: computing refinance break-even metrics. It specifically names the outputs (monthly saving, months to recoup closing costs, net saving over remaining term), which distinguishes it from sibling tools like points-breakeven or break-even-units. The scope is well-defined and tied to a specific financial scenario.
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 implies the use case (refinancing with closing costs, current/new payments) but does not explicitly state when to use this tool versus alternatives like points-breakeven or break-even-units. There is no mention of exclusions or conditions for choosing this tool, though the context is clear enough for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
required-contributionRequired ContributionARead-onlyIdempotentInspect
Inverse of contributions: the fixed monthly amount needed to reach a target future value over a number of months, given an optional starting balance.
| Name | Required | Description | Default |
|---|---|---|---|
| months | Yes | Number of months. | |
| targetValue | Yes | Future value goal. | |
| presentValue | No | Optional. Starting balance (default 0). | |
| annualRatePct | Yes | Annual growth rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| monthly | No | Monthly contribution needed (null if horizon<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds that it is a deterministic calculation producing a fixed monthly amount, but does not disclose internal assumptions like compounding frequency. This is acceptable given annotations but not especially rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the inverse relationship, followed by a concise definition of the calculation. Every word earns its place; no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has an output schema (per context signals), and the description conveys the core purpose. It lacks explicit assumptions about compounding or contribution timing, but for a straightforward calculation tool the description is adequate and complete enough without over-burdening.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters clearly. The description adds minimal value by referencing the optional starting balance, but the schema already includes that detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes the fixed monthly contribution needed to reach a target future value. It explicitly calls out being the inverse of the 'contributions' tool, which differentiates it from siblings.
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 'inverse of contributions' wording implies when to use this tool (when you know target value and need monthly contribution), but it does not explicitly name alternatives or exclusion criteria. Sibling tools like annuity-payment may overlap, so more direct guidance would improve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
required-returnRequired ReturnARead-onlyIdempotentInspect
Annual return needed to grow a starting value to a target over a number of years, optionally with a fixed annual contribution. With no contribution this equals CAGR. Returns a percent, or null when unreachable.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Target ending value. | |
| begin | Yes | Starting value. | |
| years | Yes | Number of years. | |
| annualContribution | No | Optional. Amount added each year (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ratePct | No | Annual rate, percent (null if unreachable). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and idempotentHint annotations already present, the description adds valuable behavioral context such as returning a percent or null when unreachable, and that no contribution simplifies to CAGR. It doesn't specify edge conditions for null, but goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the core purpose, followed by a clarifying note and return format. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a calculation tool with an output schema, covering inputs, behavior, and output. The only minor gap is not defining 'unreachable' conditions, but this does not prevent correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented. The description restates the optional contribution but adds no new parameter-level detail beyond the schema, meriting the baseline score.
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 clearly states the tool computes the annual return needed to grow a starting value to a target over years, with optional contributions. The phrase 'With no contribution this equals CAGR' explicitly distinguishes it from the CAGR sibling and clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, especially by mentioning the optional annual contribution and the CAGR equivalence. However, it does not explicitly contrast with alternatives like required-contribution or give when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
return-statsReturn StatisticsARead-onlyIdempotentInspect
Mean, sample variance, and sample standard deviation (n-1) of a series of returns. Pass percents to get a percent stdev (volatility).
| Name | Required | Description | Default |
|---|---|---|---|
| returns | Yes | The return series (e.g. yearly percents). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mean | No | Mean return. |
| count | No | Number of returns. |
| stdev | No | Sample stdev / volatility (null if <2). |
| variance | No | Sample variance (null if <2). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no need to restate safety. The description adds the important n-1 denominator detail (sample vs population) and the percent-to-volatility scaling behavior, which go beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core function and a practical formatting hint. No wasted words, every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with an output schema, the description covers all necessary behavioral details: what stats are computed, the n-1 adjustment, and the input-format effect. No gaps remain for effective selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the only parameter, providing a basic description. The description adds meaning by explaining that passing percents yields a percent stdev, clarifying how input values are interpreted and how output scales, which enriches the parameter semantics.
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 clearly states the tool computes mean, sample variance, and sample standard deviation (with n-1 explicitly noted) for a series of returns. This distinguishes it from financial calculation siblings by focusing on descriptive statistics of returns.
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 implies usage on a return series and gives input guidance ('Pass percents to get a percent stdev'), but it does not explicitly contrast with alternatives or state when not to use it. The context is clear but exclusions/alternatives are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roaReturn on AssetsARead-onlyIdempotentInspect
Return on assets, percent: net income over total assets.
| Name | Required | Description | Default |
|---|---|---|---|
| netIncome | Yes | Net income. | |
| totalAssets | Yes | Total assets. |
Output Schema
| Name | Required | Description |
|---|---|---|
| roaPct | No | Return on assets, percent (null if assets<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, covering the safety profile. The description adds that the output is a percentage and specifies the exact formula (net income / total assets), which is useful behavioral context beyond the structured data. It does not mention edge cases like division by zero, but this is acceptable for a simple math tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the tool's purpose and formula with no wasted words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter math tool with a documented output schema and safety annotations, the description provides the essential formula and unit. It does not cover edge cases like zero total assets, but the tool's inherent simplicity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for both parameters (net income, total assets). The description clarifies the relationship between them as a ratio and states the result is a percent, adding meaningful context beyond the schema's minimal descriptions.
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 clearly specifies the tool computes Return on Assets as net income divided by total assets, expressed as a percent. This precise formula distinguishes it from sibling tools like roe and roi.
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 implies the tool is used for calculating Return on Assets, but it does not explicitly state when to prefer it over alternatives such as ROE or ROI. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roeReturn on EquityARead-onlyIdempotentInspect
Return on equity, percent: net income over shareholders' equity.
| Name | Required | Description | Default |
|---|---|---|---|
| equity | Yes | Shareholders' equity. | |
| netIncome | Yes | Net income. |
Output Schema
| Name | Required | Description |
|---|---|---|
| roePct | No | Return on equity, percent (null if equity<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so the description's value lies in stating the exact formula ('net income over shareholders' equity') and noting the output is a percentage. This adds meaningful behavioral context beyond the annotations, though it omits edge cases like zero equity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the metric, the formula, and the percentage output. It contains no superfluous words and is well-structured for quick consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deterministic calculation with an output schema available, the description fully conveys the purpose and calculation method. It states the formula and the output format, leaving no critical gaps for the agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for both 'equity' and 'netIncome.' The tool description only restates these terms within the formula, adding no new semantic information beyond what the schema already supplies, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as 'Return on equity, percent: net income over shareholders' equity,' stating both the metric and the exact formula. This distinguishes it from sibling metrics like ROA (return on assets) and ROI (return on investment) by explicitly referencing equity.
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 implies usage (calculate ROE) but provides no explicit guidance on when to choose this tool over alternatives like ROA or ROI. There are no stated exclusions or references to sibling tools, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roiROIARead-onlyIdempotentInspect
Return on investment: total percent gain, plus the annualized rate when a holding period in years is given.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Optional. Holding period in years, for the annualized rate. | |
| initial | Yes | Amount invested. | |
| finalValue | Yes | Ending value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| roiPct | No | Total return, percent. |
| annualizedPct | No | Annualized return, percent (null if no years). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safe read-only nature is covered. The description adds the behavioral nuance of conditional annualized rate, but doesn't disclose edge cases, rounding, or output structure, which is acceptable given the output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the tool's purpose and includes the key conditional. Every word earns its place, and there is no redundant padding or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool with three well-documented parameters and an output schema, the description suffices. It explains both the base and optional annualized behavior without needing to detail return values, as the output schema covers that. Slight deduction for not elaborating on what 'annualized rate' means mathematically, but this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains each parameter. The description rephrases the formula relationship (percent gain from initial/finalValue, annualized with years) but doesn't add significant meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes 'total percent gain' and optionally 'annualized rate', which is specific and action-oriented. It distinguishes the core ROI calculation from related metrics like holding-period-return or percentage-change, though it doesn't explicitly name alternatives.
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 implies usage by noting the annualized rate is provided 'when a holding period in years is given', but it doesn't explicitly state when to use this tool over siblings like CAGR or return-stats. No exclusions or alternative recommendations are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rule-of-72Rule of 72ARead-onlyIdempotentInspect
Years to double: the rule-of-72 estimate (72/rate) and the exact figure (ln2 / ln(1+rate)).
| Name | Required | Description | Default |
|---|---|---|---|
| ratePct | Yes | Growth rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| years72 | No | 72/rate estimate. |
| exactYears | No | Exact doubling time. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns both the rule-of-72 estimate and the exact figure, adding behavioral detail beyond the annotations. It also provides the mathematical formulas, which is useful context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core purpose ('Years to double') and includes all necessary details without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter calculation with an output schema present, the description sufficiently explains what the tool does, including both the estimate and exact formula. No further context is needed for the agent to select and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents ratePct as 'Growth rate in percent.' The description mentions 'rate' in formulas but doesn't add new semantic information about the parameter. Since schema coverage is 100%, a baseline 3 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 explicitly states the tool calculates 'Years to double' via the rule-of-72 estimate and the exact formula, making the purpose clear and distinguishing it from sibling financial calculators. It names the specific resource (rule-of-72) and the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase 'Years to double' provides a clear context for when to use this tool. However, it does not explicitly mention alternatives or 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.
salary-to-hourlySalary to HourlyARead-onlyIdempotentInspect
Hourly rate implied by an annual salary.
| Name | Required | Description | Default |
|---|---|---|---|
| annualSalary | Yes | Annual salary. | |
| hoursPerWeek | No | Hours per week (default 40). | |
| weeksPerYear | No | Weeks per year (default 52). |
Output Schema
| Name | Required | Description |
|---|---|---|
| hourly | No | Hourly rate (null if hours<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so no contradiction exists. The description adds minimal behavioral context beyond the core meaning; the formula and default assumptions are not stated but are partially covered by the schema's parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy or wasted words. It conveys the purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, idempotent calculation with fully documented parameters and an output schema, the minimal description is adequate. It could include the formula, but the schema and annotations already cover the essential operational details.
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%: all parameters have clear descriptions, including defaults for hoursPerWeek and weeksPerYear. The description adds no additional parameter-level nuance, so the baseline score of 3 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 specifies the exact resource and action: computing the hourly rate implied by an annual salary. It clearly distinguishes this from the sibling tool hourly-to-salary, which performs the inverse conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: this tool is used when you have an annual salary and want the equivalent hourly rate. However, there is no explicit guidance on when to prefer this over alternatives, nor does it mention that hourly-to-salary is the inverse operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
savings-rateSavings RateARead-onlyIdempotentInspect
Fraction of income saved (savings divided by income). Returns a decimal.
| Name | Required | Description | Default |
|---|---|---|---|
| income | Yes | Income. | |
| savings | Yes | Amount saved. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds minimal behavioral context, only noting that it 'returns a decimal.' It does not explain edge cases (e.g., zero income) or other behavioral traits, but given the annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing only the essential information: the definition, formula, and output type. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation with full schema coverage and an output schema, the description provides all necessary information: the formula and return type. There is no missing context for the agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly states 'savings divided by income,' which clarifies the exact roles of the two parameters beyond the sparse schema descriptions. This adds meaningful semantic value, ensuring the agent knows how the inputs relate.
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 clearly defines what the tool does: it computes the fraction of income saved, providing the formula (savings divided by income) and the return type (decimal). This is specific and complete, distinguishing it from other tools by its unique calculation.
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 provides no guidance on when to use this tool versus alternatives. It does not mention suitable contexts or exclusions, and the long sibling list suggests many similar financial calculations, making this a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sharpe-ratioSharpe RatioARead-onlyIdempotentInspect
Sharpe ratio: excess mean return per unit of volatility, (mean - riskFree) / stdev. Null when volatility is undefined or zero.
| Name | Required | Description | Default |
|---|---|---|---|
| returns | Yes | The return series (percents). | |
| riskFreePct | No | Risk-free rate in the same unit (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| sharpe | No | Sharpe ratio (null if no volatility). |
| meanPct | No | Mean return. |
| stdevPct | No | Volatility. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish the operation as read-only and idempotent. The description adds a key edge-case behavior—returning null when volatility is undefined or zero—which is useful context beyond the annotations, though it does not elaborate on other potential inputs like empty arrays.
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?
One compact sentence packs the definition, formula, and null-case behavior without excess. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple financial calculator, the description covers the core computation and edge-case null behavior. It relies on the output schema for return details and doesn't specify minimum data length, but this is minor given the low complexity and strong annotations.
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 descriptions cover both parameters fully (100%). The description's formula clarifies the role of riskFreePct as a subtraction from the mean and stdev as the denominator, adding relational meaning beyond the schema's simple definitions.
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 precisely defines the Sharpe ratio with its formula and identifies the resource (a return series). It distinguishes the tool from siblings like return-stats or real-return by naming the specific metric, though it lacks an explicit action verb like 'calculate'.
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?
No guidance on when to use this tool versus alternatives. It does not mention exclusions or conditions under which a different metric would be more appropriate, so the agent must infer usage context from the formula alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
straight-line-depreciationStraight-Line DepreciationBRead-onlyIdempotentInspect
Straight-line depreciation: value falling evenly to a salvage value over a useful life.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Starting value. | |
| salvage | Yes | Salvage value. | |
| usefulYears | Yes | Useful life in years. | |
| yearsElapsed | Yes | Years elapsed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| value | No | Result value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to repeat those. It adds the core behavior of even depreciation, but does not disclose edge cases (e.g., yearsElapsed beyond useful life) or return format. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core concept. There is zero waste; every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple financial calculator with a fully documented input schema and an output schema, the description is sufficiently complete. It explains the concept and the presence of an output schema means return values are covered elsewhere. Minor gaps like parameter constraints or expected value ranges are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage of the four parameters with clear descriptions. The description adds general context about the method but does not elaborate on parameter specifics beyond what the schema already contains. Baseline 3 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 clearly states the tool's function: it calculates straight-line depreciation by evenly spreading value decline to a salvage value over a useful life. This distinguishes it from other depreciation methods by naming the specific approach. It is more specific than a mere restatement of the title.
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?
No guidance is given on when to use this tool versus alternatives like declining-balance or sum-of-years-digits. Given the many depreciation-related sibling tools, the description lacks explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
successive-discountsSuccessive DiscountsARead-onlyIdempotentInspect
Stacked discounts applied in order: the final price and the effective single discount rate.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Original price. | |
| discountsPct | Yes | Discounts in percent, applied in order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| finalPrice | No | Final price. |
| effectivePct | No | Effective single discount, percent (null if price=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and not open-world. The description adds the key behavioral detail that discounts are applied sequentially ('in order'), which affects the result, and that both the final price and effective rate are returned. This adds useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action and output. No redundant words or filler; every phrase contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, pure calculation tool with two fully documented parameters, annotations for read-only/idempotent behavior, and an output schema (confirmed by context), the description fully covers the tool's purpose, inputs, and outputs. No critical information 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?
The input schema already covers both parameters with descriptions: 'price' as original price and 'discountsPct' as discounts in percent applied in order. The description reiterates these concepts but does not add new parameter-specific meaning. With 100% schema coverage, a baseline of 3 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 clearly states the tool computes the final price and effective single discount rate from stacked discounts applied in order. It uses a specific verb ('applied', 'final price') and distinctly differentiates from sibling tools like 'discount' or 'effective-rate' by focusing on successive discounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Stacked discounts applied in order' implies when the tool is appropriate, but there is no explicit mention of when not to use it or how it compares to alternative tools like 'discount' for a single discount. Context is clear but no exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sum-of-years-digitsSum-of-Years' Digits DepreciationBRead-onlyIdempotentInspect
Sum-of-the-years'-digits depreciation: the depreciable base weighted toward the early years.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (1-based). | |
| value | Yes | Initial cost. | |
| salvage | Yes | Salvage value. | |
| usefulYears | Yes | Useful life in years. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bookValue | No | Book value at year end. |
| depreciation | No | Depreciation this year. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds that depreciation is weighted toward early years, which is useful conceptual context, but it does not disclose edge cases like year out of range or behavior for year 0.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It immediately states the method and its defining trait.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator tool with a complete schema, output schema, and clear annotations, the description is nearly sufficient. It could be more explicit that the result is computed for a specific 'year' parameter, but the schema already documents that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear definitions for value, salvage, usefulYears, and year. The description's mention of 'depreciable base' hints at the relationship between value and salvage, but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the depreciation method and its key characteristic of weighting the depreciable base toward early years, which distinguishes it from straight-line and other methods. However, it lacks an explicit verb like 'calculates' and does not state that it returns the depreciation for a given year.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as declining-balance or double-declining-depreciation. The description only states the method's characteristic, not selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax-equivalent-yieldTax-Equivalent YieldARead-onlyIdempotentInspect
Tax-equivalent yield: the taxable yield that matches a tax-free (e.g. muni) yield. Percents in and out.
| Name | Required | Description | Default |
|---|---|---|---|
| taxRatePct | Yes | Marginal tax rate in percent. | |
| taxFreeYieldPct | Yes | Tax-free yield in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| taxEquivalentPct | No | Tax-equivalent yield, percent (null if tax>=100%). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior; the description adds that output is a percentage and defines the financial relationship, which is useful beyond the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tight definition followed by a units note. No wasted words; the core concept is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-input formula with full schema coverage, annotations, and an output schema, the description is sufficient. It could mention the inverse relationship to after-tax-yield, but that is not essential for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both parameters have clear descriptions ('Marginal tax rate in percent' and 'Tax-free yield in percent'). The description only restates the percent convention without adding deeper parameter relationship details.
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 gives a specific definition: computes the taxable yield that matches a tax-free yield (e.g., municipal), distinguishing it from inverse tools like after-tax-yield. It also clarifies units with 'Percents in and out,' making the purpose unmistakable.
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?
Clear context is provided: use when you have a tax-free yield and want its taxable equivalent. It does not explicit name alternatives or when-not conditions, but the scenario is obvious and implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax-from-bracketsTax from BracketsARead-onlyIdempotentInspect
Progressive tax from caller-supplied brackets. No jurisdiction, year, or rates are baked in: pass the brackets yourself. Returns total tax, effective rate, and marginal rate.
| Name | Required | Description | Default |
|---|---|---|---|
| income | Yes | Taxable income. | |
| brackets | Yes | Ordered tax bands. The final band may omit upTo to run to infinity. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tax | No | Total tax. |
| marginalRatePct | No | Marginal rate, percent. |
| effectiveRatePct | No | Effective rate, percent. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and idempotentHint=true, so safety is already covered. The description adds meaningful context: the tool is jurisdiction-agnostic and returns total tax, effective rate, and marginal rate. This goes beyond annotations without contradicting them.
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 concise sentences, front-loaded with the core purpose, no fluff. The key distinction ('no jurisdiction baked in') is stated efficiently, and the return values are listed without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema (not shown but present), annotations covering read-only/idempotent behavior, and schema descriptions covering parameter semantics, the description completes the picture by clarifying the tool's custom-bracket model. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for 'income' and 'brackets' (including the structure of bracket objects). The description reinforces the 'caller-supplied' nature but does not add syntactic detail beyond the schema, so baseline 3 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?
Description clearly states the tool computes progressive tax from caller-supplied brackets, using a specific verb ('calculate' implied by 'progressive tax from') and resource ('brackets'). It distinguishes from siblings by emphasizing the brackets are caller-supplied and no jurisdiction is baked in.
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 explicitly says 'No jurisdiction, year, or rates are baked in: pass the brackets yourself,' which tells when to use this tool (custom brackets) and when not (built-in tax systems). It does not explicitly name alternatives, 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.
tip-splitTip SplitARead-onlyIdempotentInspect
Tip and split: the tip amount, the total, and the per-person share.
| Name | Required | Description | Default |
|---|---|---|---|
| people | No | Number of people (default 1). | |
| tipPct | Yes | Tip in percent. | |
| billAmount | Yes | Bill amount. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | No | Tip amount. |
| total | No | Total with tip. |
| perPerson | No | Per-person share. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, covering the safety and determinism profile. The description does not add behavioral traits beyond these, such as side effects, auth needs, or rate limits. For a simple calculation tool, no further behavioral disclosure is necessary. The description does not contradict annotations, but it also does not enrich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action ('Tip and split') followed by the three outputs. Every word contributes to understanding the tool's purpose. It is concise without missing critical information, and there is no redundancy or fluff.
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?
The tool is a simple calculator with complete schema coverage, an output schema (not shown but noted as present), and annotations that confirm read-only, idempotent behavior. The description sufficiently communicates the core function and outputs. The only gap is explicit usage guidance, but given the tool's simplicity and uniqueness, the description is otherwise complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter (billAmount, tipPct, people) having a description. The tool description mentions the outputs (tip amount, total, per-person share) which indirectly relates to the parameters, but it does not add details beyond what the schema provides. It does not clarify values formats, ranges, or default behaviors beyond the schema's 'default 1' for people. Baseline 3 is appropriate given the schema's thoroughness.
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 clearly states the tool's function: 'Tip and split: the tip amount, the total, and the per-person share.' It identifies the specific outputs (tip amount, total, per-person share) and distinguishes itself from all sibling tools, none of which handle tip calculations. The verb 'split' and the listed outputs make the purpose unambiguous.
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 implies usage: when a user wants to compute a tip or split a bill, this tool is appropriate. However, it does not explicitly state when to use it vs. alternatives, nor does it mention any exclusions or prerequisites. Given the uniqueness of the tool among siblings, the implied usage is clear enough, but explicit guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unit-priceUnit PriceARead-onlyIdempotentInspect
Unit price: price divided by quantity (for comparing pack sizes). Null when quantity is zero.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Price. | |
| quantity | Yes | Quantity / size. |
Output Schema
| Name | Required | Description |
|---|---|---|
| unitPrice | No | Price per unit (null if quantity=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate those. It adds an important edge case: 'Null when quantity is zero', which goes beyond the annotations and schema. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It packs the formula, usage context, and critical edge case efficiently, front-loading the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only calculator with an output schema, the description covers the formula, use case, and a critical edge case. Nothing essential is missing, and the output schema handles return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters with descriptions (100% coverage), and the description reinforces the relationship between them by defining the formula (price divided by quantity). It also explains the zero-quantity edge case, adding semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'price divided by quantity' which unambiguously defines the computation, and adds 'for comparing pack sizes' to clarify the use case. This clearly distinguishes it from all sibling financial calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for comparing pack sizes' provides clear context for when to use this tool. It doesn't explicitly mention exclusions or alternatives, but the context is sufficient for such a simple calculator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
units-of-production-depreciationUnits-of-Production DepreciationARead-onlyIdempotentInspect
Units-of-production depreciation: the depreciable base spread over total expected units, charged by the units used this period.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Initial cost. | |
| salvage | Yes | Salvage value. | |
| totalUnits | Yes | Total expected units over the life. | |
| unitsThisPeriod | Yes | Units produced this period. |
Output Schema
| Name | Required | Description |
|---|---|---|
| depreciation | No | Depreciation this period (null if totalUnits<=0). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, pure calculation. The description adds the core calculation logic (how the depreciable base is allocated), but does not disclose potential edge cases such as what happens when unitsThisPeriod exceeds remaining units, or how salvage value is handled in the formula. It provides minimal additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the tool name and provides the essential calculation concept in a structured, readable way. There is zero wasted wording; every part contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with complete parameter descriptions and an output schema, the description explains the core method sufficiently. It lacks usage guidance relative to sibling depreciation tools, but that is more of a usage-guideline concern. Given the annotations and output schema, the description is complete enough for an agent to invoke the tool correctly for standard calculations.
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?
All four parameters are already described in the schema (100% coverage): value, salvage, totalUnits, unitsThisPeriod. The description uses 'depreciable base' to imply value minus salvage, and 'units used this period' maps to unitsThisPeriod, but it does not add new semantics or clarify units or formula syntax beyond the schema descriptions. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly explains the tool's purpose: it computes units-of-production depreciation by spreading the depreciable base over total expected units and charging based on units used this period. It uses a specific method name and distinguishes itself from time-based methods like straight-line depreciation through the unit-based allocation concept.
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 provides no guidance on when to use this tool versus alternative depreciation methods (e.g., straight-line, declining-balance) or other financial tools. It does not mention scenarios where units-of-production is appropriate (e.g., usage-based assets) or any exclusions. The implied usage is only that it's a depreciation calculator, but no differentiation from siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vatVATARead-onlyIdempotentInspect
Value-added tax (MwSt/USt, sales tax) on a price. By default adds the tax to a net price; with inclusive=true treats the amount as gross and extracts the tax. The rate is always an input (19 or 7 for Germany, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | The price. | |
| ratePct | Yes | VAT rate in percent (e.g. 19 or 7). | |
| inclusive | No | false (default): amount is net, add the tax. true: amount is gross, extract the tax. |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | Net price. |
| tax | No | Tax amount. |
| gross | No | Gross price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description explains the calculation behavior (adding vs. extracting) and clarifies that the rate must always be supplied. No side effects or hidden behavior are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, then the mode behavior, then a parameter note. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple pure-function tool with complete schema descriptions and an output schema, this description adequately covers the behavior, input modes, and rate requirement. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mostly restates what the schema already says for amount, ratePct, and inclusive, adding only minor context about German VAT rates.
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 clearly identifies the tool's purpose: computing value-added tax on a price, with modes for net-to-gross and gross-to-net. It lacks an explicit verb like 'calculates' but the meaning is unambiguous and distinct from sibling tools.
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 clear usage conditions: by default it adds tax to a net price, and with inclusive=true it extracts tax from a gross amount. It does not explicitly name alternatives, but the two modes cover the main use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
waccWACCARead-onlyIdempotentInspect
Weighted average cost of capital: equity and after-tax debt weighted by the capital structure. Percents in and out.
| Name | Required | Description | Default |
|---|---|---|---|
| debt | Yes | Market value of debt. | |
| equity | Yes | Market value of equity. | |
| taxRatePct | Yes | Tax rate in percent. | |
| costDebtPct | Yes | Cost of debt in percent. | |
| costEquityPct | Yes | Cost of equity in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| waccPct | No | WACC, percent (null if no capital). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral detail: inputs and outputs are in percent, and tax is applied to debt after-tax, which clarifies the calculation logic beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences pack the essential information: the definition, the formula components, and the unit convention. No unnecessary words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with full schema descriptions and an output schema, the description covers the core calculation logic and units. It omits edge cases, but these are not needed for a tool of this complexity.
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%, with each parameter having a description. The description adds conceptual context about the weighting formula, but does not provide additional per-parameter semantics beyond the schema, so a baseline of 3 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 clearly identifies the tool as computing the weighted average cost of capital, specifying the components (equity and after-tax debt) and weighting by capital structure. This distinguishes it from siblings like cap-rate or required-return by naming the precise financial metric.
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 provides clear context: it is for WACC calculation, with a note that debt is after-tax. It does not explicitly mention alternatives or when-not-to-use, but the formula description makes the intended use obvious, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xirrXIRRARead-onlyIdempotentInspect
Date-aware internal rate of return: the annual rate that zeroes the XNPV of irregular dated cashflows. Null if no rate fits.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Dated cashflows; the first date is the valuation date. |
Output Schema
| Name | Required | Description |
|---|---|---|
| xirrPct | No | Date-aware IRR, percent (null if none). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, setting the safety context. The description adds behavioral value by specifying the output unit ('annual rate') and the null behavior when no rate fits, which is useful beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose and a key edge-case behavior. Every clause adds meaning, with no redundancy or 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 a full input schema and read-only/idempotent annotations, the description covers what the tool does, the input nature, and the null result case. It is slightly less explicit about differentiation from related tools like 'irr' or 'xnpv', but overall it is complete for a calculator of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all parameters thoroughly: 'cashflows' as an array with 'date' (ISO date) and 'amount' (outflows negative), plus the note that the first date is the valuation date. The description's mention of 'irregular dated cashflows' reinforces the date-aware nature but adds no new parameter-level semantics.
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 clearly states what the tool does: computes a date-aware internal rate of return that zeroes the XNPV of irregular dated cashflows. It uses a specific verb ('returns') and resource ('internal rate of return'), and the phrase 'Date-aware' distinguishes it from the sibling 'irr' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for irregular dated cashflows by emphasizing 'Date-aware' and 'irregular dated cashflows', which gives clear context for when to use it. However, it does not explicitly name alternatives like 'irr' for regular periodic cashflows, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xnpvXNPVARead-onlyIdempotentInspect
Date-aware net present value: each amount discounted by its fractional years (act/365) from the first cashflow's date. Annual rate in percent.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Dated cashflows; the first date is the valuation date. | |
| annualRatePct | Yes | Annual discount rate in percent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| npv | No | Date-aware net present value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, establishing a safe, repeatable operation. The description adds meaningful behavioral context beyond annotations by specifying the act/365 day-count convention and the role of the first cashflow date as the valuation base, which are not present in the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The first sentence immediately states the core purpose, and the second adds the key calculation detail. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema, strong annotations, and presence of an output schema, the description sufficiently covers the method and usage context. It does not discuss edge cases like unordered cashflows, but that is not essential for this type of 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?
The input schema provides 100% description coverage for both parameters, including the meaning of dates, amounts, and annual rate units. The description adds no substantive new parameter semantics beyond restating that the rate is annual in percent, so the baseline of 3 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 clearly identifies the tool as a date-aware net present value calculation with specific verb 'discounted' and resource 'cashflows'. It distinguishes itself from sibling tools like 'npv' by emphasizing fractional-year (act/365) discounting based on the first cashflow's date.
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 signals its intended use case by highlighting 'date-aware' and 'fractional years', implying suitability for irregular-dated cashflows rather than periodic ones. However, it does not explicitly name alternatives or state when not to use it, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yield-to-maturityYield to MaturityARead-onlyIdempotentInspect
Bond yield to maturity: the nominal annual yield that prices a bond at the given price, with periodic coupons and face returned at maturity. Solved numerically. Returns a percent, or null.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Current bond price. | |
| years | Yes | Years to maturity. | |
| faceValue | Yes | Face (par) value repaid at maturity. | |
| couponRatePct | Yes | Annual coupon rate in percent of face. | |
| periodsPerYear | No | Coupon periods per year (default 2 = semiannual). |
Output Schema
| Name | Required | Description |
|---|---|---|
| yieldPct | No | Nominal annual yield, percent (null if none). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent hints, so the description does not need to repeat those. It adds valuable context by stating 'Solved numerically' and 'Returns a percent, or null', disclosing the iterative nature and the possibility of no solution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the definition, and contains no redundant information. Every phrase contributes to understanding the tool's behavior and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers essential aspects: definition, return type, and null case. With good annotations and a rich output schema, the description is sufficient for an agent to select and invoke the tool correctly. It could mention edge cases like invalid inputs, but that is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add per-parameter meaning beyond what the schema already provides; it only provides global context about periodic coupons and nominal annual yield, which does not significantly enhance parameter understanding.
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 clearly defines the tool's output as the nominal annual yield that prices a bond at the given price, with periodic coupons and face returned at maturity. This distinguishes it from sibling tools like bond-price or current-yield by specifying the bond context and that it solves for the yield.
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 implies usage when YTM needs to be computed from a price, but it does not explicitly mention when to use it versus alternatives or when not to use it. The phrase 'Solved numerically' hints at iterative solving, but there is no direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zero-coupon-priceZero-Coupon PriceARead-onlyIdempotentInspect
Price of a zero-coupon bond: face value discounted to today at the yield.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | Years to maturity. | |
| yieldPct | Yes | Annual yield in percent. | |
| faceValue | Yes | Face value. | |
| compoundingPerYear | No | Compounding periods per year (default 1). |
Output Schema
| Name | Required | Description |
|---|---|---|
| price | No | Zero-coupon price. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds the core computational logic (discounting face value at yield), which is meaningful context beyond annotations. It does not disclose edge-case behavior (e.g., negative yields), but this is a simple calculation with schema covering compounding and output schema covering results.
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?
A single, front-loaded sentence that states exactly what the tool does with no redundancy or filler. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the comprehensive parameter schema, annotations, and presence of an output schema, the description is sufficient. It explains the calculation concept, and the structured fields cover the remaining details. The only minor gap is explicit usage guidance, which is already accounted for in the usage dimension.
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 parameters are fully documented. The description maps 'face value' and 'yield' to faceValue and yieldPct, and 'to today' implicitly refers to years, but adds no new details about compoundingPerYear or default behavior. It meets the baseline without enhancing understanding.
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 clearly states the tool computes the price of a zero-coupon bond by discounting face value at the yield. This explicitly distinguishes it from siblings like 'bond-price' (which likely handles coupon bonds) and 'current-yield'.
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 context of use is implied: when pricing a zero-coupon bond. However, there is no explicit comparison to alternatives (e.g., 'for coupon bonds, use bond-price'), nor any exclusions. The name and description make the use case clear, but guidance is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityBmaintenance63 deterministic quant computation tools for autonomous financial agents. Options pricing, derivatives, risk metrics, portfolio optimization, statistics, crypto/DeFi, macro/FX, time value of money. 1,000 free calls/day, no signup required.7411MIT
- AlicenseBqualityCmaintenance39 tax tools for US individual taxpayers — federal/state tax calculations, credits, deductions, retirement strategies, audit risk, and tax planning. All calculations run locally, no data leaves the machine. Supports TY2024 and TY2025 (One Big Beautiful Bill Act).443428MIT
- AlicenseAqualityBmaintenance17 deterministic personal-finance tools across 7 countries (US, UK, CA, AU, AE, SA, India) plus Sharia-compliant Islamic finance (Zakat, Murabaha, Ijarah, Mudarabah, Hajj savings, halal stock screening). Wraps the open-source calcnook engine — zero API keys, pure stdlib, MIT.171MIT
- AlicenseAqualityBmaintenanceDeterministic US equity-compensation tax optimizer. Six tools cover ISO/AMT exercise scheduling, NSO sell-vs-hold, RSU vest-and-sell, single-stock concentration, protective put / zero-cost collar pricing, and Section 1202 QSBS qualification. Federal plus 50-state plus DC tax math.8795MIT