Skip to main content
Glama

HomeCalc — Canadian Mortgage & Tax Calculators

Server Details

34 read-only Canadian mortgage, tax and home-buying tools, including nationwide LTT coverage.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.6/5.0

Scored across 34 tools

Disambiguation3/5

Descriptions are detailed, but several clusters overlap heavily: mortgage_affordability, mortgage_qualifier, and mortgage_stress_test all return max price/GDS/TDS at the OSFI rate; debt_service_ratio and debt_to_income are near-duplicates; mortgage_prepayment overlaps with mortgage_amortization's optional prepayment. Descriptions help resolve most cases, but selection remains error-prone.

Naming Consistency4/5

All names are snake_case and descriptive, with predictable domain terms such as mortgage_, bc_, and capital_. It is not a strict verb_noun pattern because these are calculators, and a few names are more ad hoc (seventy_percent_rule, insured_insurable_uninsured), but there is no convention mixing.

Tool Count2/5

34 tools is well past the 25-tool threshold and creates a heavy surface for an agent to navigate. The breadth is real (mortgage, tax, rental, development), but many calculators could be consolidated or grouped, so the count feels excessive.

Completeness5/5

The surface covers the domain broadly: mortgage payment/amortization/prepayment/penalty/renewal, affordability and stress testing, CMHC/down payment, closing and selling costs, LTT/property tax, rental analysis, flipping/development, capital gains/income tax/CCA, and provincial rules. No obvious core calculator is missing.

Available Tools

34 tools
bc_home_flipping_taxBC Home Flipping Tax CalculatorA
Read-only
Inspect

Estimate British Columbia's home flipping tax on a property sold within 730 days: 20% tapering to 0% between 366 and 730 days, with a $20,000 primary-residence deduction (only if held at least 365 days).

NameRequiredDescriptionDefault
daysHeldYesDays owned before the sale
taxableIncomeYesProceeds minus cost to acquire minus cost to improve (may be negative)
isPrimaryResidenceNoLived in it as a primary residence

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, non-destructive calculation. The description adds valuable behavioral context beyond that: the 20%-to-0% taper, the 366-730 day range, and the $20,000 deduction condition. It does not specify the exact return shape or edge-case behavior, so it falls short of a 5.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every clause contributes either jurisdiction, scope, rate schedule, or deduction eligibility.

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

Completeness4/5

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

For a simple three-parameter calculator with no output schema, the description provides the essential formula and eligibility rules. It is nearly complete, though it could clarify the exact return value and treatment of edge cases such as sales outside the 730-day window.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented. The description still adds computational meaning by tying the taper to days held and conditioning the deduction on holding at least 365 days, which helps interpret `daysHeld` and `isPrimaryResidence` beyond their schema text.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: estimating British Columbia's home flipping tax. It adds scope and the exact tax-rate structure, which clearly distinguishes it from the generic sibling `house_flipping` and other tax calculators.

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

Usage Guidelines3/5

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

Usage is implied by the stated 730-day sale window and primary-residence condition, but there is no explicit guidance on when to choose this tool over siblings such as `house_flipping` or `capital_gains_tax`. No exclusions or alternative scenarios are named.

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

bc_rescission_periodBC Home Buyer Rescission Period CalculatorA
Read-only
Inspect

British Columbia's 3-business-day home buyer rescission period: the deadline (11:59 p.m. on the third business day after acceptance, skipping weekends and BC statutory holidays) and the 0.25% fee to rescind.

NameRequiredDescriptionDefault
purchasePriceYesAccepted purchase price in CAD, for the 0.25% fee
acceptanceDateYesDate the offer was accepted, YYYY-MM-DD

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a safe read-only, closed-world computation, so the safety burden is covered. The description adds genuine behavioral substance beyond that: it discloses the deadline rule (11:59 p.m., third business day, skipping weekends and BC statutory holidays) and the fee rate, which tells the agent exactly what the output means. It stops short of describing the output shape or edge cases such as holidays falling on the boundary.

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

Conciseness5/5

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

A single dense sentence with the core subject front-loaded, followed by the two outputs. No filler, no repetition of the title, and every clause (date rule, holiday exclusion, fee rate) carries information.

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

Completeness4/5

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

For a two-parameter, closed-world calculator with no output schema, the definition provides enough to call it correctly and understand what the results represent. A slight gap remains: it does not state the output fields or what happens if the acceptance date is a weekend/holiday, but this is minor for a computation this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already explains the price is used for the 0.25% fee and the date format. The description restates the 0.25% rate and the counting rule but adds little per-parameter detail beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific legal/financial computation (BC home buyer rescission period) and states both results it produces: the deadline and the 0.25% fee. It is clearly distinguishable from siblings like bc_home_flipping_tax or land_transfer_tax, which are different BC-specific calculators.

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

Usage Guidelines3/5

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

Usage is implied by the stated inputs (a date of acceptance and an accepted price), so an agent can infer it is used after an offer is accepted. However, there is no explicit when-to-use or when-not-to-use guidance, no mention that this applies only to BC residential resale purchases, and no named alternatives.

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

capital_cost_allowanceCapital Cost Allowance (CCA) CalculatorA
Read-only
Inspect

CRA capital cost allowance on a business or rental asset: class rate, year-1 CCA (half-year rule, AIIP or the post-2024 accelerated incentive, by acquisition date), tax saving at your marginal rate, a 5-year schedule, and recapture or terminal loss on disposal.

NameRequiredDescriptionDefault
ccaClassNoCCA class id (e.g. class8, class50), used when assetPreset='custom'
provinceNoProvince/territory code for the marginal tax rate, e.g. ONON
assetCostYesCapital cost of the asset in CAD
assetPresetNoAsset type; 'custom' uses ccaClassbuilding
existingUCCNoUndepreciated capital cost already in the class; 0 for a new purchase
annualIncomeNoTaxable income before CCA, for the marginal rate
disposalDateNoDate sold, YYYY-MM-DD, with disposalProceeds
acquisitionDateNoDate acquired, YYYY-MM-DD; omitted = half-year rule
disposalProceedsNoProceeds if the asset is sold, for recapture or terminal loss
netRentalIncomeBeforeCCANoRental building only: net rental income before CCA (CCA can't create a rental loss)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description's job is to add computation semantics — which it does: half-year rule, AIIP, post-2024 accelerated incentive keyed to acquisition date, and a 5-year schedule. It also flags the non-obvious rule that CCA can't create a rental loss. It stops short of stating assumptions or rounding/interpretation caveats.

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

Conciseness4/5

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

A single dense sentence, front-loaded with the resource and scoping terms, with no filler. It is long and clause-heavy but every clause names a distinct computed output, so little could be cut without losing information.

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

Completeness4/5

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

With 10 parameters (1 required), no output schema, and only a single-sentence description, the enumeration of returned figures (rate, year-1 CCA, tax saving, 5-year schedule, recapture/terminal loss) effectively substitutes for a missing return-value spec. What remains thin is the relationship between optional inputs (existingUCC, disposal fields) and the outputs, but the core is complete for a pure calculator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries per-parameter meaning and the baseline is 3. The description adds only marginal value — the note that acquisition date selects the half-year/AIIP/accelerated treatment, and the rental-loss cap on netRentalIncomeBeforeCCA — without explaining how existingUCC or disposalProceeds feed the schedule.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (CRA capital cost allowance on a business or rental asset) and enumerates exactly what it computes: class rate, year-1 CCA with half-year rule/AIIP/accelerated incentive, tax saving, 5-year schedule, recapture/terminal loss. This makes it clearly distinct from siblings like income_tax or capital_gains_tax without opening any schema.

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

Usage Guidelines3/5

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

Usage is implied by the domain ('business or rental asset', CRA), and the output list hints at when an agent would want it. However, there is no explicit when-to-use statement and no routing to or away from alternatives such as capital_gains_tax or income_tax, leaving the agent to infer the boundary.

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

capital_gains_taxCanadian Capital Gains Tax CalculatorA
Read-only
Inspect

Estimate Canadian capital gains tax on selling real estate, stocks, crypto, a business or a rental. Applies the flat 50% inclusion rate, principal-residence exemption, lifetime capital gains exemption for QSBC shares, capital-loss offsets and rental CCA recapture, then taxes the gain on top of other income at federal + provincial brackets.

NameRequiredDescriptionDefault
isQSBCNoBusiness only: qualified small business corporation shares (LCGE)
taxYearNoTax year of the disposition
provinceNoProvince/territory of residenceOntario
assetTypeNoWhat was sold; decides which exemptions applyreal-estate
landValueNoRental only: land portion of the sale price (splits land vs building gain)
salePriceYesGross sale proceeds in CAD
yearsOwnedNoYears owned (for principal-residence proration)
buyingCostsNoLand transfer tax, legal and other buying costs
annualIncomeNoOther annual income in CAD; the gain is taxed on top of it
sellingCostsNoCommission, legal and other selling costs
taxpayerTypeNoWho sold the assetindividual
capitalLossesNoCapital losses (prior or current) to offset the gain
lcgeRemainingNoRemaining lifetime capital gains exemption room in CAD
purchasePriceYesOriginal purchase price in CAD
yearsDesignatedNoYears designated as your principal residence
ccaClaimedToDateNoRental only: total CCA claimed to date
capitalImprovementsNoCapital improvements added to the adjusted cost base
isPrincipalResidenceNoReal estate only: claim the principal residence exemption
originalBuildingCostNoRental only: original building cost for CCA recapture

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/openWorldHint=false/destructiveHint=false, so the safety profile is covered. The description adds real behavioral substance: the 50% inclusion rate, principal-residence and LCGE treatment, loss offsets, CCA recapture, and stacking on top of other income. It omits any caveat that results are an estimate rather than filing-grade tax advice.

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

Conciseness4/5

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

Two sentences, front-loaded with the purpose, then a dense but purposeful list of the tax mechanics applied. Every clause maps to a real capability; the run-on second sentence is long but not padded.

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

Completeness3/5

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

For a 19-parameter calculator with no output schema, the description explains the method well but says nothing about the shape of the result (federal vs provincial breakdown, total tax, effective rate, exemption used). An agent cannot tell what it will get back or how to interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 19 parameters is already documented with types, defaults, enums and meanings. The description adds only topical framing (which asset types and exemptions exist) and no parameter-level detail, so baseline 3 applies.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Estimate') and resource ('Canadian capital gains tax') and enumerates the covered asset classes, which separates it from income_tax and land_transfer_tax. It does not explicitly name which sibling to use for overlapping scenarios (e.g. BC home flipping), 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.

Usage Guidelines3/5

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

Usage is only implied by the asset categories and exemption list; there is no explicit 'use this when... / use X instead' guidance. An agent facing a BC-flipping or general-income question gets no routing signal to bc_home_flipping_tax or income_tax.

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

cap_rateCap Rate & Rental Property Calculator (Canada)A
Read-only
Inspect

Canadian rental property analysis: cap rate, net operating income, gross rent multiplier, expense ratio, annual cash flow and cash-on-cash return, with the cap rate compared to typical local yields. Mortgage math uses Canadian semi-annual compounding.

NameRequiredDescriptionDefault
cityNoCity used for the cap-rate benchmark rangeother
downPaymentYesDown payment in CAD. Set equal to purchasePrice for an all-cash purchase.
propertyTypeNoUsed for down payment warningssingle-family
purchasePriceYesPurchase price in CAD
vacancyRatePctNoVacancy allowance as a percent of gross rent
interestRatePctNoMortgage rate as a percent, e.g. 5.49
monthlyGrossRentYesGross monthly rent for all units in CAD
amortizationYearsNoMortgage amortization in years
annualOperatingExpensesYesAnnual operating expenses in CAD (tax, insurance, management, maintenance, landlord utilities); excludes the mortgage

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely non-obvious behavioral detail no annotation carries: mortgage math uses Canadian semi-annual compounding, and the cap rate is benchmarked against typical local yields. It stops short of 5 because it never mentions the down-payment warnings the schema alludes to, nor any failure/validation behavior.

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

Conciseness4/5

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

Two sentences, front-loaded with the domain and the metric list, with the mortgage convention as a trailing caveat. No filler and no restatement of the tool name. Slightly dense as a comma run, but every clause carries information.

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

Completeness4/5

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

For a 9-parameter calculator with no output schema, listing the returned metrics plus the compounding convention covers most of what an agent needs to call it and trust the result. The gap is that warning behavior (propertyType is 'used for down payment warnings') and the interpretation of the benchmark comparison are never surfaced in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the nine parameters (including the city enum used for benchmarking, and annualOperatingExpenses explicitly excluding mortgage) is already documented in the schema. The description adds only the semi-annual-compounding convention, which is a computation note rather than parameter-level meaning. Baseline 3 applies.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific analysis domain (Canadian rental property analysis) and enumerates the exact metrics produced: cap rate, NOI, gross rent multiplier, expense ratio, cash flow, cash-on-cash return. That is far more concrete than the name 'cap_rate' alone. It stops short of 5 because it never explicitly distinguishes itself from the mortgage-oriented siblings (mortgage_payment, mortgage_affordability), leaving the agent to infer the boundary.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus the eleven siblings, and no prerequisites are stated. An agent must infer that 'Cap Rate & Rental Property Calculator' is chosen over mortgage_payment when full rental-property underwriting is wanted. There are no exclusions and no explicit when-to-use clause.

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

closing_costsClosing Cost Calculator (Canada)B
Read-only
Inspect

Cash needed to close a Canadian home purchase in any province or territory: land transfer tax (with first-time-buyer rebates, Toronto MLTT, NRST), land title and mortgage registration fees (listed separately), CMHC premium + PST, legal/inspection/appraisal/moving allowances, new-build GST/HST.

NameRequiredDescriptionDefault
provinceNoProvince or territoryOntario
appraisalNoAppraisal in CAD
homePriceYesPurchase price in CAD
isTorontoNoOntario only: in the City of Toronto (adds MLTT)
legalFeesNoLegal fees allowance in CAD
occupancyNoNew builds: live in it or rent it outprimary
movingCostsNoMoving costs in CAD
propertyTypeNoResale or newly builtexisting
downPaymentPctNoDown payment as a percent of price
homeInspectionNoHome inspection in CAD
isForeignBuyerNoForeign buyer (Ontario NRST / Toronto MNRST)
titleInsuranceNoTitle insurance in CAD
isFirstTimeBuyerNoFirst-time buyer (LTT rebates where they exist)
amortizationYearsNoAmortization in years (30 adds the CMHC surcharge)
propertyTaxAdjustmentNoPrepaid property tax reimbursed to the seller

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish that this is a safe, read-only, closed-world calculation, so the safety profile needs no restatement. The description adds useful scope detail (rebates applied, MLTT/NRST triggers, fees broken out separately), but says nothing about the returned breakdown, rounding, or how defaults are applied to untouched cost parameters.

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

Conciseness3/5

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

Purpose is front-loaded in the opening clause, but the remainder is a single run-on parenthetical list that packs a dozen items without grouping or prioritization. It contains no wasted words, yet the density costs scannability.

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

Completeness3/5

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

For a 15-parameter calculator with no output schema, the definition covers inputs well via the schema but leaves the response shape unexplained (presumably a cost-by-cost breakdown plus total). An agent knows what goes in, not what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all 15 parameters individually documented and three enums constrained, so the schema carries parameter meaning fully. The description reinforces which jurisdictions trigger which taxes, but adds no syntax or semantics beyond the schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete outcome (cash needed to close a Canadian home purchase) and enumerates the cost components it aggregates, which distinguishes it from narrower siblings such as land_transfer_tax or cmhc_insurance. It never names those siblings explicitly, but the aggregation framing makes the distinction inferable.

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

Usage Guidelines3/5

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

Usage is only implied: this is the all-in closing estimate, whereas sibling tools cover individual components. There is no explicit 'use this instead of X when Y' statement, and no note on when a single-component tool would be preferable or on assumptions (defaults filled in for unlisted costs).

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

cmhc_insuranceCMHC Mortgage Insurance Premium CalculatorA
Read-only
Inspect

CMHC (mortgage default insurance) premium for any down payment under 20% on a Canadian home: premium rate and amount added to the mortgage, provincial sales tax on the premium (ON, QC, SK — paid in cash at closing), and the insured mortgage total.

NameRequiredDescriptionDefault
provinceNoProvince, for sales tax on the premiumOntario
homePriceYesPurchase price in CAD
downPaymentYesDown payment in CAD
firstTimeBuyerNewBuildNoFirst-time buyer buying a new build (30-year insured amortization)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish this as a safe, offline read calculation, so the description focuses on domain behavior instead: the premium is added to the mortgage while provincial sales tax is paid in cash at closing, and only ON/QC/SK levy that tax. That is genuine behavioral nuance an agent could not get from annotations, though edge cases (insurable price cap, minimum down payment rules) are unstated.

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

Conciseness4/5

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

A single front-loaded sentence that names the subject first, then scopes it, then lists outputs. It is dense with parentheticals but every clause carries information; only minor trimming of the nested aside would improve reading flow.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the returned figures (premium rate, premium amount, sales tax, insured mortgage total) so an agent knows what to expect. Remaining gaps are edge-case handling, such as the insurable price ceiling and behavior when down payment is at or above 20%.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns a bump by clarifying that the province parameter only matters for sales tax and that only ON, QC and SK charge it, which is not apparent from the flat 10-province enum. It says nothing about the firstTimeBuyerNewBuild parameter's 30-year amortization effect beyond what the schema already documents.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (CMHC mortgage default insurance premium) plus precise scope (down payment under 20%, Canadian home) and enumerates the outputs: premium rate, premium amount added to mortgage, provincial sales tax, insured mortgage total. This clearly separates it from siblings like minimum_down_payment and insured_insurable_uninsured.

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

Usage Guidelines4/5

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

The 'under 20% down payment' condition implicitly defines when the tool applies, which is a real usage constraint. It gives no explicit when-not guidance or named alternatives (e.g., for 20%+ down payments the premium is zero and insured_insurable_uninsured applies), 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.

cost_of_sellingCost of Selling a House Calculator (Canada)A
Read-only
Inspect

Total cost of selling a Canadian home and what you walk away with: commission + GST/HST (province starting rates, all overridable), legal fees, mortgage discharge fee and other costs, then net proceeds after the mortgage is paid off.

NameRequiredDescriptionDefault
provinceNoProvince or territory; sets the commonly quoted starting ratesOntario
legalFeesNoSeller's legal fees in CAD
salePriceYesSale price in CAD
structureNoOverride: tiered (e.g. 7% on first $100k) or flat % of the whole price
otherCostsNoOther costs in CAD: staging, repairs, moving
tierThresholdNoOverride, tiered only: price up to which the first-tier rate applies
salesTaxRatePctNoOverride: GST/HST percent charged on the commission
firstTierRatePctNoOverride, tiered only: percent on the first tier, e.g. 7
remainderRatePctNoOverride: percent on the balance (tiered) or whole price (flat)
buyerSideSharePctNoShare of the commission paid to the buyer's brokerage, percent
remainingMortgageNoMortgage balance paid out at closing
mortgageDischargeFeeNoLender's mortgage discharge fee in CAD

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare a safe, read-only, closed-world calculation, so the burden is lower. The description does add genuinely useful behavior: commission rates come from province defaults but are overridable, and the output nets out the mortgage payoff. It does not describe the shape of the result (e.g., line-item breakdown vs single total), which matters given no 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.

Conciseness4/5

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

One sentence, front-loaded with the outcome (total cost and what you walk away with), followed by the component chain. It is dense but every clause maps to a real parameter group; the parenthetical is the only slightly awkward element.

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

Completeness4/5

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

For a 12-parameter calculator with only one required field and no output schema, the description covers all cost categories and the final net-proceeds step, so an agent can call it correctly with minimal input or with overrides. A brief note on what the response contains would close the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented, and the baseline of 3 applies. The parenthetical 'province starting rates, all overridable' and the ordered cost chain give the agent a mental model of how province, structure, and the rate overrides interact, but no individual parameter meaning is added beyond the schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — computing total cost of selling a Canadian home and the net proceeds — and enumerates the cost components (commission + GST/HST, legal fees, discharge fee, other costs, mortgage payoff). This separates it in spirit from buyer-side tools like closing_costs and single-component tools like real_estate_commission, though it never names a sibling explicitly.

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

Usage Guidelines3/5

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

Usage is implied by 'selling a Canadian home,' which scopes it geographically and directionally, but there is no explicit when-to-use/when-not guidance or routing to related calculators (e.g., use real_estate_commission for commission alone, closing_costs for the buy side). The agent must infer the boundary.

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

debt_service_ratioGDS / TDS Debt Service Ratio CalculatorA
Read-only
Inspect

Gross (GDS) and total (TDS) debt service ratios from income, housing costs and other debts, against the 39% / 44% limits. Condo fees count at 50%. Use the payment at the stress-test rate for a qualifying view.

NameRequiredDescriptionDefault
annualIncomeYesApplicant's gross annual income in CAD
heatingMonthlyNoMonthly heating cost in CAD
mortgagePaymentYesMonthly mortgage principal + interest in CAD
condoFeesMonthlyNoMonthly condo fees in CAD (50% counted)
coApplicantIncomeNoCo-applicant gross annual income in CAD (0 if none)
otherDebtsMonthlyNoOther monthly debt payments in CAD
propertyTaxMonthlyNoMonthly property tax in CAD

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this as a non-destructive, closed-world read, so the bar is lower. The description still adds real domain behavior beyond them: the 39%/44% limit thresholds, the 50% condo-fee treatment, and that a qualifying view should use the stress-test-rate payment.

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

Conciseness5/5

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

Two tightly packed sentences with the core computation front-loaded and the two domain rules (condo haircut, stress-test rate) following. No filler or restated title.

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

Completeness3/5

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

With 7 parameters and no output schema, the description should say more about what comes back (both ratios, per-ratio pass/fail against the 39%/44% limits) and whether defaults like heating/property tax are applied. The 'against the limits' phrasing hints at a comparison but does not specify the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by explaining the condo-fee 50% haircut in context and by advising that mortgagePayment should reflect the stress-test rate for qualifying purposes, which changes what value the agent should supply.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation (GDS and TDS ratios) from specific inputs (income, housing costs, other debts) benchmarked to the 39%/44% thresholds. It is distinguishable from nearby tools like debt_to_income or mortgage_qualifier by naming the exact ratio pair, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

The line about using the stress-test-rate payment gives one piece of situational guidance, but there is no explicit when-to-use versus alternatives (e.g. debt_to_income for TDS-only, mortgage_stress_test for rate qualification). Usage is implied rather than routed.

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

debt_to_incomeDebt-to-Income (TDS) Calculator with Debt ListA
Read-only
Inspect

TDS from income, housing costs and an itemised debt list. Credit cards and lines of credit with no payment given default to 3% of the balance; car and personal loans need their real payment. Returns total balance, payments, available credit and GDS/TDS vs 39% / 44%.

NameRequiredDescriptionDefault
debtsNoEvery non-mortgage debt
annualIncomeYesHousehold gross annual income in CAD
housingCostsMonthlyNoMonthly housing costs: mortgage/rent, tax, heat, 50% condo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower, and the description still adds real behavior: cards/LOCs with no payment silently default to 3% of balance while car and personal loans require their real payment, and the output includes balances, payments, available credit and GDS/TDS against 39%/44% thresholds. It does not mention rounding, currency handling, or what happens when housing costs 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.

Conciseness4/5

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

Two dense sentences with no filler; the default rule appears before the return-value summary, which is the right order. The final clause packs four return items and two thresholds into one sentence, which is efficient but slightly crowded.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the return payload and names the 39%/44% benchmark ratios. For a three-parameter read-only calculator this is close to complete, with only sibling disambiguation and edge-case behavior (missing housing costs, cap of 30 debts) left implicit in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents annualIncome, housingCostsMonthly and the nested debt fields including the 'blank = 3% of balance' rule. The description reinforces the default rule and adds the constraint that car and personal loans need their actual payment, which is only partially spelled out in the schema, so it sits at baseline-plus rather than adding substantial new meaning.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific computation (total debt service ratio) from three named inputs (income, housing costs, itemised debts) and lists what comes back. An agent can tell it is a ratio calculator rather than a mortgage qualifier or generic debt_service_ratio, though the description never explicitly contrasts itself with the debt_service_ratio sibling.

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

Usage Guidelines3/5

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

Usage is implied by the input list (you supply income, housing costs and a debt array) and by the domain rules for defaults, but there is no explicit 'use this when...' or exclusion against debt_service_ratio or mortgage_qualifier. The agent must infer the choice from name and inputs alone.

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

heloc_second_mortgageHELOC & Second Mortgage Calculator (Canada)A
Read-only
Inspect

Compare a HELOC with a second mortgage for tapping home equity in Canada: how much you can borrow (revolving HELOC capped at 65% LTV, total secured borrowing to 80% with an A lender), monthly payments, TDS qualification at the OSFI stress-test rate, and the same for B and private lenders.

NameRequiredDescriptionDefault
provinceNoSets the property-tax estimate used in TDSOntario
homeValueYesCurrent market value of the home in CAD
amountToBorrowYesAmount you want to borrow in CAD
helocSpreadPctNoLender spread over prime as a percent, e.g. 0.5
purposeOfFundsNoWhat the money is forHome Renovation
helocPrimeRatePctNoPrime rate as a percent; defaults to the site's current prime
existingMonthlyDebtsNoOther monthly debt payments (car, cards, loans)
annualHouseholdIncomeYesGross annual household income in CAD
extraMonthlyPrincipalNoOptional extra principal paid monthly on the HELOC
secondMortgageRatePctNoSecond mortgage rate as a percent; defaults to the tier's typical rate
secondMortgageTermYearsNoSecond mortgage term in years
outstandingFirstMortgageYesBalance remaining on the first mortgage in CAD
secondMortgageAmortYearsNoSecond mortgage amortization in years (not used by interest-only Private)
secondMortgageLenderTierNoA = bank/credit union, B = trust/MIC, Private = individual investorA

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly, non-destructive, closed-world, so the safety profile is covered. The description adds genuine domain behaviour an agent could not infer: the revolving HELOC is capped at 65% LTV, total secured borrowing at 80% with an A lender, and TDS is assessed at the OSFI stress-test rate, with separate treatment for B and private lenders. It does not disclose how defaults (prime rate, tier rates) are resolved or what the response contains.

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

Conciseness4/5

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

A single sentence with the comparison verb front-loaded and no filler. It is dense and slightly run-on in the final clause ('and the same for B and private lenders'), but every clause carries real information.

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

Completeness4/5

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

For a 14-parameter calculator with no output schema, the description covers the computational model and enumerates what the result contains (borrowing capacity, monthly payments, TDS qualification, per-lender-tier results). What is missing is how optional defaults are applied and the shape of the returned comparison, which matters given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 14 parameters, so the schema already carries enum meanings, units, defaults and ranges. The description adds framing by tying the inputs to the 65%/80% LTV and OSFI stress-test logic, but does not explain specific parameters such as helocSpreadPct or secondMortgageLenderTier beyond what the schema states. Baseline 3 applies.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'Compare a HELOC with a second mortgage for tapping home equity in Canada', with the exact outputs named (borrowing limit, monthly payments, TDS qualification). It does not name a sibling, so an agent must infer that mortgage_affordability and mortgage_payment are different tools, but the HELOC/second-mortgage framing is narrow enough to be unambiguous.

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

Usage Guidelines3/5

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

Usage is only implied by the described computation – the agent can infer this is the tool for equity-tapping comparisons rather than a plain mortgage payment or affordability calculation. There is no explicit 'use this when…' statement, no prerequisites, and no exclusions relative to mortgage_affordability or mortgage_payment.

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

house_flippingHouse Flipping Profit Calculator (Canada)A
Read-only
Inspect

Estimate profit on a Canadian house flip: land transfer tax (with first-time buyer rebate), renovation with contingency, holding costs, realtor commission and closing costs, then the tax bill. Flags the CRA residential property flipping rule (held under 12 months = 100% business income, no capital gains treatment) and the tax saved by waiting past 12 months.

NameRequiredDescriptionDefault
cityNoCity name — include 'Toronto' to add the Toronto municipal land transfer tax
provinceNoProvince; sets the land transfer taxOntario
purchasePriceYesPurchase price in CAD
contingencyPctNoContingency as a percent of renovationCost
renovationCostYesBudgeted renovation cost in CAD, before contingency
closingCostsBuyNoPurchase legal/inspection costs, excluding land transfer tax
afterRepairValueYesExpected resale price after renovation (ARV) in CAD
closingCostsSellNoSale legal/staging costs, excluding commission
isFirstTimeBuyerNoEligible for the first-time buyer land transfer tax rebate
marginalTaxRatePctNoYour combined marginal tax rate as a percent
holdingPeriodMonthsNoMonths held from purchase to sale — under 12 triggers the CRA flipping rule
monthlyHoldingCostsNoMonthly carrying costs: mortgage interest, property tax, insurance, utilities
realtorCommissionPctNoRealtor commission on the sale as a percent of ARV

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish that this is a safe, read-only, closed-world calculation, so the burden is light. The description nonetheless adds real behavioral context beyond them: it names the CRA 12-month flipping rule, that under 12 months means 100% business income with no capital gains treatment, and that the output quantifies the tax saved by waiting. It stops short of stating that holdingPeriodMonths drives that flag or of noting it is an estimate, not tax advice.

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

Conciseness4/5

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

Two sentences, both dense and front-loaded with the calculation scope, followed by the tax-rule caveat. Every clause maps to a real feature of the tool, though the second sentence runs long and packs the CRA rule and the 12-month comparison together.

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

Completeness4/5

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

For a 13-parameter calculator with no output schema, the description covers the major cost lines and the key tax behavior the agent needs to interpret results. It does not describe the shape of the returned breakdown or how the tax-savings figure is expressed, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already carries per-parameter meaning. The description adds a level of semantic mapping on top by calling out the land transfer tax with first-time buyer rebate, renovation contingency, holding costs, realtor commission, and closing costs, which lets an agent connect inputs to outputs before opening the schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate profit on a Canadian house flip') and enumerates the cost components the calculation covers, so an agent knows exactly what the tool computes. It does not, however, distinguish itself from the sibling bc_home_flipping_tax, which overlaps on the BC case that this tool's province enum also accepts.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is for pre-flip profit modeling, but the description never says when to pick it over bc_home_flipping_tax, land_transfer_tax, or capital_gains_tax, nor what inputs are prerequisites. No exclusions or alternative-routing guidance is given.

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

house_hackingHouse Hacking Calculator (Canada)A
Read-only
Inspect

Live in one unit and rent the rest (basement suite, duplex/triplex, rooms, ADU): mortgage with CMHC, ownership costs, rent after vacancy, your true monthly cost vs renting, and the income needed to qualify with and without rental add-back.

NameRequiredDescriptionDefault
unitsNoUnits in a duplex/triplex (2-4); 3-4 units need 10% down
provinceNoProvince of the propertyOntario
strategyNoBasement suite, duplex/triplex, room rental, or ADUduplex_triplex
monthlyRentYesTotal monthly rent from the rented part of the home in CAD
purchasePriceYesPurchase price in CAD
downPaymentPctNoDown payment as a percent of the price
vacancyRatePctNoVacancy allowance as a percent of rent
mortgageRatePctYesAnnual mortgage rate as a percent, e.g. 4.5
condoFeesMonthlyNoMonthly condo or HOA fees in CAD
includeRentalTaxNoDeduct a rough income-tax estimate on the rent
amortizationYearsNoAmortization in years: 25 or 30
maintenanceMonthlyNoMonthly maintenance allowance in CAD
marginalTaxRatePctNoMarginal tax rate for the rental tax estimate
propertyTaxRatePctNoAnnual property tax as a percent of value
homeInsuranceAnnualNoAnnual home insurance in CAD
equivalentRentMonthlyNoRent you'd pay for a similar home instead, in CAD
rentalExpensesMonthlyNoMonthly costs of renting it out in CAD

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is settled and the description does not need to repeat it. In exchange it discloses what is actually modeled — CMHC insurance in the mortgage, ownership costs, vacancy-adjusted rent, an income-tax estimate option, and qualification with/without rental add-back — which is real behavioral context. It does not say whether results are illustrative estimates or how provincial rules change the math.

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

Conciseness4/5

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

A single dense sentence that front-loads the core scenario before listing outputs. Every clause maps to a distinct output dimension, so nothing is filler, though the parenthetical strategy list and the colons make it slightly harder to scan than a short multi-sentence structure would be.

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

Completeness4/5

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

For a 17-parameter calculator with no output schema, the description does the important job of telling the agent what comes back: cost comparison, vacancy-adjusted rent, CMHC-inclusive mortgage, and qualification income. It omits how optional inputs like province, marginalTaxRatePct, and equivalentRentMonthly shape the result, but the fully documented schema covers those, leaving no blocking gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 17 parameters, including enums for strategy and province and the 25/30 amortization constraint, so the schema carries parameter meaning and the baseline is 3. The description adds conceptual framing (rent after vacancy, rental add-back qualification) but no parameter-specific guidance beyond what the schema already states.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete scenario (live in one unit, rent the rest) and enumerates the outputs produced: CMHC mortgage, ownership costs, post-vacancy rent, true monthly cost vs renting, and qualification income with and without rental add-back. That is clearly a house-hacking analysis tool, not a generic mortgage or rent-vs-buy calculator. It stops short of naming sibling tools such as rent_vs_buy or mortgage_qualifier to draw the boundary explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by the enumerated outputs — an agent can infer this is for owner-occupied multi-unit purchases, especially with CMHC and rental add-back qualification. There is no explicit when-to-use statement, no exclusions (e.g. not for pure investment properties, not for single-family non-rented homes), and no routing to rent_vs_buy or mortgage_qualifier for simpler cases.

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

income_taxCanadian Income Tax & Take-Home CalculatorA
Read-only
Inspect

2026 Canadian federal + provincial income tax, CPP/QPP, EI, QPIP (Quebec), Ontario surtax and Health Premium where applicable, and take-home pay, for any province.

NameRequiredDescriptionDefault
provinceYesProvince of residence
annualIncomeYesGross annual employment income in CAD
employmentTypeNoSelf-employed pays both CPP/QPP halvesemployed
rrspContributionNoAnnual RRSP contribution in CAD

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds meaningful context beyond that: the 2026 tax-year basis, the exact deduction programs modelled, and the Quebec/Ontario-specific extras. It does not disclose the shape of the result (breakdown vs. single number) or accuracy caveats, so it falls short of a 5.

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

Conciseness4/5

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

A single front-loaded sentence that enumerates the computed components with no filler. The list is dense but every item is informative about scope; it could be tightened slightly (e.g. grouping the Quebec/Ontario extras) without losing content.

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

Completeness3/5

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

With no output schema, the description carries the burden of describing what comes back, and it only implies a take-home figure without saying whether a full deduction breakdown is returned. It does establish the tax year and supported provinces, but an agent cannot fully predict the response shape from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented, giving a baseline of 3. The description does add interpretive value by explaining that provincial choice drives QPIP for Quebec and surtax/Health Premium for Ontario, and that CPP vs QPP applies. It says nothing about employmentType or rrspContribution, so it does not exceed baseline.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and scope: 2026 Canadian federal + provincial income tax, CPP/QPP, EI, QPIP, Ontario surtax/Health Premium, and take-home pay, for any province. An agent can tell this computes payroll deductions and net pay rather than anything mortgage- or property-related like its siblings. It stops short of explicitly contrasting with a sibling tool, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers it should call this when it needs after-tax income for a Canadian province. There is no explicit when-to-use statement, no exclusions, and none of the sibling calculators (e.g. capital_gains_tax, mortgage_affordability) are named as alternatives or complements.

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

insured_insurable_uninsuredInsured vs Insurable vs Uninsurable Mortgage CheckA
Read-only
Inspect

Broker tool: classifies a mortgage as insured, insurable or uninsurable (purchase, renewal, switch, refinance) with reasons, then GDS/TDS in each category at its rate. Renewals depend on whether a premium was paid at origination.

NameRequiredDescriptionDefault
unitsNoNumber of units (1–4)
purposeNoWhat the mortgage is forrenewal
homeValueYesHome value (or purchase price) in CAD
occupancyNoOwner-occupied, second home, or rentalowner
premiumPaidNoWas a borrower-paid insurance premium paid originally?unknown
annualIncomeNoHousehold gross annual income in CAD (for GDS/TDS)
monthlyDebtsNoOther monthly debt payments in CAD
equityTakeoutNoRefinance only: taking equity out / raising the loan
fthbOrNewBuildNoFirst-time buyer or new construction (30-yr insured)
heatingMonthlyNoMonthly heating cost in CAD
mortgageAmountYesMortgage amount / outstanding balance in CAD
qualifyingModeNoQualify at the stress-test rate or at the contract ratemqr
rateInsuredPctNoInsured rate, % (illustrative default — pass the lender's)
condoFeesMonthlyNoMonthly condo fees in CAD (50% counted)
rateInsurablePctNoInsurable rate, % (illustrative default)
amortizationYearsNoAmortization in years
propertyTaxMonthlyNoMonthly property tax in CAD
rateUninsurablePctNoUninsurable rate, % (illustrative default)

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare a pure computation (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the safety profile is covered. Beyond that the description adds real behavioral context the annotations cannot: the result includes reasons, GDS/TDS is computed separately in each category at that category's rate, and renewals hinge on whether a premium was paid at origination — a non-obvious business rule. With no output schema, it also sketches the return shape.

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

Conciseness4/5

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

Two sentences, front-loaded with the classification output, then the renewal dependency last. No filler or restatement of the title. It is dense but every clause carries information; only the parenthetical purpose list borders on enumerating schema content.

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

Completeness3/5

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

For an 18-parameter, no-output-schema tool the description covers what comes out and one key rule, but the underlying classification criteria (loan-to-value thresholds, amortization limits, unit/occupancy effects) are never hinted at, so an agent cannot predict which inputs drive the verdict. The illustrative-default warning lives only in the schema. Adequate but leaves meaningful gaps 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 18 parameters, so the schema already documents units, occupancy, purpose, rates, and amortization. The description only adds meaning for one parameter class, linking premiumPaid to the renewal rule in the final sentence. That is a marginal gain over a fully documented schema, which is the baseline-3 case.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and output ('classifies a mortgage as insured, insurable or uninsurable') plus the transaction types covered (purchase, renewal, switch, refinance) and a secondary function (GDS/TDS per category at its rate). An agent can tell this apart from generic siblings like debt_service_ratio or mortgage_qualifier because it produces a three-way classification plus per-category ratios. It stops short of explicitly naming the sibling it replaces, so not a 5.

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

Usage Guidelines3/5

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

The 'Broker tool' framing and the list of covered purposes imply when it applies, and the closing sentence signals that renewal cases need premiumPaid. However, there is no explicit when-to-use versus mortgage_qualifier, cmhc_insurance, or debt_service_ratio, and no statement of when this tool is inappropriate. Usage is inferable but left to the agent.

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

land_transfer_taxCanadian Land Transfer Tax CalculatorA
Read-only
Inspect

Estimate land transfer tax on a home purchase in any of the 13 provinces and territories (incl. Toronto MLTT, Montreal welcome tax) with first-time buyer rebates, the transfer registration fee (to register the deed) and the total due at registration. AB, SK, NL and the territories charge no land transfer tax, only the registration fee. The mortgage registration fee is not included.

NameRequiredDescriptionDefault
priceYesPurchase price in CAD
provinceYesProvince or territory
inTorontoNoOntario only: property is within the City of Toronto (adds the municipal LTT)
isFirstTimeBuyerNoFirst-time buyer (rebate where one exists)
quebecMunicipalityNoQuebec only: 'montreal' = Montreal's welcome-tax brackets (default); 'other' = provincial base schedule, for municipalities without higher rates above $500,000montreal

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, closed-world behavior. The description adds useful behavioral context: geographic coverage, municipal add-ons (Toronto MLTT, Montreal welcome tax), first-time buyer rebates, what fees are included vs. excluded, and zero-LTT jurisdictions. It doesn't specify tax-year/rate version, but that is a modest gap.

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

Conciseness5/5

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

Three dense, front-loaded sentences with no wasted words. Purpose comes first, followed by scope/special cases and an important exclusion.

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

Completeness4/5

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

No output schema exists, but the description signals the return components (tax, rebate, registration fee, total due at registration), which is sufficient for an agent to know what to expect. Slightly more detail on output structure could help, but it is largely complete for a read-only calculator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including inToronto, isFirstTimeBuyer, and quebecMunicipality. The description reinforces province-specific behavior but adds no syntax, format, or mapping details beyond what the schema provides.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Estimate') and resource ('land transfer tax on a home purchase') with scope across 13 provinces/territories. It explicitly names special cases (Toronto MLTT, Montreal welcome tax) and distinguishes itself from all siblings, which cover different taxes or mortgage calculations.

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

Usage Guidelines4/5

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

Clear context: use for home-purchase land transfer tax estimation. Notes exclusions ('mortgage registration fee is not included') and special cases where no LTT applies (AB, SK, NL, territories). No explicit sibling alternative exists, so the lack of a 'use X instead' line is minor.

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

minimum_down_paymentMinimum Down Payment Calculator (Canada)A
Read-only
Inspect

Minimum down payment for a Canadian home under the Dec 2024 CMHC rules (5% of the first $500k, 10% of $500k–$1.5M, 20% at/above $1.5M), whether CMHC insurance applies, and the premium rate.

NameRequiredDescriptionDefault
homePriceYesPurchase price in CAD

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, non-destructive, and closed-world, so safety is covered. The description adds useful behavioral context: the exact rule tiers, that it also determines CMHC insurance applicability, and that it returns a premium rate. It does not discuss assumptions such as occupancy type or amortization, which keeps it from a 5.

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

Conciseness4/5

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

The description is a single front-loaded sentence that efficiently names the calculation, jurisdiction, rule set, and outputs. The parenthetical tier breakdown is dense but earns its place by clarifying an otherwise complex rule.

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

Completeness4/5

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

With no output schema, the description carries the burden of explaining what is returned, and it does so by naming the minimum down payment, CMHC insurance applicability, and premium rate. It is complete enough for a one-parameter calculator, though it omits assumptions that could affect results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the sole parameter, homePrice, is documented in the schema. The description does not add syntax, constraints, or format meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific calculation (minimum down payment) for a specific jurisdiction (Canadian home) under a specific rule set (Dec 2024 CMHC). It also names the outputs (CMHC insurance applicability and premium rate), which clearly distinguishes it from siblings like mortgage_payment or mortgage_affordability.

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

Usage Guidelines3/5

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

Usage is implied by the Canadian CMHC rule context, but the description does not explicitly say when to use this tool versus siblings such as mortgage_payment or mortgage_affordability. No exclusions or alternative-selection guidance are provided.

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

mortgage_affordabilityMortgage Affordability Calculator (Canada)A
Read-only
Inspect

Maximum home price a Canadian buyer qualifies for: the highest price that keeps GDS (39%) and TDS (44%) within limits at the OSFI stress-test rate, honouring the Dec-2024 minimum down payment tiers and the $1.5M CMHC insurability ceiling. Returns max price, max mortgage, CMHC premium, monthly payment and GDS/TDS.

NameRequiredDescriptionDefault
provinceNoProvince of the purchaseOntario
condoFeesNoMonthly condo fees — 50% counts toward GDS/TDS for condos
downPaymentYesDown payment — dollars, or a percent if downPaymentMode='percent'
annualIncomeYesPrimary applicant gross annual income in CAD
monthlyDebtsNoOther monthly debt payments (car, cards, student loans)
propertyTypeNoType of home being boughtsingle-family
monthlyHeatingNoEstimated monthly heating cost in CAD
downPaymentModeNodownPayment as dollars or percentdollar
interestRatePctNoContract mortgage rate as a percent, e.g. 4.79
amortizationYearsNoAmortization: 25 or 30 years
annualPropertyTaxNoEstimated annual property tax in CAD
coApplicantIncomeNoCo-applicant gross annual income in CAD (0 = none)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful behavioral substance beyond that: it discloses the qualifying-rate methodology (stress test rather than contract rate), the regulatory ratios and down payment tier rules applied, and it enumerates the returned fields (max price, max mortgage, CMHC premium, monthly payment, GDS/TDS), compensating for the absent 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.

Conciseness5/5

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

Two tightly packed sentences with zero filler. The primary output (maximum home price) is front-loaded, the rules that govern it follow, and the return payload closes the description — each clause earns its place despite the density.

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

Completeness4/5

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

For a 12-parameter financial calculator with no output schema, the description does the heavy lifting well by listing return values and the regulatory framework used. It stops short of describing edge-case behavior — for example, what happens when the computed price exceeds the $1.5M insurability ceiling or when the down payment falls below a tier minimum — which an agent would want to know before interpreting results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself already explains every parameter, and the baseline of 3 applies. The description contributes one meaningful clarification beyond the schema: that qualification is evaluated at the OSFI stress-test rate rather than the 'contract mortgage rate' described on interestRatePct, but it adds no guidance on downPaymentMode interplay or the 25/30-year amortization constraint beyond what the schema states.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it computes the 'maximum home price a Canadian buyer qualifies for,' and it names the exact standards applied (GDS 39%, TDS 44%, OSFI stress-test rate, Dec-2024 down payment tiers, $1.5M CMHC ceiling). This clearly separates it from siblings like mortgage_payment or minimum_down_payment, but it never names those siblings explicitly, so the differentiation is inferential rather than stated.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool for 'how much house can I afford' questions rather than 'what is my payment on price X.' There is no explicit when-to-use/when-not-to-use guidance and no routing to mortgage_payment, minimum_down_payment, or land_transfer_tax, which are the obvious adjacent calculations.

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

mortgage_amortizationCanadian Mortgage Amortization ScheduleA
Read-only
Inspect

Year-by-year amortization of a Canadian mortgage (semi-annual compounding): payment, total interest, balance at renewal, payoff year, and an annual table. Optional lump-sum / payment-increase prepayments show interest and time saved.

NameRequiredDescriptionDefault
principalYesMortgage amount in CAD
termYearsNoMortgage term in years (sets the renewal point)
annualLumpSumNoExtra lump-sum prepayment each year in CAD
paymentFrequencyNoHow often payments are mademonthly
amortizationYearsNoAmortization in years
paymentIncreasePctNoRaise each regular payment by this percent
prepaymentStartYearNoYear the prepayments start
annualInterestRatePctNoAnnual interest rate as a percent, e.g. 4.5

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, non-destructive, closed-world calculation. Beyond that, the description adds useful behavioral context by disclosing the Canadian semi-annual compounding convention and the output dimensions, including renewal balance, payoff year, and prepayment savings; it does not cover assumptions such as rounding or fixed-rate behavior.

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

Conciseness5/5

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

The description is two tight sentences with no wasted wording. It front-loads the core purpose and output list, then adds the optional prepayment behavior in a compact second sentence.

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

Completeness4/5

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

For an eight-parameter, read-only calculator with no output schema, the description gives enough return-value context: payment, total interest, renewal balance, payoff year, annual table, and prepayment savings. It is nearly complete, though it could mention assumptions or output format limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the input schema. The description adds only broad context that lump-sum and payment-increase prepayments affect interest and time saved, without adding syntax, constraints, or semantics beyond the schema.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and operation: 'Year-by-year amortization of a Canadian mortgage', with named outputs including payment, total interest, renewal balance, payoff year, and annual table. This distinguishes it from narrower siblings such as mortgage_payment or mortgage_prepayment by making clear that it produces a full amortization schedule and can show prepayment savings.

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

Usage Guidelines3/5

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

The description implies when the tool is useful: for year-by-year amortization and for comparing optional lump-sum or payment-increase prepayments via interest and time saved. However, it does not explicitly state when to use this versus mortgage_payment, mortgage_prepayment, or mortgage_renewal, nor does it give exclusions or prerequisites.

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

mortgage_paymentCanadian Mortgage Payment CalculatorA
Read-only
Inspect

Periodic payment on a Canadian mortgage. Pass EITHER homePrice + downPayment (CMHC insurance is added under 20% down) OR loanAmount alone when the user gave the mortgage amount (e.g. "payment on a $500,000 mortgage"). Never invent a purchase price to reach a loan amount: it shifts the answer and adds a CMHC premium the user may not owe.

NameRequiredDescriptionDefault
provinceNoProvince name, used only for CMHC PST on the premium
rateTypeNoFixed or variable ratefixed
homePriceNoPurchase price in CAD, with downPayment. Omit if the user gave the mortgage amount.
termYearsNoMortgage term in years
loanAmountNoMortgage amount in CAD, instead of homePrice. No CMHC premium is added.
downPaymentNoDown payment in CAD, or percent if downPaymentType='percent'. Required with homePrice.
downPaymentTypeNodownPayment as dollars or percent of homePriceamount
paymentFrequencyNoHow often payments are mademonthly
amortizationYearsNoAmortization in years (max 25 insured, 30 uninsured/first-time new builds)
annualInterestRatePctYesAnnual interest rate as a percent, e.g. 5.25

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint=false, so safety is covered; the description adds genuine domain behavior beyond that — CMHC insurance is auto-added under 20% down and not added when loanAmount is supplied. It stops short of describing the returned figure (per-period amount, total interest, insurance breakdown), which matters since there is no 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.

Conciseness5/5

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

Three sentences, front-loaded with the purpose, then the input-mode rule, then the failure mode to avoid. Every sentence carries distinct information with no restatement of schema fields.

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

Completeness4/5

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

For a 10-parameter, single-required-parameter calculator with no output schema, the description covers the highest-risk decision (which input mode) and a silent-error trap. The remaining gap is that it never tells the agent what the response contains, forcing the agent to infer the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real semantic value the schema cannot: that homePrice and loanAmount are alternative entry points rather than complementary parameters, and why substituting one for the other is wrong. It does not, however, clarify the interaction of province, termYears, or paymentFrequency beyond what the schema already says.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the exact output (periodic payment) and the precise domain (Canadian mortgage), which separates it from siblings like mortgage_affordability, minimum_down_payment, and mortgage_penalty. An agent can identify the tool's job without opening the schema.

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

Usage Guidelines5/5

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

It explicitly routes between two mutually exclusive input modes (homePrice + downPayment vs loanAmount alone) and gives the trigger condition ('when the user gave the mortgage amount', with an example utterance). It also states a when-not with the reason ('never invent a purchase price to reach a loan amount: it shifts the answer and adds a CMHC premium').

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

mortgage_penaltyMortgage Prepayment Penalty Calculator (IRD)A
Read-only
Inspect

Estimate the penalty to break a Canadian mortgage: three months' interest vs the interest rate differential (IRD), incl. the big-bank posted-rate method. Fixed = greater of the two; variable = usually three months' interest. The three optional rate inputs are lender-specific: if omitted, illustrative site defaults are used (the answer can be several times off) and listed in assumedInputs — show them to the user and have them confirm with their lender.

NameRequiredDescriptionDefault
balanceYesOutstanding mortgage balance in CAD
rateTypeNoFixed or variable mortgagefixed
lenderMethodNoBig banks use the posted-rate IRD, monolines actual rates. Either can be larger, depending on the original discount vs today's posted rate.big-bank
contractRatePctYesYour contract rate as a percent, e.g. 5.25
monthsRemainingYesMonths remaining in the term
postedAtOriginationPctNoBig-bank method: posted (not discounted) rate when signed, from the mortgage documents. Can change the penalty several-fold. Omit if unknown (assumption is flagged).
todaysPostedForClosestTermPctNoBig-bank method: the lender's posted rate today for the closest term. Omit if unknown (assumption is flagged).
currentRateForRemainingTermPctNoMonoline method: today's rate for the remaining term (percent). Omit if unknown (assumption is flagged).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover read-only safety, and the description adds the crucial non-obvious behavior: omitted rate inputs fall back to site defaults that 'can be several times off', they are surfaced in `assumedInputs`, and the agent should show them to the user. This is exactly the kind of caveat an agent cannot infer from structured fields.

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

Conciseness5/5

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

Three sentences, front-loaded with the core definition, then the fixed/variable rule, then the fallback caveat. Every clause carries information; nothing is redundant with the title or schema.

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

Completeness5/5

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

For an 8-parameter read-only calculator with no output schema, the description covers method selection, input-omission behavior, the `assumedInputs` return field, and the accuracy caveat. An agent has everything needed to call it and communicate results responsibly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema by grouping the three optional rate parameters as 'lender-specific' and explaining the consequence of omission. It doesn't restate individual param formats, which the schema already handles well.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Estimate the penalty to break a Canadian mortgage') plus the two calculation methods (three months' interest vs IRD). It is clearly distinguishable from siblings like mortgage_payment or mortgage_affordability, which compute different quantities.

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

Usage Guidelines4/5

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

Gives explicit conditional logic for which method applies: 'Fixed = greater of the two; variable = usually three months' interest', and notes the three rate inputs are lender-specific and may be omitted. It does not explicitly route to a sibling tool, but the siblings are unrelated calculations, so that omission is minor.

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

mortgage_prepaymentMortgage Prepayment Savings Calculator (Canada)A
Read-only
Inspect

Interest and time saved by prepaying a Canadian mortgage with extra per-payment amounts, an annual lump sum, or both, plus the estimated penalty if the prepayment were over your privilege limit (3 months' interest or IRD).

NameRequiredDescriptionDefault
balanceYesCurrent mortgage balance in CAD
rateTypeNoFixed or variable (sets the penalty method)fixed
annualLumpSumNoLump sum paid once a year in CAD
extraPerPaymentNoExtra amount added to every payment in CAD
lumpSumStartYearNoYear the annual lump sum starts
paymentFrequencyNoHow often payments are mademonthly
amortizationYearsNoRemaining amortization in years
comparisonRatePctNoLender's comparison rate for the IRD, percent
annualInterestRatePctNoAnnual interest rate as a percent
monthsRemainingInTermNoMonths left in the current term

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add domain behavior. It does add useful context, that the penalty estimate is contingent on exceeding a privilege limit and uses 3 months' interest or IRD, but it says nothing about calculation assumptions, limits of the model, or what the returned values look like beyond naming them.

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

Conciseness4/5

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

A single dense sentence front-loads the primary output and enumerates the input modes without filler. It is somewhat clause-heavy at the tail (parenthetical about 3 months' interest or IRD), but no sentence is wasted.

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

Completeness4/5

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

For a 10-parameter, no-output-schema calculator, the description is adequate: it implies the three return components (interest saved, time saved, penalty estimate) and covers both allowed prepayment channels. What is missing is modest, chiefly any note on model assumptions or how the fixed/variable choice alters the penalty path, which the schema partially carries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including comparisonRatePct and rateType is already documented with purpose, defaults, and bounds. The description's mention of "IRD" and "privilege limit" gives slight conceptual grounding for the comparison-rate input, but it adds no syntax, units, or interaction detail beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the concrete output (interest and time saved) and the three input strategies (extra per-payment, annual lump sum, or both), plus the penalty estimate, which makes the tool's scope clear. It implicitly distinguishes itself from mortgage_penalty and mortgage_amortization by combining prepayment savings with a penalty sizing estimate, but it never names those siblings to make the boundary explicit.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent can infer this is for "what if I prepay" scenarios, and that the penalty figure is a secondary check against the privilege limit. There is no explicit when-to-use, no when-not-to-use, and no routing to mortgage_penalty or mortgage_amortization for the standalone cases.

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

mortgage_qualifierHow Much Mortgage Do I Qualify For (Canada)A
Read-only
Inspect

Maximum mortgage and home price at the OSFI qualifying rate. mode='income': from income, debts and down payment, limited by GDS 39% / TDS 44%. mode='budget': from a monthly payment you can afford. Property tax and heating are estimated.

NameRequiredDescriptionDefault
modeNoQualify from income, or from a monthly payment budgetincome
downPaymentYesDown payment available in CAD
annualIncomeNoIncome mode: main applicant gross annual income in CAD
amortizationYearsNoAmortization: 5, 10, 15, 20, 25 or 30 years
coApplicantIncomeNoIncome mode: co-applicant gross annual income in CAD
monthlyDebtPaymentsNoIncome mode: other monthly debt payments in CAD
monthlyPaymentBudgetNoBudget mode: monthly mortgage payment you can afford in CAD
annualInterestRatePctNoContract rate as a percent

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare a safe read-only, closed-world operation, so the bar is lower, and the description still adds real behavioral context: the GDS 39% / TDS 44% qualification constraints, use of the OSFI qualifying rate, and the fact that property tax and heating are estimated rather than supplied. It does not disclose the response shape or whether results are advisory only, which keeps it below a 5.

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

Conciseness4/5

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

Three compact sentences with no filler, front-loaded with the primary output (max mortgage and home price) before the mode breakdown. The telegraphic style is dense but readable; minor polish would earn a 5.

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

Completeness4/5

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

For an 8-parameter calculation tool with no output schema, the description covers the returned quantities, the two calculation paths, the regulatory ratio caps, and the estimated inputs. It does not explain how annualInterestRatePct interacts with the OSFI qualifying rate, which is the one substantive gap for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including the mode enum and the income-vs-budget parameter split. The description reinforces which parameters belong to which mode, which is mild added meaning, but adds no format, unit, or default detail beyond the schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific outcome (maximum mortgage and home price at the OSFI qualifying rate) and splits it into two clearly named modes, income vs. budget. It stops short of distinguishing itself from close siblings such as mortgage_affordability, mortgage_stress_test, or debt_service_ratio, so an agent cannot fully disambiguate from the name and description alone.

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

Usage Guidelines4/5

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

Explicit conditional guidance exists for the two modes: mode='income' when you have income, debts and down payment; mode='budget' when you start from an affordable monthly payment. What is missing is when NOT to use this tool versus the many overlapping siblings (affordability, stress test, debt service ratio).

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

mortgage_renewalMortgage Renewal Payment Shock Calculator (Canada)A
Read-only
Inspect

Compare a Canadian mortgage's payment and term interest at the current rate vs the renewal rate: new payment, monthly and annual change, and extra interest over the new term. An optional lump sum at renewal reduces the balance.

NameRequiredDescriptionDefault
balanceYesBalance at renewal in CAD
termYearsNoNew term length in years
currentRatePctNoRate on the expiring term, percent
renewalRatePctNoRate offered at renewal, percent
lumpSumAtRenewalNoLump sum paid down at renewal in CAD
paymentFrequencyNoHow often payments are mademonthly
remainingAmortizationYearsNoAmortization left at renewal, in years

TDQS

A4/5.0
Behavior3/5

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

The annotations already establish that this is a safe, read-only, closed-world calculation, and the description adds the enumerated comparison outputs and the balance-reducing effect of a lump sum. It does not disclose calculation conventions such as Canadian compounding, how the current-payment baseline is derived, or how accelerated payment frequencies affect the comparison.

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

Conciseness5/5

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

Two compact sentences front-load the comparison, enumerate its principal results, and then cover the optional lump-sum behavior. There is no redundant or promotional wording.

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

Completeness4/5

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

Together with the fully documented schema and safety annotations, the description supplies enough information to select and invoke the calculator, including its main outputs despite the absence of an output schema. Greater completeness would require key methodology assumptions and clearer routing away from related mortgage calculators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains all seven inputs, their defaults, and their constraints. The description reinforces the roles of the rates, new term, and lump sum but adds little parameter-specific meaning beyond that documentation.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific action and scope: comparing a Canadian mortgage's payment and term interest between the current and renewal rates. Listing payment changes and extra term interest clearly distinguishes it from sibling tools such as mortgage_payment and mortgage_amortization.

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

Usage Guidelines4/5

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

The renewal-rate comparison and payment-shock context make it clear when this tool is appropriate, including when modeling a lump sum at renewal. It does not explicitly exclude simpler payment calculations or name an alternative sibling for those cases.

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

mortgage_stress_testCanadian Mortgage Stress Test (OSFI B-20)A
Read-only
Inspect

Check a purchase, renewal or refinance against the OSFI stress test: qualifying rate (higher of contract + 2% or 5.25%), GDS/TDS at 39/44, pass/close/fail, max home price for a purchase, and how far off a fail is. Straight-switch renewals are exempt unless the amount or amortization increases.

NameRequiredDescriptionDefault
scenarioNoBuying, renewing, or refinancingpurchase
homePriceYesPurchase price, or current home value for renewal/refinance, in CAD
downPaymentNoPurchase only: down payment in CAD
annualIncomeYesMain applicant gross annual income in CAD
monthlyHeatingNoMonthly heating cost in CAD
renewalRatePctNoRenewal only: rate you are renewing into, percent
contractRatePctNoContract interest rate as a percent
additionalBorrowNoRefinance only: extra cash to borrow in CAD
monthlyCondoFeesNoMonthly condo fees in CAD (50% counts)
amortizationYearsNoAmortization in years (5–30)
coApplicantIncomeNoCo-applicant gross annual income in CAD (0 if none)
renewalIncreasingNoRenewal only: increasing the amount or amortization (then the stress test applies)
monthlyPropertyTaxNoMonthly property tax in CAD
outstandingBalanceNoRenewal/refinance only: balance owing in CAD
monthlyDebtPaymentsNoOther monthly debt payments in CAD
renewalWithNewLenderNoRenewal only: switching to a new lender

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, closed-world behavior, yet the description still adds substance: the qualifying-rate formula (higher of contract + 2% or 5.25%), the 39/44 GDS/TDS thresholds, the three-state pass/close/fail result, and the exemption logic. It does not discuss rounding, assumptions, or limits on the max-home-price back-solve, so it falls just short of full transparency.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and OSFI context, then the results, then the exemption carve-out. The long enumeration is information-dense rather than wasteful, though the mid-sentence output list is slightly harder to scan than separated clauses would be.

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

Completeness4/5

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

For a 16-parameter tool with no output schema, the description does the necessary work: it names what comes back (qualifying rate, ratios, verdict, max price, shortfall) and flags the case where the tool returns an exempt result. Minor gaps remain around result units and how the close band is defined, but nothing critical to calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description earns more by explaining how inputs are consumed: which rate becomes the qualifying rate, which ratio thresholds apply, and why renewalIncreasing matters for exemption. That gives an agent meaning beyond the per-field text without duplicating it.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb ('Check') and a precisely scoped resource: the OSFI B-20 stress test for purchase, renewal or refinance. It also enumerates the outputs (qualifying rate, GDS/TDS, pass/close/fail, max home price, shortfall), which separates it from generic siblings like mortgage_qualifier, mortgage_affordability and debt_service_ratio without needing to name them.

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

Usage Guidelines4/5

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

The three supported scenarios are stated explicitly, and the last sentence gives a genuine exclusion rule: straight-switch renewals are exempt unless the amount or amortization increases, which maps directly to the renewalIncreasing flag. It stops short of naming sibling tools to use instead when the case is out of scope (e.g. plain payment or affordability math).

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

property_developmentProperty Development Cost & Profit CalculatorB
Read-only
Inspect

Development pro forma for a Canadian build: land + land transfer tax, hard costs, soft costs, HST net of the new-housing rebate, construction financing, contingency, sale proceeds, profit, margin and ROI.

NameRequiredDescriptionDefault
ownsLandNoLand is already owned (no purchase or land transfer tax)
provinceNoProvince or territory of the projectOntario
sitePrepNoSite preparation cost in CAD
costPerSqftYesConstruction cost per square foot in CAD
landscapingNoLandscaping cost in CAD
projectTypeNoProject type (new builds and custom homes get the HST rebate)new-build
contingencyPctNoContingency as a percent of hard + soft costs
drawSchedulePctNoAverage share of costs drawn during the build, percent
financingRatePctNoConstruction loan rate as a percent
landPurchasePriceYesLand price in CAD (0 if already owned, with ownsLand)
constructionMonthsNoConstruction duration in months
estimatedSalePriceYesExpected sale price when finished in CAD
grossFloorAreaSqftYesGross floor area in square feet
sellingCommissionPctNoCommission on the sale as a percent

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe, closed-world calculation. Beyond that, the description adds real value by disclosing the calculation model — HST is netted against the new-housing rebate, financing cost derives from a draw schedule, contingency applies to hard+soft costs. It does not describe the returned figures' structure, though no output schema exists to cover that gap.

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

Conciseness4/5

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

A single front-loaded sentence with a colon-and-list structure; every clause names a distinct cost or return component and none is filler. It is dense but appropriately sized for a 14-parameter composite calculator, with only the missing action verb ('calculates') as a minor structural gap.

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

Completeness3/5

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

For a 14-parameter, no-output-schema calculator, the description covers what goes in and what comes out at a component level, which is roughly adequate. It leaves unaddressed how the result is shaped (a single object? line items?), whether figures are CAD, and the preconditions tying ownsLand to landPurchasePrice — meaningful gaps when there is no output schema to lean on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every one of the 14 parameters carries its own description, defaults, enums and bounds, so the baseline is 3. The description adds only marginal parameter meaning — it implies projectType drives the HST rebate and that land transfer tax is a function of province — without explaining units, interactions (ownsLand vs. landPurchasePrice), or which inputs feed which outputs.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete artifact ('development pro forma for a Canadian build') and enumerates exactly what it computes: land, land transfer tax, hard/soft costs, HST net of the new-housing rebate, financing, contingency, sale proceeds, profit, margin, ROI. That is far more specific than a tautology and clearly separates it from single-purpose siblings like land_transfer_tax or closing_costs. It stops short of explicitly naming which sibling tools it replaces.

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

Usage Guidelines3/5

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

Usage is only implied by the phrase 'for a Canadian build' and by the computed-output list, which signals whole-project feasibility analysis rather than a single-fee lookup. There is no explicit when-to-use statement, no when-not (e.g., existing-property purchase analysis), and no routing to alternatives such as closing_costs, land_transfer_tax, or renovation_roi.

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

property_taxProperty Tax Calculator (Canada)A
Read-only
Inspect

Annual and monthly property tax from ASSESSED value (not purchase price — Ontario still uses 2016 MPAC values) for 18 Canadian cities, each published rate normalised to full assessed value (SK taxes 80%, Winnipeg 45%). Pass ratePct instead of city to use the rate on your own bill.

NameRequiredDescriptionDefault
cityNoCity whose 2026 rate to use (exact name, e.g. Toronto, Montréal)
ratePctNoYour own rate as a percent of full assessed value; overrides the city rate
assessedValueYesAssessed value in CAD, from the assessment notice
includeQuebecSchoolTaxNoQuebec cities only: add the school tax (after its $25,000 exemption)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false. The description adds non-obvious calculation behavior: assessed value not purchase price, Ontario's 2016 MPAC values, and rates normalised to full assessed value for SK and Winnipeg.

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

Conciseness5/5

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

Two dense sentences, front-loaded with what is calculated and the critical assessed-value distinction. The parentheticals earn their place by preventing assessed-versus-purchase-price and rate-normalisation errors.

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

Completeness5/5

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

For a read-only calculator with four fully documented parameters and no output schema, the description supplies enough basis, coverage, override and normalisation context. Remaining schema-level details such as includeQuebecSchoolTax are covered by the parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description still adds meaning for assessedValue and ratePct by warning against purchase price and explaining that ratePct overrides the city rate and that published rates are normalised.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: annual and monthly property tax from assessed value for 18 Canadian cities. It explicitly distinguishes assessed value from purchase price, so an agent can identify it among tax and calculator siblings.

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

Usage Guidelines4/5

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

It gives a clear usage alternative: pass ratePct instead of city to use the rate on your own bill. It does not explicitly say when not to use this tool versus sibling calculators, but the parameter-selection guidance is concrete.

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

real_estate_commissionReal Estate Commission Calculator (Canada)A
Read-only
Inspect

Seller's real estate commission in Canada: commission, GST/HST on it, listing vs buyer brokerage split, and net proceeds. Province sets commonly quoted starting rates (AB/BC tiered, ON/MB flat). Commission is NOT regulated — every rate is negotiable and can be overridden.

NameRequiredDescriptionDefault
provinceNoProvince or territory; sets the commonly quoted starting ratesOntario
legalFeesNoSeller's legal fees in CAD
salePriceYesSale price in CAD
structureNoOverride: tiered (e.g. 7% on first $100k) or flat % of the whole price
tierThresholdNoOverride, tiered only: price up to which the first-tier rate applies
mortgageBalanceNoMortgage paid out at closing, for net proceeds
salesTaxRatePctNoOverride: GST/HST percent charged on the commission
firstTierRatePctNoOverride, tiered only: percent on the first tier, e.g. 7
remainderRatePctNoOverride: percent on the balance (tiered) or whole price (flat)
buyerSideSharePctNoShare of the commission paid to the buyer's brokerage, percent
otherSellingCostsNoOther selling costs in CAD (staging, repairs)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the read-only, closed-world, non-destructive profile, so the description's added value is domain behavior: commission is not regulated, quoted provincial rates are only starting points, and any rate can be overridden via explicit parameters. That is meaningful behavioral disclosure beyond the annotations, though it says nothing about how results are presented or what precedence applies when province and override parameters conflict.

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

Conciseness4/5

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

Two tightly packed sentences, no filler, with the resource and scope front-loaded. The density comes at a small cost — multiple distinct claims (tax, split, net proceeds, provincial defaults, negotiability) are compressed into one line each.

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

Completeness4/5

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

For an 11-parameter tool with only one required field and a fully described schema, the description gives enough to call it correctly and implicitly names the outputs (commission, tax, split, net proceeds). With no output schema, it could be more explicit about the shape of the returned numbers, and it does not clarify default-vs-override precedence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter, including the override fields and their tiered/flat applicability, is already documented in the schema. The description restates at a high level that province sets starting rates and overrides exist, adding little beyond structured data; baseline 3 applies.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: "Seller's real estate commission in Canada" plus the components it computes (commission, GST/HST, listing vs buyer split, net proceeds). An agent can tell it is a seller-side commission calculator rather than a generic cost tool, though it never names the near sibling cost_of_selling or closing_costs to draw the boundary.

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

Usage Guidelines3/5

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

Usage is only implied by the framing — a seller estimating commission on a sale. There is no explicit when-to-use, when-not-to-use, or pointer to alternatives such as cost_of_selling or closing_costs. The negotiability note is useful context but is not routing guidance.

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

renovation_roiRenovation ROI Calculator (Canada)A
Read-only
Inspect

Return on a home renovation: value added vs cost, and how that value shrinks by the time you sell (straight-line over the project's economic life — an editable HomeCalc assumption, not a measured figure), plus any net rent the work earns.

NameRequiredDescriptionDefault
valueAddedNoValue the work adds at completion in CAD; omit to use the type's estimate
projectTypeNoRenovation type (sets the default value added and economic life)Kitchen Renovation (Minor)
monthlyNetRentNoNet monthly rent the work earns (e.g. a legal suite) in CAD
renovationCostYesRenovation cost in CAD
yearsUntilSaleNoYears between finishing the work and selling
currentHomeValueNoHome value before the renovation in CAD
economicLifeYearsNoYears until the work adds nothing; omit for the type's default

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a safe read-only, closed-world operation, and the description goes further by disclosing that depreciation is straight-line over the project's economic life and is an editable HomeCalc assumption rather than a measured figure. That caveat about model fidelity is exactly the kind of context annotations cannot carry. It does not mention rounding, currency handling beyond the title, or sensitivity to overrides.

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

Conciseness4/5

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

One front-loaded sentence delivers the whole purpose, with the key caveat about the editable assumption nested immediately after the behavior it qualifies. The multiple parentheticals make it dense on first read, but no sentence is wasted.

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

Completeness5/5

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

With no output schema, the description must convey return semantics, and it does: value added vs cost, residual value at sale, and net rent. Combined with 100% schema coverage and read-only annotations, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter already carries its own documentation and the baseline of 3 applies. The description adds only indirect meaning, tying economicLifeYears to the straight-line decay mechanism; it says nothing about overriding valueAdded versus projectType defaults that the schema does not already state.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific computation (value added vs cost, value decay to sale date, plus net rent) for a specific resource (a home renovation), which clearly separates it from siblings like cost_of_selling or capital_cost_allowance. It stops short of naming an alternative tool or contrasting scope explicitly, so it lands just below the top mark.

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

Usage Guidelines3/5

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

Usage is implied by the concept of evaluating a renovation's return, and the phrasing 'how that value shrinks by the time you sell' hints at the sale-horizon use case. There is no explicit when-to-use, when-not-to-use, or pointer to a sibling such as house_flipping or cost_of_selling, leaving selection guidance to inference.

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

rent_increaseRent Increase Guideline Calculator (ON / BC / MB)B
Read-only
Inspect

ON/BC/MB rent-increase guideline and new rent, floored to the cent. capped:false = exempt unit.

NameRequiredDescriptionDefault
yearYesGuideline year, e.g. '2026'; unsupported = latest (shown in reply)
provinceYesProvince whose guideline applies
unitExemptNoON: first occupied on/after 15 Nov 2018. MB: exempt for a non-rent reason
currentRentYesCurrent monthly rent in CAD

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already establish this as a safe read-only, closed-world, non-destructive operation, so the bar is lower. The description adds genuinely useful behavior: results are 'floored to the cent' and a 'capped:false' result means the unit is exempt, though the 'capped' field is never defined and no output schema exists to anchor it.

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

Conciseness4/5

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

Two compact fragments with the province scope and rounding behavior front-loaded, and no filler wording. Its brevity dips into under-specification, which is better captured by completeness than by conciseness.

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

Completeness3/5

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

For a simple read-only calculator with fully documented parameters, the definition is close to sufficient, but a tool with no output schema should say what comes back (guideline percentage vs. new rent) and clarify the dangling 'capped' field referenced in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including enum values for province and an exclusiveMinimum on currentRent, so the schema already carries parameter meaning. The description adds nothing about the four inputs beyond a partial gloss on exemption, making baseline 3 appropriate.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (calculate) and resource (rent-increase guideline and new rent) scoped to ON/BC/MB, which an agent can distinguish from rent_vs_buy or property_tax among siblings. It stops short of naming siblings or contrasting them, so it is clear but not fully differentiating.

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

Usage Guidelines2/5

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

Provides no when-to-use or when-not-to-use guidance, and names no alternative tool. The only conditional hint is 'capped:false = exempt unit', which describes an output field rather than when to call the tool.

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

rent_vs_buyRent vs Buy Calculator (Canada)A
Read-only
Inspect

Compare renting with buying over a time horizon: net cost and net wealth of each (home equity after selling vs the renter investing the down payment and monthly savings), the break-even year, and milestone years.

NameRequiredDescriptionDefault
cityNoCity; Toronto adds municipal LTT, Montreal uses its own welcome-tax bracketsToronto
provinceNoProvince or territory; sets the land transfer taxOntario
monthlyRentYesMonthly rent for a comparable home in CAD
yearsToStayNoHow many years you plan to stay
purchasePriceYesPurchase price of the home in CAD
rentGrowthPctNoYearly rent increase as a percent
downPaymentPctNoDown payment as a percent of the price
sellingCostPctNoCost of selling as a percent of the sale price
landTransferTaxNoYour own land transfer tax figure in CAD, replacing the computed one
mortgageRatePctNoAnnual mortgage rate as a percent
condoFeesMonthlyNoMonthly condo fees in CAD
isFirstTimeBuyerNoEligible for the first-time buyer land transfer tax rebate
amortizationYearsNoAmortization in years
homePriceGrowthPctNoYearly home price growth as a percent
maintenanceMonthlyNoMonthly maintenance and repairs in CAD
propertyTaxRatePctNoAnnual property tax as a percent of value
homeInsuranceAnnualNoAnnual home insurance in CAD
investmentReturnPctNoYearly return the renter earns on invested savings

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value by explaining the comparison methodology (home equity after selling vs. renter investing the down payment and monthly savings) and what it returns, though it omits assumptions about tax treatment, inflation of rent, or how milestone years are chosen. With annotations carrying safety, 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.

Conciseness4/5

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

One front-loaded sentence that leads with the action and then enumerates the outputs. The parenthetical is dense but each clause adds meaning (methodology plus return values). Minor loss for cramming everything into one comma-chain that is slightly hard to parse.

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

Completeness4/5

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

With 18 parameters and no output schema, the description usefully explains the return values and the underlying comparison model, which an agent would otherwise not have. It falls short on modeling assumptions (taxes on investment returns, rent vs. home growth interplay) that materially affect results, which for a financial calculator is a notable omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 18 parameters are already documented in the schema, including city-specific land transfer tax and rebate flags. The description mentions none of them, so the baseline 3 applies. It neither compensates nor detracts.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and comparison ('Compare renting with buying over a time horizon') and names the two outputs produced (net cost, net wealth, break-even year, milestone years). This clearly distinguishes it from the single-purpose siblings like mortgage_payment, cap_rate, or closing_costs, which each compute one component.

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

Usage Guidelines3/5

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

The 'over a time horizon' framing implies the tool suits long-horizon rent-vs-buy decisions, but it gives no explicit when-to-use/when-not guidance and never points to related siblings (e.g., closing_costs or cap_rate to refine inputs). Usage is inferable rather than stated.

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

reverse_mortgageReverse Mortgage Calculator (Canada, 55+)B
Read-only
Inspect

Reverse mortgage (CHIP-style) for homeowners 55+: theoretical maximum (55% of value — the lender's published ceiling, not your approval), and how the balance compounds (semi-annually, no payments) vs home equity at 5/10/15/20 years.

NameRequiredDescriptionDefault
ageYesYoungest borrower's age (must be 55+)
rateTermNoPosted CHIP rate term to use5yr
homeValueYesCurrent/appraised home value in CAD
amountTakenYesAmount you'd take in CAD (capped at the 55% ceiling)
appreciationRatePctNoYour own home appreciation assumption, %/yr

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare it is read-only, closed-world and non-destructive. The description adds useful context beyond that: that the 55% figure is the lender's published ceiling rather than an approval, and that the balance compounds semi-annually with no payments. It doesn't say which rate drives the projection or what the output looks like, so a 3 fits.

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

Conciseness4/5

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

A single dense sentence with the key caveat (ceiling not approval) front-loaded and the projection horizons at the end. Every clause carries information, though the em-dash nesting makes it slightly harder to scan.

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

Completeness3/5

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

With no output schema, the description carries the burden of explaining what comes back, and it only sketches the outputs (max amount, balance vs equity at four horizons). Given that all five parameters are fully documented in the schema, the definition is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the rateTerm enum and the 55% cap on amountTaken, so the schema already does the work. The description reinforces the ceiling concept but adds no syntax or format meaning beyond the schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific computation on a specific resource: the theoretical maximum (55% of value) and the compounding balance versus home equity at 5/10/15/20 year horizons. It doesn't explicitly distinguish itself from the nearby siblings heloc_second_mortgage or mortgage_amortization, but the '55+' and 'no payments' framing makes the concept recognizable on its own.

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

Usage Guidelines3/5

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

The '55+' eligibility and 'CHIP-style' framing imply the context in which to use it, but nothing states when to pick this over heloc_second_mortgage or a standard amortization tool, and there are no exclusions or prerequisites beyond the age requirement.

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

second_home_affordabilitySecond Home Affordability Calculator (Canada)A
Read-only
Inspect

Maximum price for a second property (cottage, rental or second home) while keeping your current home: combined TDS across both properties, subject-property GDS, minimum down payment (20% unless you'll live in it), optional rental income add-back.

NameRequiredDescriptionDefault
intentNoCottage/vacation, rental/investment, or second personal homevacation
provinceNoProvince of the second propertyOntario
condoFeesNoSecond property's monthly condo fees (50% counted)
otherDebtsNoOther monthly debt payments (cards, car, loans)
willOccupyNoWill you live in it part-time? Allows CMHC Second Home (5%+ down). Ignored for rentals.
downPaymentYesDown payment in CAD, or percent if downPaymentMode='percent'
annualIncomeYesHousehold gross annual income in CAD
rentalIncomeNoExpected monthly rent; 0 = no rental income counted
purchasePriceYesSecond property purchase price in CAD
secondHeatingNoSecond property's monthly heating cost
primaryHeatingNoCurrent home's monthly heating cost
downPaymentModeNodownPayment as dollars or percent of pricedollar
interestRatePctNoAnnual interest rate as a percent, e.g. 4.49
rentalCreditModeNoLender rent treatment: 50% or 80% add-back, or full offset50
amortizationYearsNoAmortization in years
primaryPropertyTaxNoCurrent home's MONTHLY property tax
borrowedEquityAmountNoHELOC/equity borrowed for this purchase, in CAD
primaryMortgagePaymentNoCurrent home's monthly mortgage payment
secondPropertyTaxAnnualNoSecond property's ANNUAL property tax

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a safe, read-only, closed-world calculation. The description adds substantive behavioral context beyond that: combined TDS across both properties, subject-property GDS, a 20% minimum down payment unless occupying, and optional rental income add-back. It still does not explain the returned breakdown or lender assumptions.

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

Conciseness4/5

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

It is one front-loaded sentence with no filler, and the colon list efficiently summarizes the calculation. It is dense and jargon-heavy, but appropriately sized for a compact tool description.

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

Completeness3/5

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

For a 19-parameter calculator with no output schema, the description supplies the headline output and main qualification mechanics. It omits return-value structure, assumptions or caveats, and how province and intent materially affect results, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 19 parameters in detail. The description adds high-level relationships such as combined TDS, the down-payment rule, and rental add-back, but little parameter-specific meaning beyond what the schema provides.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific computed output—maximum purchase price for a second property while retaining the current home—and distinguishes the scenario from primary-home affordability via combined TDS across both properties. Cottage, rental, and second-home cases are explicitly named.

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

Usage Guidelines4/5

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

It gives clear usage context: a second property while keeping the current home, with vacation/rental/personal-home intent cases named. It does not explicitly route the agent to or away from sibling tools such as mortgage_affordability or mortgage_qualifier, and it states no exclusions or limitations.

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

seventy_percent_rule70% Rule Calculator (House Flipping)A
Read-only
Inspect

Maximum purchase price for a flip under the 70% rule (or the stricter 65%): ARV × rule − repairs, plus the profit left after repairs and the commission and closing costs on the sale.

NameRequiredDescriptionDefault
rulePctNoRule to apply: 70% (standard) or 65% (stricter)70
repairCostsYesTotal renovation budget in CAD
afterRepairValueYesExpected resale price after renovation (ARV) in CAD
commissionRatePctNoCommission on the sale as a percent of ARV
closingCostRatePctNoClosing costs on the sale as a percent of ARV

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a safe, closed-world, read-only computation, so the burden is light. The description adds real value by disclosing what the calculation returns beyond the purchase price: the profit remaining after repairs plus the commission and closing costs on the sale. It does not state units or rounding, but the schema covers currency.

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

Conciseness4/5

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

It is a single front-loaded sentence that leads with the primary output and the formula, with no filler. The trailing clause ('plus the profit left after repairs and the commission and closing costs on the sale') is dense and slightly awkward to parse, costing it a point.

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

Completeness4/5

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

There is no output schema, so the description must carry the return-value burden, and it does list the three result components (max price, profit after repairs, commission and closing costs). The only residual gap is whether the stated profit already nets out the purchase price, which is left for the agent to infer from the formula.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by expressing how the inputs combine (ARV × rule − repairs) and by noting that commission and closing costs are charged on the sale. That formula framing tells the agent the role of rulePct, commissionRatePct, and closingCostRatePct relative to each other, not just their individual definitions.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific computation (maximum purchase price for a flip) and the exact formula (ARV × rule − repairs), so the agent knows precisely what the tool produces. It implicitly separates this from sibling calculators like house_flipping or renovation_roi by focusing on purchase-price ceiling, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: the mention of 'for a flip' and the 65%/70% variants signals the flipping context, and the description notes the stricter option exists. There is no explicit statement of when to choose this over house_flipping, renovation_roi, or cost_of_selling, and no prerequisites or exclusions are given.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedrent_increase2 fields changed
      • addedInput schema / properties / unitExempt
        Added value: +{
        +  "description": "ON: first occupied on/after 15 Nov 2018. MB: exempt for a non-rent reason",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / year / description
        Previous value: -"Guideline year, e.g. '2026'. An unsupported year uses the latest; the reply shows which."New value: +"Guideline year, e.g. '2026'; unsupported = latest (shown in reply)"
  2. 1 tool update
    • Changedrent_vs_buy4 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City name; 'Toronto' adds the municipal land transfer tax"New value: +"City; Toronto adds municipal LTT, Montreal uses its own welcome-tax brackets"
      • addedInput schema / properties / landTransferTax
        Added value: +{
        +  "description": "Your own land transfer tax figure in CAD, replacing the computed one",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / province / description
        Previous value: -"Province (land transfer tax is computed for Ontario only)"New value: +"Province or territory; sets the land transfer tax"
      • changedInput schema / properties / province / enum
        Previous value: -[
        -  "Ontario",
        -  "British Columbia",
        -  "Alberta",
        -  "Quebec",
        -  "Nova Scotia",
        -  "Manitoba",
        -  "Saskatchewan",
        -  "New Brunswick",
        -  "PEI",
        -  "Newfoundland and Labrador"
        -]New value: +[
        +  "Ontario",
        +  "British Columbia",
        +  "Quebec",
        +  "Alberta",
        +  "Manitoba",
        +  "Nova Scotia",
        +  "New Brunswick",
        +  "Saskatchewan",
        +  "PEI",
        +  "Newfoundland & Labrador",
        +  "Northwest Territories",
        +  "Nunavut",
        +  "Yukon",
        +  "Newfoundland and Labrador"
        +]
  3. 22 tool updates
    • Addedbc_rescission_period
    • Addedcapital_cost_allowance
    • Addedclosing_costs
    • Addedcmhc_insurance
    • Addedcost_of_selling
    • Addeddebt_service_ratio
    • Addeddebt_to_income
    • Addedhouse_hacking
    • Addedinsured_insurable_uninsured
    • Addedmortgage_amortization
    • Addedmortgage_prepayment
    • Addedmortgage_qualifier
    • Addedmortgage_renewal
    • Addedmortgage_stress_test
    • Addedproperty_development
    • Addedproperty_tax
    • Addedreal_estate_commission
    • Addedrenovation_roi
    • Addedrent_vs_buy
    • Addedreverse_mortgage
    • Addedsecond_home_affordability
    • Addedseventy_percent_rule
  4. 1 tool update
    • Changedmortgage_affordability1 field changed
      • changedInput schema / properties / interestRatePct / default
        Previous value: -5.23New value: +5.25
  5. 12 tool updates
    • Changedbc_home_flipping_tax3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "daysHeld": 500,
        +    "taxableIncome": 120000
        +  }
        +]
      • changedInput schema / properties / daysHeld / description
        Previous value: -"Number of days the property was owned before sale"New value: +"Days owned before the sale"
    • Changedcap_rate6 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "annualOperatingExpenses": 9500,
        +    "city": "hamilton",
        +    "downPayment": 130000,
        +    "monthlyGrossRent": 3400,
        +    "purchasePrice": 650000
        +  }
        +]
      • addedInput schema / properties / amortizationYears / description
        Added value: +"Mortgage amortization in years"
      • changedInput schema / properties / annualOperatingExpenses / description
        Previous value: -"Total annual operating expenses in CAD (property tax, insurance, management, maintenance, landlord utilities) — excludes mortgage payments"New value: +"Annual operating expenses in CAD (tax, insurance, management, maintenance, landlord utilities); excludes the mortgage"
      • changedInput schema / properties / monthlyGrossRent / description
        Previous value: -"Total gross monthly rent across all units in CAD"New value: +"Gross monthly rent for all units in CAD"
      • addedInput schema / properties / propertyType / description
        Added value: +"Used for down payment warnings"
    • Changedcapital_gains_tax9 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "annualIncome": 85000,
        +    "purchasePrice": 600000,
        +    "salePrice": 900000,
        +    "sellingCosts": 40000
        +  }
        +]
      • changedInput schema / properties / annualIncome / description
        Previous value: -"Your other annual income in CAD — the gain stacks on top of this"New value: +"Other annual income in CAD; the gain is taxed on top of it"
      • addedInput schema / properties / assetType / description
        Added value: +"What was sold; decides which exemptions apply"
      • changedInput schema / properties / buyingCosts / description
        Previous value: -"Land transfer tax, legal fees, and other costs of acquiring"New value: +"Land transfer tax, legal and other buying costs"
      • changedInput schema / properties / capitalLosses / description
        Previous value: -"Prior/current capital losses available to offset the gain"New value: +"Capital losses (prior or current) to offset the gain"
      • changedInput schema / properties / sellingCosts / description
        Previous value: -"Realtor commission, legal fees, and other costs of selling"New value: +"Commission, legal and other selling costs"
      • addedInput schema / properties / taxpayerType / description
        Added value: +"Who sold the asset"
      • changedInput schema / properties / yearsOwned / description
        Previous value: -"Years the property was owned (principal-residence proration)"New value: +"Years owned (for principal-residence proration)"
    • Changedheloc_second_mortgage6 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "amountToBorrow": 100000,
        +    "annualHouseholdIncome": 160000,
        +    "homeValue": 900000,
        +    "outstandingFirstMortgage": 450000
        +  }
        +]
      • addedInput schema / properties / province / description
        Added value: +"Sets the property-tax estimate used in TDS"
      • addedInput schema / properties / purposeOfFunds / description
        Added value: +"What the money is for"
      • addedInput schema / properties / secondMortgageAmortYears / description
        Added value: +"Second mortgage amortization in years (not used by interest-only Private)"
      • addedInput schema / properties / secondMortgageTermYears / description
        Added value: +"Second mortgage term in years"
    • Changedhouse_flipping6 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "afterRepairValue": 720000,
        +    "holdingPeriodMonths": 8,
        +    "monthlyHoldingCosts": 2500,
        +    "purchasePrice": 550000,
        +    "renovationCost": 60000
        +  }
        +]
      • changedInput schema / properties / closingCostsBuy / description
        Previous value: -"Legal and inspection costs on the purchase, excluding land transfer tax"New value: +"Purchase legal/inspection costs, excluding land transfer tax"
      • changedInput schema / properties / closingCostsSell / description
        Previous value: -"Legal and staging costs on the sale, excluding commission"New value: +"Sale legal/staging costs, excluding commission"
      • changedInput schema / properties / contingencyPct / description
        Previous value: -"Renovation contingency as a percent of the renovation budget"New value: +"Contingency as a percent of renovationCost"
      • addedInput schema / properties / province / description
        Added value: +"Province; sets the land transfer tax"
    • Changedincome_tax3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "annualIncome": 95000,
        +    "province": "Ontario"
        +  }
        +]
      • addedInput schema / properties / employmentType / description
        Added value: +"Self-employed pays both CPP/QPP halves"
    • Changedland_transfer_tax4 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "inToronto": true,
        +    "isFirstTimeBuyer": true,
        +    "price": 750000,
        +    "province": "Ontario"
        +  }
        +]
      • addedInput schema / properties / isFirstTimeBuyer / description
        Added value: +"First-time buyer (rebate where one exists)"
      • changedInput schema / properties / quebecMunicipality / description
        Previous value: -"Quebec only: 'montreal' uses Montreal's welcome-tax brackets (the website's Quebec default); 'other' uses the provincial base schedule for municipalities without higher rates above $500,000"New value: +"Quebec only: 'montreal' = Montreal's welcome-tax brackets (default); 'other' = provincial base schedule, for municipalities without higher rates above $500,000"
    • Changedminimum_down_payment3 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "homePrice": 800000
        +  }
        +]
      • changedInput schema / properties / homePrice / description
        Previous value: -"Purchase price in CAD, e.g. 800000"New value: +"Purchase price in CAD"
    • Changedmortgage_affordability6 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "annualIncome": 110000,
        +    "downPayment": 80000,
        +    "monthlyDebts": 400
        +  }
        +]
      • addedInput schema / properties / amortizationYears / description
        Added value: +"Amortization: 25 or 30 years"
      • addedInput schema / properties / downPaymentMode / description
        Added value: +"downPayment as dollars or percent"
      • addedInput schema / properties / propertyType / description
        Added value: +"Type of home being bought"
      • addedInput schema / properties / province / description
        Added value: +"Province of the purchase"
    • Changedmortgage_payment9 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "annualInterestRatePct": 5.25,
        +    "downPayment": 65000,
        +    "homePrice": 650000
        +  }
        +]
      • changedInput schema / properties / downPayment / description
        Previous value: -"Down payment amount in CAD (or percent if downPaymentType='percent'). Required when homePrice is used."New value: +"Down payment in CAD, or percent if downPaymentType='percent'. Required with homePrice."
      • addedInput schema / properties / downPaymentType / description
        Added value: +"downPayment as dollars or percent of homePrice"
      • changedInput schema / properties / homePrice / description
        Previous value: -"Purchase price in CAD, e.g. 650000. Use with downPayment. Omit if the user gave you the mortgage amount instead."New value: +"Purchase price in CAD, with downPayment. Omit if the user gave the mortgage amount."
      • changedInput schema / properties / loanAmount / description
        Previous value: -"The mortgage amount itself in CAD, when the user stated the loan rather than the purchase price. Mutually exclusive with homePrice. No CMHC premium is applied on this path — the amount is taken as the principal."New value: +"Mortgage amount in CAD, instead of homePrice. No CMHC premium is added."
      • addedInput schema / properties / paymentFrequency / description
        Added value: +"How often payments are made"
      • addedInput schema / properties / rateType / description
        Added value: +"Fixed or variable rate"
      • addedInput schema / properties / termYears / description
        Added value: +"Mortgage term in years"
    • Changedmortgage_penalty7 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "balance": 400000,
        +    "contractRatePct": 4.29,
        +    "monthsRemaining": 30,
        +    "postedAtOriginationPct": 6.49,
        +    "todaysPostedForClosestTermPct": 6.09
        +  }
        +]
      • changedInput schema / properties / currentRateForRemainingTermPct / description
        Previous value: -"Monoline method: today's rate for the remaining term (percent). Lender-specific — omit if unknown and the reply will say it was assumed."New value: +"Monoline method: today's rate for the remaining term (percent). Omit if unknown (assumption is flagged)."
      • changedInput schema / properties / lenderMethod / description
        Previous value: -"Big banks use the posted-rate IRD, monolines use actual rates. Which is larger depends on the gap between the discount originally received and today's posted rate — it is NOT always the big bank."New value: +"Big banks use the posted-rate IRD, monolines actual rates. Either can be larger, depending on the original discount vs today's posted rate."
      • changedInput schema / properties / postedAtOriginationPct / description
        Previous value: -"Big-bank method: posted (not discounted) rate when you signed, from your mortgage documents. HIGH IMPACT — this single value can change the penalty several-fold. Omit if unknown and the reply will say it was assumed."New value: +"Big-bank method: posted (not discounted) rate when signed, from the mortgage documents. Can change the penalty several-fold. Omit if unknown (assumption is flagged)."
      • addedInput schema / properties / rateType / description
        Added value: +"Fixed or variable mortgage"
      • changedInput schema / properties / todaysPostedForClosestTermPct / description
        Previous value: -"Big-bank method: your lender's posted rate today for the closest term. Omit if unknown and the reply will say it was assumed."New value: +"Big-bank method: the lender's posted rate today for the closest term. Omit if unknown (assumption is flagged)."
    • Changedrent_increase4 fields changed
      • removedInput schema / $schema
        Removed value: -"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / examples
        Added value: +[
        +  {
        +    "currentRent": 2200,
        +    "province": "Ontario",
        +    "year": "2026"
        +  }
        +]
      • addedInput schema / properties / province / description
        Added value: +"Province whose guideline applies"
      • changedInput schema / properties / year / description
        Previous value: -"Guideline year, e.g. '2026'. Use the rent_increase tool's supported years if unsure."New value: +"Guideline year, e.g. '2026'. An unsupported year uses the latest; the reply shows which."
  6. 1 tool update
    • Changedmortgage_affordability1 field changed
      • changedInput schema / properties / interestRatePct / default
        Previous value: -5.15New value: +5.23
  7. 12 tool updates
    • First observedbc_home_flipping_tax
    • First observedcap_rate
    • First observedcapital_gains_tax
    • First observedheloc_second_mortgage
    • First observedhouse_flipping
    • First observedincome_tax
    • First observedland_transfer_tax
    • First observedminimum_down_payment
    • First observedmortgage_affordability
    • First observedmortgage_payment
    • First observedmortgage_penalty
    • First observedrent_increase

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides mortgage calculation tools, including monthly payment, amortization schedules, lump sum payments, and extra monthly payments for real estate agents and AI assistants.
    7
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    39 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).
    45
    1,466 npm
    13
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to run free, read-only calculators built on official government rules across Ireland, the UK, Canada, Québec, Australia and New Zealand, covering taxes, welfare benefits, pensions, property transaction taxes, parental leave and savings. Every result links the public calculator page and the official sources it relies on, so agents can cite them.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides real tax calculations for US, Canada, Australia, and UK income, property, and dividend taxes using up-to-date local data with no API keys required.
    7
    53 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources