Skip to main content
Glama

Estimate break cost

estimate_break_cost
Read-onlyIdempotent

Compute an itemised estimate of ending a lease early: notice-period rent, break fee, re-letting fee, rent until re-let, deposit credit and net cost vs staying. Use when the user asks what breaking their lease will cost. Do NOT use to weigh breaking vs subletting vs staying - use compare_options.

Input Schema

NameRequiredDescriptionDefault
depositNoSecurity deposit held by the landlord, non-negative amount, e.g. 2200. Default 0
currencyNoISO 4217 currency code used only to label amounts, e.g. USD, GBP, EUR. Default USD
monthly_rentYesCurrent monthly rent as a positive number in the lease currency, e.g. 2200
notice_monthsNoNotice period required by the lease, in months, e.g. 2; cannot exceed months_remaining. Default 2 (capped at months_remaining) if no break fee, else 0
reletting_feeNoFixed re-letting/advertising/cleaning fee stated in the lease, non-negative amount, e.g. 300. Default 0
break_fee_monthsNoEarly-termination (break) fee stated in the lease, in months' rent, e.g. 2. Default 0 = no break clause
months_remainingYesMonths left on the lease including the current month, positive number, e.g. 7
landlord_mitigatesNoWhether the landlord must try to re-let and offset rent (duty to mitigate). Default true; false = liable for all remaining rent
expected_relet_monthsNoExpected months until a replacement tenant moves in, e.g. 0.5 for about two weeks. Default 1

Output Schema

NameRequiredDescriptionDefault
currencyYesCurrency code the amounts are labelled in
breakdownYesItemised cost components of breaking the lease
path_usedNoWhich path net_break_cost uses: break_clause (notice rent + break fee + re-letting fee) or no_clause (rent until relet + re-letting fee)
stay_costYesTotal rent if the lease is kept to term, for comparison
disclaimerYesInformational, not-legal-advice disclaimer to show with the result
assumptionsYesAssumptions applied in the estimate (fee, notice, mitigation, deposit)
net_break_costYesEstimated net cost to break the lease after deposit credit: with a break fee, the cheaper of the break-clause and no-clause paths; with no break fee, the no-clause path. Floored at 0
net_without_break_clauseYesNet cost on the no-break-clause path (rent until relet + re-letting fee, less deposit)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / notice_months / description
      Previous value: -"Notice period required by the lease, in months, e.g. 2; cannot exceed months_remaining. Default 2 if no break fee, else 0"New value: +"Notice period required by the lease, in months, e.g. 2; cannot exceed months_remaining. Default 2 (capped at months_remaining) if no break fee, else 0"
    • changedOutput schema / properties / breakdown / properties / deposit_credit / description
      Previous value: -"Deposit amount credited against the cost"New value: +"Deposit credited against the cost, capped at the cost of the path used for net_break_cost"
    • changedOutput schema / properties / net_break_cost / description
      Previous value: -"Estimated net cost to break the lease after deposit credit (cheaper of the break-clause and no-clause paths, floored at 0)"New value: +"Estimated net cost to break the lease after deposit credit: with a break fee, the cheaper of the break-clause and no-clause paths; with no break fee, the no-clause path. Floored at 0"
    • addedOutput schema / properties / path_used
      Added value: +{
      +  "description": "Which path net_break_cost uses: break_clause (notice rent + break fee + re-letting fee) or no_clause (rent until relet + re-letting fee)",
      +  "enum": [
      +    "break_clause",
      +    "no_clause"
      +  ],
      +  "type": "string"
      +}
  2. Changed24 schema fields changed
    • changedInput schema / properties / break_fee_months / description
      Previous value: -"Early-termination fee in months' rent"New value: +"Early-termination (break) fee stated in the lease, in months' rent, e.g. 2. Default 0 = no break clause"
    • changedInput schema / properties / currency / description
      Previous value: -"Currency code in ISO 4217 format"New value: +"ISO 4217 currency code used only to label amounts, e.g. USD, GBP, EUR. Default USD"
    • changedInput schema / properties / deposit / description
      Previous value: -"Initial deposit amount as a number"New value: +"Security deposit held by the landlord, non-negative amount, e.g. 2200. Default 0"
    • changedInput schema / properties / expected_relet_months / description
      Previous value: -"Expected months to relett the property as a number"New value: +"Expected months until a replacement tenant moves in, e.g. 0.5 for about two weeks. Default 1"
    • changedInput schema / properties / landlord_mitigates / description
      Previous value: -"True if landlord mitigates damages, false otherwise"New value: +"Whether the landlord must try to re-let and offset rent (duty to mitigate). Default true; false = liable for all remaining rent"
    • changedInput schema / properties / monthly_rent / description
      Previous value: -"Monthly rent"New value: +"Current monthly rent as a positive number in the lease currency, e.g. 2200"
    • changedInput schema / properties / months_remaining / description
      Previous value: -"Months left on the lease (including the current one)"New value: +"Months left on the lease including the current month, positive number, e.g. 7"
    • changedInput schema / properties / notice_months / description
      Previous value: -"Number of months' notice required to terminate the lease"New value: +"Notice period required by the lease, in months, e.g. 2; cannot exceed months_remaining. Default 2 if no break fee, else 0"
    • changedInput schema / properties / reletting_fee / description
      Previous value: -"Fee for reletting the property as a number"New value: +"Fixed re-letting/advertising/cleaning fee stated in the lease, non-negative amount, e.g. 300. Default 0"
    • addedOutput schema / properties / assumptions
      Added value: +{
      +  "description": "Assumptions applied in the estimate (fee, notice, mitigation, deposit)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / break_fee
      Removed value: -{
      -  "description": "The early-termination fee.",
      -  "type": "number"
      -}
    • addedOutput schema / properties / breakdown
      Added value: +{
      +  "description": "Itemised cost components of breaking the lease",
      +  "properties": {
      +    "break_fee": {
      +      "description": "Break fee amount (monthly_rent x break_fee_months)",
      +      "type": "number"
      +    },
      +    "deposit_credit": {
      +      "description": "Deposit amount credited against the cost",
      +      "type": "number"
      +    },
      +    "reletting_fee": {
      +      "description": "Fixed re-letting fee from the lease",
      +      "type": "number"
      +    },
      +    "rent_during_notice": {
      +      "description": "Rent owed for the notice period (monthly_rent x notice_months)",
      +      "type": "number"
      +    },
      +    "rent_until_relet_if_liable": {
      +      "description": "Rent owed until a replacement tenant is found (or to lease end if the landlord does not mitigate)",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "rent_during_notice",
      +    "break_fee",
      +    "reletting_fee",
      +    "rent_until_relet_if_liable",
      +    "deposit_credit"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / cost_breakdown
      Removed value: -{
      -  "description": "A detailed breakdown of the costs.",
      -  "items": {
      -    "properties": {
      -      "amount": {
      -        "description": "The amount of the cost item.",
      -        "type": "number"
      -      },
      -      "description": {
      -        "description": "A description of the cost item.",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "description",
      -      "amount"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / currency / description
      Previous value: -"The currency in which the costs are calculated."New value: +"Currency code the amounts are labelled in"
    • removedOutput schema / properties / deposit_credit
      Removed value: -{
      -  "description": "The amount of deposit that will be returned.",
      -  "type": "number"
      -}
    • addedOutput schema / properties / disclaimer
      Added value: +{
      +  "description": "Informational, not-legal-advice disclaimer to show with the result",
      +  "type": "string"
      +}
    • addedOutput schema / properties / net_break_cost
      Added value: +{
      +  "description": "Estimated net cost to break the lease after deposit credit (cheaper of the break-clause and no-clause paths, floored at 0)",
      +  "type": "number"
      +}
    • addedOutput schema / properties / net_without_break_clause
      Added value: +{
      +  "description": "Net cost on the no-break-clause path (rent until relet + re-letting fee, less deposit)",
      +  "type": "number"
      +}
    • removedOutput schema / properties / notice_period_rent
      Removed value: -{
      -  "description": "The cost of rent during the notice period.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / reletting_fee
      Removed value: -{
      -  "description": "The fee charged by the landlord or agent for re-letting the property.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / rent_until_relet
      Removed value: -{
      -  "description": "The estimated rent cost until the property is re-let.",
      -  "type": "number"
      -}
    • addedOutput schema / properties / stay_cost
      Added value: +{
      +  "description": "Total rent if the lease is kept to term, for comparison",
      +  "type": "number"
      +}
    • removedOutput schema / properties / total_cost
      Removed value: -{
      -  "description": "The total cost of breaking the lease.",
      -  "type": "number"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "total_cost",
      -  "notice_period_rent",
      -  "break_fee",
      -  "reletting_fee",
      -  "rent_until_relet",
      -  "deposit_credit",
      -  "currency",
      -  "cost_breakdown"
      -]New value: +[
      +  "currency",
      +  "breakdown",
      +  "net_break_cost",
      +  "net_without_break_clause",
      +  "stay_cost",
      +  "assumptions",
      +  "disclaimer"
      +]
  3. Changed6 schema fields changed
    • addedInput schema / properties / currency / description
      Added value: +"Currency code in ISO 4217 format"
    • addedInput schema / properties / deposit / description
      Added value: +"Initial deposit amount as a number"
    • addedInput schema / properties / expected_relet_months / description
      Added value: +"Expected months to relett the property as a number"
    • addedInput schema / properties / landlord_mitigates / description
      Added value: +"True if landlord mitigates damages, false otherwise"
    • addedInput schema / properties / notice_months / description
      Added value: +"Number of months' notice required to terminate the lease"
    • addedInput schema / properties / reletting_fee / description
      Added value: +"Fee for reletting the property as a number"
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "break_fee": {
      +      "description": "The early-termination fee.",
      +      "type": "number"
      +    },
      +    "cost_breakdown": {
      +      "description": "A detailed breakdown of the costs.",
      +      "items": {
      +        "properties": {
      +          "amount": {
      +            "description": "The amount of the cost item.",
      +            "type": "number"
      +          },
      +          "description": {
      +            "description": "A description of the cost item.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "description",
      +          "amount"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "currency": {
      +      "description": "The currency in which the costs are calculated.",
      +      "type": "string"
      +    },
      +    "deposit_credit": {
      +      "description": "The amount of deposit that will be returned.",
      +      "type": "number"
      +    },
      +    "notice_period_rent": {
      +      "description": "The cost of rent during the notice period.",
      +      "type": "number"
      +    },
      +    "reletting_fee": {
      +      "description": "The fee charged by the landlord or agent for re-letting the property.",
      +      "type": "number"
      +    },
      +    "rent_until_relet": {
      +      "description": "The estimated rent cost until the property is re-let.",
      +      "type": "number"
      +    },
      +    "total_cost": {
      +      "description": "The total cost of breaking the lease.",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total_cost",
      +    "notice_period_rent",
      +    "break_fee",
      +    "reletting_fee",
      +    "rent_until_relet",
      +    "deposit_credit",
      +    "currency",
      +    "cost_breakdown"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral content by disclosing what the estimate accounts for, including deposit credit and net cost vs staying, though it doesn't surface the mitigation/default assumptions that materially change results.

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

Conciseness5/5

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

Two sentences, front-loaded with the computation and its line items, followed by the routing rule. Every clause earns its place with no filler.

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

Completeness5/5

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

An output schema exists, so return values need not be spelled out, and the description nonetheless names the key output components for routing. With 9 parameters fully documented in the schema and complete use/exclusion guidance, an agent has everything needed to call it 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 including defaults and capping rules is already documented in the schema. The description adds no parameter-level meaning beyond that baseline.

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

Purpose5/5

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

States a specific verb and resource ('compute an itemised estimate of ending a lease early') and even enumerates the components of the breakdown. It is immediately distinguishable from siblings like compare_options.

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?

Gives an explicit trigger ('Use when the user asks what breaking their lease will cost') and an explicit exclusion with the correct alternative named ('Do NOT use to weigh breaking vs subletting vs staying - use compare_options'). Nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources