HomeCalc — Canadian Mortgage & Tax Calculators
Server Details
Canadian mortgage, tax & land transfer calculators: 12 read-only tools, LTT for all 13 provinces.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 12 tools
Most tools have clearly distinct calculation targets, but house_flipping overlaps with bc_home_flipping_tax and capital_gains_tax because it also computes taxes on a flipped property, and land_transfer_tax is embedded inside house_flipping. The descriptions provide enough guidance to select correctly, but some boundary ambiguity remains.
All tool names use consistent lowercase snake_case and are descriptive noun phrases for their calculator domains, with no mixed casing or verb/noun style clashes. The convention is predictable across all 12 tools.
12 tools is well within the ideal 3–15 range for a focused calculator suite, and each tool corresponds to a distinct Canadian mortgage or tax calculation. There is no obvious redundancy or bloat.
The suite covers core mortgage qualification, payment, penalty, down-payment, equity, rental yield, rent control, and major tax calculators for Canada. Minor gaps exist (e.g. property tax, amortization schedule, or refinance breakdown), but agents can work around them for most user needs.
Available Tools
12 toolsbc_home_flipping_taxBC Home Flipping Tax CalculatorARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| daysHeld | Yes | Number of days the property was owned before sale | |
| taxableIncome | Yes | Proceeds minus cost to acquire minus cost to improve (may be negative) | |
| isPrimaryResidence | No | Lived in it as a primary residence |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover only readOnly/openWorld, so the description carries real weight and delivers it: 20% tapering to 0% over 366-730 days, a $20,000 deduction gated on 365+ days held. That is genuine model behavior beyond structured fields, though it doesn't note estimation limits or whether other exemptions (e.g. deaths, divorces) are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, rate schedule front-loaded followed by the deduction condition. No filler and no redundancy with the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with a fully documented 3-parameter schema and no output schema, the description supplies the full rate model and deduction rule. It could still state whether the result is a plain tax amount or a breakdown, and confirm the estimate-only caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds the interaction the schema does not spell out: the deduction applies only if held at least 365 days, which ties isPrimaryResidence to daysHeld and clarifies why taxableIncome can be negative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("Estimate") plus a precise resource ("British Columbia's home flipping tax") and scope ("sold within 730 days"). This clearly separates it from siblings like capital_gains_tax and house_flipping without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 730-day window and residency condition imply the applicable scenario, but there is no explicit when-to-use instruction and no routing against the near-identical sibling "house_flipping". 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.
capital_gains_taxCanadian Capital Gains Tax CalculatorARead-onlyInspect
Estimate Canadian capital gains tax on a disposition (real estate, stocks, crypto, a business, or a rental property). Applies the flat 50% inclusion rate, the principal-residence exemption, the lifetime capital gains exemption for QSBC shares, capital-loss offsets, and rental CCA recapture — then taxes the taxable gain on top of your other income at federal + provincial brackets.
| Name | Required | Description | Default |
|---|---|---|---|
| isQSBC | No | Business only: qualified small business corporation shares (LCGE) | |
| taxYear | No | Tax year of the disposition | |
| province | No | Province/territory of residence | Ontario |
| assetType | No | real-estate | |
| landValue | No | Rental only: land portion of the sale price (splits land vs building gain) | |
| salePrice | Yes | Gross sale proceeds in CAD | |
| yearsOwned | No | Years the property was owned (principal-residence proration) | |
| buyingCosts | No | Land transfer tax, legal fees, and other costs of acquiring | |
| annualIncome | No | Your other annual income in CAD — the gain stacks on top of this | |
| sellingCosts | No | Realtor commission, legal fees, and other costs of selling | |
| taxpayerType | No | individual | |
| capitalLosses | No | Prior/current capital losses available to offset the gain | |
| lcgeRemaining | No | Remaining lifetime capital gains exemption room in CAD | |
| purchasePrice | Yes | Original purchase price in CAD | |
| yearsDesignated | No | Years designated as your principal residence | |
| ccaClaimedToDate | No | Rental only: total CCA claimed to date | |
| capitalImprovements | No | Capital improvements added to the adjusted cost base | |
| isPrincipalResidence | No | Real estate only: claim the principal residence exemption | |
| originalBuildingCost | No | Rental only: original building cost for CCA recapture |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description goes further by disclosing the computational model: a flat 50% inclusion rate, principal-residence exemption, LCGE for QSBC shares, capital-loss offsets, rental CCA recapture, and stacking on other income at federal + provincial brackets. 'Estimate' honestly signals an approximation rather than a filed figure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scope, and the methodology list is compact rather than padded. It is dense but every clause carries information; only the long exemption enumeration risks being skimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter tax engine with no output schema, the description gives an unusually complete picture of the calculation pipeline and the conditions each branch responds to. It omits how taxYear affects brackets and whether results break down by federal vs provincial components, which are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents nearly every parameter, and the description mostly restates the same mechanisms (PRE, LCGE, CCA recapture) without naming parameters or adding input-format detail. The one genuinely additive point is that the gain stacks on top of other income, which clarifies the role of annualIncome.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Estimate Canadian capital gains tax on a disposition' — and enumerates the covered asset classes (real estate, stocks, crypto, business, rental). That scope cleanly separates it from siblings like income_tax, land_transfer_tax, and bc_home_flipping_tax.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The asset-type list implies when the tool applies, but there is no explicit when-to-use/when-not guidance and no routing to alternatives. With twelve siblings — including income_tax and bc_home_flipping_tax, which overlap on Canadian property taxation — the agent is left to infer which calculator to pick.
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)ARead-onlyInspect
Analyze a Canadian rental property: capitalization rate, net operating income, gross rent multiplier, expense ratio, annual cash flow and cash-on-cash return, plus how the cap rate compares to typical yields in the local market. Mortgage math uses Canadian semi-annual compounding.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City used for the cap-rate benchmark range | other |
| downPayment | Yes | Down payment in CAD. Set equal to purchasePrice for an all-cash purchase. | |
| propertyType | No | single-family | |
| purchasePrice | Yes | Purchase price in CAD | |
| vacancyRatePct | No | Vacancy allowance as a percent of gross rent | |
| interestRatePct | No | Mortgage rate as a percent, e.g. 5.49 | |
| monthlyGrossRent | Yes | Total gross monthly rent across all units in CAD | |
| amortizationYears | No | ||
| annualOperatingExpenses | Yes | Total annual operating expenses in CAD (property tax, insurance, management, maintenance, landlord utilities) — excludes mortgage payments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond that: the mortgage math uses Canadian semi-annual compounding, and the output includes a local-market cap-rate benchmark. It does not discuss error conditions or assumption caveats, but for a stateless calculator this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The metric list comes first and the Canadian-compounding caveat is placed last as a scoping note, which is the right front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned metrics, and it flags the Canadian-specific calculation convention, which matters for a 9-parameter domain tool. It stops short of explaining required-vs-optional inputs or the benchmark source, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78% and most parameters carry their own descriptions (including units and the all-cash downPayment tip). The description only indirectly explains the 'city' parameter via the local-market benchmark sentence, adding little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Analyze') and resource ('a Canadian rental property') and enumerates exactly which metrics are produced (cap rate, NOI, GRM, expense ratio, cash flow, cash-on-cash return). An agent can distinguish it from siblings like mortgage_payment or mortgage_affordability 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Analyze a Canadian rental property' plus the market-benchmark comparison, so an agent can infer this is the investment-return tool rather than a financing tool. However, no explicit when-to-use/when-not guidance or named alternative (e.g. mortgage_payment for pure loan math) is given.
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)ARead-onlyInspect
Compare a HELOC against a second mortgage for tapping home equity in Canada. Returns 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 equivalent numbers for B and private lenders.
| Name | Required | Description | Default |
|---|---|---|---|
| province | No | Ontario | |
| homeValue | Yes | Current market value of the home in CAD | |
| amountToBorrow | Yes | Amount you want to borrow in CAD | |
| helocSpreadPct | No | Lender spread over prime as a percent, e.g. 0.5 | |
| purposeOfFunds | No | Home Renovation | |
| helocPrimeRatePct | No | Prime rate as a percent; defaults to the site's current prime | |
| existingMonthlyDebts | No | Other monthly debt payments (car, cards, loans) | |
| annualHouseholdIncome | Yes | Gross annual household income in CAD | |
| extraMonthlyPrincipal | No | Optional extra principal paid monthly on the HELOC | |
| secondMortgageRatePct | No | Second mortgage rate as a percent; defaults to the tier's typical rate | |
| secondMortgageTermYears | No | ||
| outstandingFirstMortgage | Yes | Balance remaining on the first mortgage in CAD | |
| secondMortgageAmortYears | No | ||
| secondMortgageLenderTier | No | A = bank/credit union, B = trust/MIC, Private = individual investor | A |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully adds behavioral detail beyond that: the 65% LTV revolving cap, 80% total secured borrowing limit with an A lender, OSFI stress-test TDS qualification, and coverage of B/Private tiers. It stops short of describing edge cases or default fallbacks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the comparison purpose followed by a compact enumeration of the computed outputs. Every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters and no output schema, the description carries the return-value burden and does so well by naming the outputs (borrowing capacity, monthly payments, TDS qualification, tier equivalents). It is nearly complete, though it omits the optional default behaviors (e.g., prime rate, tier rate defaults) that the schema documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so the schema already documents most inputs. The description adds domain meaning that maps to parameters (65% LTV tie to homeValue/outstandingFirstMortgage, A/B/Private lending to secondMortgageLenderTier, OSFI rate), but does not explain individual parameters beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and two named resources (HELOC vs second mortgage) for a distinct jurisdiction (Canada), which clearly separates it from siblings like mortgage_payment or mortgage_affordability. An agent can tell what it does 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Compare a HELOC against a second mortgage for tapping home equity,' but there is no explicit when-to-use, when-not-to-use, or routing to sibling tools (e.g., 'for a plain affordability check use mortgage_affordability'). The agent must infer the context.
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)ARead-onlyInspect
Estimate the profit on a Canadian house flip: land transfer tax (with first-time buyer rebate), renovation cost 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 shows the tax saving from waiting past the 12-month line.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name — include 'Toronto' to add the Toronto municipal land transfer tax | |
| province | No | Ontario | |
| purchasePrice | Yes | Purchase price in CAD | |
| contingencyPct | No | Renovation contingency as a percent of the renovation budget | |
| renovationCost | Yes | Budgeted renovation cost in CAD, before contingency | |
| closingCostsBuy | No | Legal and inspection costs on the purchase, excluding land transfer tax | |
| afterRepairValue | Yes | Expected resale price after renovation (ARV) in CAD | |
| closingCostsSell | No | Legal and staging costs on the sale, excluding commission | |
| isFirstTimeBuyer | No | Eligible for the first-time buyer land transfer tax rebate | |
| marginalTaxRatePct | No | Your combined marginal tax rate as a percent | |
| holdingPeriodMonths | No | Months held from purchase to sale — under 12 triggers the CRA flipping rule | |
| monthlyHoldingCosts | No | Monthly carrying costs: mortgage interest, property tax, insurance, utilities | |
| realtorCommissionPct | No | Realtor commission on the sale as a percent of ARV |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: it explains the CRA residential flipping rule's consequence (held under 12 months = 100% business income, no capital gains treatment) and states that the tool flags the rule and computes the savings from crossing the 12-month line. It stops short of disclosing estimation assumptions or rounding conventions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and then the tax-rule behavior; nothing is redundant with the title. The first sentence is a dense comma-list that reads as an inventory of inputs rather than a calculation story, which slightly blurs the read but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema, the description usefully names what comes back (estimated profit, tax bill, flipping-rule flag, 12-month savings), so an agent knows the shape of the result. What is missing is guidance on the Canadian scope boundary versus the BC-specific sibling and any note on model assumptions, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the schema already documents nearly every parameter, and the baseline is 3. The description organizes the inputs into a calculation flow (rebate, contingency, holding costs, commission, closing costs, marginal rate) and adds the business-income vs capital-gains consequence for holdingPeriodMonths, but it introduces no parameter syntax, units, or defaults the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Estimate the profit on a Canadian house flip') and then enumerates exactly what is included: land transfer tax with rebate, renovation contingency, holding costs, commission, closing costs, and the tax bill. This clearly differentiates it from siblings like land_transfer_tax or capital_gains_tax, which each cover only one slice of the same flip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the whole-flip calculator that includes the CRA 12-month rule, and the description names the comparison it enables ('tax saving from waiting past the 12-month line'). However, it gives no explicit when-to-use/when-not guidance and does not route away from overlapping siblings such as bc_home_flipping_tax (BC-specific) or capital_gains_tax.
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 CalculatorBRead-onlyInspect
Calculate 2026 Canadian federal + provincial income tax, CPP/QPP, EI, QPIP (Quebec), Ontario surtax and Health Premium where applicable, plus net (take-home) pay for any province.
| Name | Required | Description | Default |
|---|---|---|---|
| province | Yes | Province of residence | |
| annualIncome | Yes | Gross annual employment income in CAD | |
| employmentType | No | employed | |
| rrspContribution | No | Annual RRSP contribution in CAD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the 2026 tax year, which contribution programs are included (CPP/QPP, EI, QPIP), Quebec-specific deductions, and that net take-home pay is produced. It stops short of describing permissions, edge cases, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence covering the full calculation scope with no filler. The long parenthetical list of contributions is dense but each item earns its place by defining coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what is returned. It indicates net pay and the tax components computed, which is partially sufficient, but it does not describe the shape of the result (breakdown per component, deductions vs. tax) that an agent would need to interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents province, annualIncome and rrspContribution; the only undocumented parameter is employmentType. The description adds nothing about how rrspContribution or employmentType affect the calculation, so it does not compensate for the small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and a well-scoped resource: 2026 federal + provincial income tax, CPP/QPP, EI, QPIP, Ontario surtax and Health Premium, plus net pay. That enumeration distinguishes it from sibling tax tools like capital_gains_tax or land_transfer_tax, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what is calculated but never when to choose this tool over capital_gains_tax or the property-tax siblings, and gives no prerequisites (residency, employment type, tax-year constraints) or exclusions.
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 CalculatorARead-onlyInspect
Estimate land transfer tax on a home purchase for all 13 provinces and territories (incl. Toronto MLTT, Montreal welcome tax), first-time buyer rebates, plus the transfer registration fee (the government fee to register the deed) and the total due at registration. Alberta, Saskatchewan, Newfoundland & Labrador and the three territories charge no land transfer tax, only the registration fee. The mortgage registration fee is separate and not included.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Purchase price in CAD | |
| province | Yes | Province or territory | |
| inToronto | No | Ontario only: property is within the City of Toronto (adds the municipal LTT) | |
| isFirstTimeBuyer | No | ||
| quebecMunicipality | No | 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 | montreal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond that: what is bundled into the result (transfer tax + registration fee + total due) and, critically, what is excluded (mortgage registration fee), which prevents misreading the output as an all-in cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, with the core scope front-loaded and the exclusions and edge cases trailing in order of importance. Dense but every clause carries information about coverage or output composition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by enumerating what the result contains (LTT estimate, registration fee, total due at registration). Combined with the parameter-level coverage notes, an agent has enough to call it and interpret the answer, though exact return field names remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80% and the description supplements it meaningfully by mapping parameters to real-world cases: Toronto triggers the municipal MLTT, Montreal uses welcome-tax brackets, and first-time buyer rebates apply. It doesn't spell out the province-by-province fee schedule, but the semantics of each input are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (estimate) and resource (land transfer tax on a home purchase), and scopes it precisely: 13 provinces/territories, Toronto MLTT, Montreal welcome tax, first-time buyer rebates, plus registration fee and total due. An agent can distinguish this from siblings like capital_gains_tax or mortgage_payment 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context and useful exclusions: it explains that AB, SK, NL and the three territories charge only the registration fee, and that the mortgage registration fee is a separate cost not included. It doesn't name a sibling tool as an alternative, but the domain boundaries are unambiguous.
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)ARead-onlyInspect
Calculate the minimum down payment for a Canadian home under the Dec 2024 CMHC rules (5% on the first $500k, 10% on the portion from $500k–$1.5M, 20% at/above $1.5M), plus whether CMHC insurance applies and the premium rate.
| Name | Required | Description | Default |
|---|---|---|---|
| homePrice | Yes | Purchase price in CAD, e.g. 800000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is clear. The description adds meaningful behavioral context by disclosing the exact down payment tiers and that it also reports CMHC insurance applicability and premium rate, though it does not discuss output format or edge-case limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that immediately states the main calculation, followed by necessary rule detail in a parenthetical. Every clause earns its place by specifying the calculation and outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter calculator with no output schema, the description sufficiently explains what is computed and returned: the minimum down payment, whether CMHC insurance applies, and the premium rate. An agent has enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single homePrice parameter has 100% schema description coverage, so the schema already defines its meaning and constraints. The description does not add parameter-level detail beyond what the schema provides, making the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (minimum down payment) with the exact Canadian CMHC rule set and additional outputs (CMHC insurance applicability and premium rate). The scope is unambiguous and clearly distinct from sibling mortgage or tax calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful by stating its purpose, but it does not explicitly say when to use it versus alternatives such as mortgage_payment or mortgage_affordability. No exclusions or routing 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)ARead-onlyInspect
Work out the maximum home price a Canadian buyer qualifies for: binary-searches the price that keeps both the GDS (39%) and TDS (44%) ratios satisfied 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 the GDS/TDS ratios.
| Name | Required | Description | Default |
|---|---|---|---|
| province | No | Ontario | |
| condoFees | No | Monthly condo fees — 50% counts toward GDS/TDS for condos | |
| downPayment | Yes | Down payment — dollars, or a percent if downPaymentMode='percent' | |
| annualIncome | Yes | Primary applicant gross annual income in CAD | |
| monthlyDebts | No | Other monthly debt payments (car, cards, student loans) | |
| propertyType | No | single-family | |
| monthlyHeating | No | Estimated monthly heating cost in CAD | |
| downPaymentMode | No | dollar | |
| interestRatePct | No | Contract mortgage rate as a percent, e.g. 4.79 | |
| amortizationYears | No | ||
| annualPropertyTax | No | Estimated annual property tax in CAD | |
| coApplicantIncome | No | Co-applicant gross annual income in CAD (0 = none) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it a read-only, closed-world operation, so the safety bar is low. The description then adds genuine behavioral context beyond that: the binary-search approach, the two ratio thresholds applied, the stress-test rate, the down-payment tier logic, and the insurability ceiling — none of which the annotations supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler: the first front-loads the purpose and the qualifying rules, the second lists the return values. It is dense but every clause earns its place; minor credit withheld only because the first sentence packs several distinct constraints into one long clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly spells out the returns (max price, max mortgage, CMHC premium, monthly payment, GDS/TDS ratios), and annotations cover the safety profile. For a 12-parameter domain calculator this is nearly complete, though it does not tie the ratio rules back to the specific inputs that drive them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the schema carries most of the parameter meaning (units, defaults, ranges, enums). The description adds domain framing — down-payment tiers and the CMHC ceiling — but does not clarify individual parameter behavior (e.g. how downPaymentMode interacts with downPayment) beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('work out the maximum home price a Canadian buyer qualifies for') and pins down the exact domain scope: GDS 39%, TDS 44%, OSFI stress-test, Dec-2024 down-payment tiers, $1.5M CMHC ceiling. This clearly separates it from siblings like mortgage_payment and minimum_down_payment, which compute payments or down payments rather than qualification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when the tool is applicable (a buyer evaluating affordability under Canadian rules) but never routes the agent against the obvious alternatives. It does not say how it differs from, or when to prefer it over, mortgage_payment or minimum_down_payment, despite the sibling list containing both.
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 CalculatorARead-onlyInspect
Calculate the periodic mortgage payment for a Canadian home. Call it ONE of two ways: (a) if the user gave a PURCHASE PRICE, pass homePrice + downPayment and CMHC insurance is applied when the down payment is under 20%; (b) if the user gave a MORTGAGE / LOAN AMOUNT (e.g. "payment on a $500,000 mortgage"), pass loanAmount on its own. Do NOT invent a purchase price in order to reach a loan amount — use loanAmount. Inventing a price changes the answer by several percent and attaches a CMHC premium the user does not owe.
| Name | Required | Description | Default |
|---|---|---|---|
| province | No | Province name, used only for CMHC PST on the premium | |
| rateType | No | fixed | |
| homePrice | No | Purchase price in CAD, e.g. 650000. Use with downPayment. Omit if the user gave you the mortgage amount instead. | |
| termYears | No | ||
| loanAmount | No | 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. | |
| downPayment | No | Down payment amount in CAD (or percent if downPaymentType='percent'). Required when homePrice is used. | |
| downPaymentType | No | amount | |
| paymentFrequency | No | monthly | |
| amortizationYears | No | Amortization in years (max 25 insured, 30 uninsured/first-time new builds) | |
| annualInterestRatePct | Yes | Annual interest rate as a percent, e.g. 5.25 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description goes further, disclosing that CMHC insurance is applied when the down payment is under 20%, that the loanAmount path takes the amount as principal with no premium, and that wrong-path input changes the result by several percent. It stops short of describing the return payload (no output schema exists, so a brief note on what comes back would help).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences, each earning its place, with the two-branch decision front-loaded ahead of the cautionary exclusion. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, non-trivial calculator with no output schema, the description nails the one genuinely ambiguous decision (which of two input paths to take) and the CMHC consequence. It omits guidance on the remaining options (frequency, term, amortization, province), leaving those to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds real meaning beyond it: the homePrice+downPayment pairing, the mutual exclusivity of loanAmount, and the CMHC trigger condition. Parameters like province, rateType, termYears, paymentFrequency, and amortizationYears are not addressed in the description, though the schema covers several of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate the periodic mortgage payment for a Canadian home') with clear scope. It is immediately distinguishable from siblings like mortgage_affordability, minimum_down_payment, and mortgage_penalty, which do different jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two explicit calling modes keyed to what the user provided (purchase price vs. mortgage amount), plus an explicit exclusion: 'Do NOT invent a purchase price in order to reach a loan amount.' An agent knows exactly when to use each path and what error to avoid.
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)ARead-onlyInspect
Estimate the penalty to break a Canadian mortgage: three months' interest vs the interest rate differential (IRD), including the big-bank posted-rate method. Fixed = greater of the two; variable = usually three months' interest. IMPORTANT: the three rate inputs below are lender-specific and are NOT supplied by most users. If they are omitted, this tool falls back to illustrative site defaults and the answer can be several times too low or too high — the response reports exactly which values were assumed in assumedInputs. Always surface those assumptions to the user and tell them to confirm the real figures with their lender.
| Name | Required | Description | Default |
|---|---|---|---|
| balance | Yes | Outstanding mortgage balance in CAD | |
| rateType | No | fixed | |
| lenderMethod | No | 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. | big-bank |
| contractRatePct | Yes | Your contract rate as a percent, e.g. 5.25 | |
| monthsRemaining | Yes | Months remaining in the term | |
| postedAtOriginationPct | No | 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. | |
| todaysPostedForClosestTermPct | No | Big-bank method: your lender's posted rate today for the closest term. Omit if unknown and the reply will say it was assumed. | |
| currentRateForRemainingTermPct | No | Monoline method: today's rate for the remaining term (percent). Lender-specific — omit if unknown and the reply will say it was assumed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only/open-world, so the description carries the behavioral load and does so well: it discloses the illustrative-default fallback, that omitting rates can skew results several-fold, and that the response reports assumed values in `assumedInputs` with instructions to surface them. This is exactly the accuracy caveat an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and method logic before the IMPORTANT caveat, and every sentence is load-bearing. Slightly dense in the opening clause, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, 3 required, and no output schema, the description covers the critical unknowns: which inputs are commonly missing, what happens then, and that `assumedInputs` appears in the response. It stops short of describing the rest of the return shape, but the accuracy-relevant part is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 88%, so the baseline is 3, but the description adds meaning beyond the schema by framing the three optional rate inputs as lender-specific values most users will not have, and explaining the fallback when they are omitted. It doesn't add format/syntax detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (estimate the penalty to break a Canadian mortgage) and immediately scopes the calculation methods (three months' interest vs IRD, big-bank posted-rate method). This cleanly separates it from the other real-estate calculators such as 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use (breaking a fixed vs variable Canadian mortgage) and explains the branching rule. It does not name an alternative sibling or state when not to use it, but for a self-contained calculator the when-to-use guidance is clear.
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)ARead-onlyInspect
Calculate the maximum allowable annual rent increase under the Ontario LTB, BC RTB or Manitoba RTB guideline for a given year, and the resulting new rent.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Guideline year, e.g. '2026'. Use the rent_increase tool's supported years if unsure. | |
| province | Yes | ||
| currentRent | Yes | Current monthly rent in CAD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so an agent knows this is a safe, closed-world computation. The description adds the legal framing (LTB/RTB guidelines) but omits meaningful behavioral facts such as which years are supported, what happens for unsupported inputs, and that only three provinces are valid — the schema's pointer to 'this tool's supported years' hints at a constraint the description never states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the computation, the three supported jurisdictions and the returned value with no filler. Nothing in it is redundant with the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states the return value (maximum allowable increase and resulting new rent), which is what an agent needs. The one real gap is the unsupported-year/unsupported-province behavior, but for a stateless three-parameter calculator the definition is otherwise sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: currentRent and year carry descriptions, while province is an undocumented enum. The description compensates partially by expanding the enum values into their regulators (Ontario LTB, BC RTB, Manitoba RTB), but it adds no unit, format or range detail beyond the schema, so the baseline of 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (maximum allowable annual rent increase) plus the scope (three named provinces, a given year) and the secondary output (resulting new rent). This clearly separates it from the mortgage, tax and cap-rate siblings, which compute entirely different quantities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The domain context makes the intended use obvious, but there is no explicit when-to-use or when-not-to-use guidance and no alternative tool is named. An agent can infer it is the rent-guideline calculator, but nothing tells it what to do if the province or year falls outside the supported set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- First observed
bc_home_flipping_tax - First observed
cap_rate - First observed
capital_gains_tax - First observed
heloc_second_mortgage - First observed
house_flipping - First observed
income_tax - First observed
land_transfer_tax - First observed
minimum_down_payment - First observed
mortgage_affordability - First observed
mortgage_payment - First observed
mortgage_penalty - First observed
rent_increase
Related MCP Connectors
Canadian mortgage calculators: renewal offers, extra payments, break-or-stay, debt consolidation.
Verified Canadian real-estate pros + housing data: rates, transfer tax, rent-vs-buy, QC assessments.
Deterministic Canadian mortgage calculations for qualification, debt service, LTV, and penalties.
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides mortgage calculation tools, including monthly payment, amortization schedules, lump sum payments, and extra monthly payments for real estate agents and AI assistants.7MIT

payotte-mcpofficial
AlicenseAqualityBmaintenanceCanadian real estate MCP server providing verified expert lookup, market stats, current rates, land transfer taxes, and more via Cloudflare Workers.8MIT- AlicenseAqualityCmaintenanceProvides 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.742 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.