Skip to main content
Glama

DSCR Loan Calculator

Server Details

DSCR loan calculator for rental property: DSCR, lender tiers, max loan, rent needed, amortization.

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
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
theluckystrike/dscr-loan-calculator-mcp
GitHub Stars
0
Server Listing
DSCR Loan Calculator MCP

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct operation: computing DSCR, generating an amortization schedule, comparing scenarios, and two inverse solvers (max loan and rent needed). The detailed descriptions make the boundaries clear, and the two inverse solvers are clearly differentiated by their target variable. Although calculate_dscr and amortization_summary both touch P&I, their purposes (ratio computation vs. full schedule) are unambiguous.

Naming Consistency3/5

All names use snake_case, but they mix verb-led (calculate_dscr, compare_scenarios) and noun-led phrasing (amortization_summary, max_loan_for_target_dscr, rent_needed_for_target_dscr). This is readable but not a single predictable pattern.

Tool Count5/5

Five tools is well-scoped for a DSCR calculator, and each tool earns its place by covering a distinct analytical need (ratio, schedule, comparison, two inverse solves). Nothing feels padded or redundant.

Completeness4/5

Coverage is strong for the DSCR domain: forward calculation, amortization, scenario comparison, and inverse solves for loan amount and rent all exist. Minor gaps remain, such as solving for the interest rate or supported maximum monthly payment for a given DSCR, but core workflows are covered.

Available Tools

5 tools
amortization_summaryAmortization summary for a loanA
Read-onlyIdempotent
Inspect

Exact month-by-month amortization: monthly payment, number of payments, final payment, total interest, total paid and the remaining balance after chosen years. Supports an interest-only period followed by amortization over the remaining term, as many DSCR loans use. Interest is rounded half up to the cent each month, like a lender schedule.

NameRequiredDescriptionDefault
term_yearsNoAmortization term in years. Default 30.
loan_amountYesLoan amount in USD.
annual_rate_pctYesAnnual note rate in percent, e.g. 7.25. Up to 3 decimals.
balance_after_yearsNoYears after which to report the balance. Default [1, 5, 10].
interest_only_yearsNoInterest-only years at the start, e.g. 10. Default 0. Must be less than term_years.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, so the safety profile is covered. The description goes beyond them by disclosing the rounding convention ('half up to the cent each month, like a lender schedule'), the 'exact' precision stance, and the interest-only-then-amortize structure — real behavioral traits an agent cannot get from the annotations or 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?

Three sentences, front-loaded with the primary output list, then the interest-only variant, then the rounding rule. No filler, though the first sentence is a fairly long enumeration that could be tightened slightly.

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 calculation tool with five fully documented parameters and no output schema, the description carries the return-value burden well by naming every figure produced. Combined with the rounding and interest-only disclosures, 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.

Parameters4/5

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

Schema description coverage is 100%, so a 3 is the baseline. The description nevertheless adds meaning the schema lacks: it clarifies that balance_after_years yields the 'remaining balance after chosen years' and, more importantly, that an interest-only period is followed by amortization over the remaining term — resolving whether term_years includes the interest-only years.

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 concrete resource (a month-by-month loan amortization schedule) and enumerates the produced quantities: monthly payment, payment count, final payment, total interest, total paid and balance. It is clear what the tool does, but it never contrasts itself with the DSCR siblings (calculate_dscr, max_loan_for_target_dscr, rent_needed_for_target_dscr, compare_scenarios), so differentiation is left to inference from the name.

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?

There is no explicit when-to-use / when-not clause and no named alternative; usage is only implied. The phrase 'as many DSCR loans use' hints at the intended financing context, which ties it loosely to the sibling DSCR tools, but the agent must infer that this is the schedule calculator while the siblings compute ratios and thresholds.

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

calculate_dscrCalculate DSCR for a rental property loanA
Read-onlyIdempotent
Inspect

Debt service coverage ratio for a DSCR (investor) mortgage: qualifying rent / PITIA. Computes exact principal and interest with the annuity formula (monthly compounding, half-up cents) or the interest-only payment, adds tax, insurance, HOA and other housing costs per the Fannie Mae PITIA definition, and places the result in the common lender bands (1.25+, 1.00-1.24, 0.75-0.99, under 0.75) with sourced notes that minimums vary by lender. Returns JSON plus a plain summary and a dscrradar.com link.

NameRequiredDescriptionDefault
term_yearsNoAmortization term in years. Default 30.
loan_amountNoLoan amount in USD. Give this, or purchase_price plus down_payment_pct.
monthly_hoaNoMonthly HOA or association dues in USD. Default 0.
vacancy_pctNoVacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy.
monthly_rentYesGross monthly market rent in USD (lease or appraiser rent schedule).
interest_onlyNoQualify on the interest-only payment (loan x rate / 12). Default false.
purchase_priceNoPurchase price in USD. Used with down_payment_pct when loan_amount is not given.
annual_rate_pctYesAnnual note rate in percent, e.g. 7.25. Up to 3 decimals.
annual_insuranceNoAnnual hazard insurance premium in USD. Default 0, but lenders always include it.
down_payment_pctNoDown payment in percent of price, e.g. 25.
annual_property_taxNoAnnual property tax in USD. Default 0, but lenders always include it.
monthly_other_housingNoOther monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety bar is low. The description adds genuinely useful behavior beyond that: the rounding convention (half-up cents), the interest-only alternative payment path, the Fannie Mae PITIA composition, the four lender bands, and the dual JSON + plain-summary + link return. It does not describe defaults or missing-cost behavior, which matters because several cost inputs default to 0 but lenders 'always include' 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?

Front-loaded with the formula, then computation detail, then output shape — a logical order with no filler. The middle sentence is long and heavily compounded (formula, compounding, rounding, PITIA components, bands, sourcing note all in one), which costs some scannability.

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 12 parameters, no output schema, and the return format explained (JSON + summary + link), the description covers enough to call the tool correctly. The main gap is that it never says how defaults behave — e.g. whether omitted tax/insurance are silently treated as zero and how that shifts the ratio.

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 every parameter carries a description, so the schema does the heavy lifting. The description contributes only indirect semantics (what PITIA aggregates, that rent is 'qualifying' rent) without explaining params themselves, so baseline 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?

Names a specific verb and resource and immediately supplies the formula it implements (qualifying rent / PITIA), plus the exact computation path (annuity formula, monthly compounding) and the output shape. An agent can tell this is the core ratio calculator rather than the sibling solvers (max_loan_for_target_dscr, rent_needed_for_target_dscr) that invert the same formula.

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 model (rent + PITIA costs in, ratio out), and the note that lender minimums vary gives context for interpreting results. However, the description never states when to call this versus the inverse siblings or compare_scenarios, and gives no exclusions or prerequisites.

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

compare_scenariosCompare DSCR loan scenariosA
Read-onlyIdempotent
Inspect

Compares 1 to 5 financing scenarios (rate, down payment, term, interest-only) on one property: loan amount, P&I, PITIA, DSCR, lender band, rent minus PITIA and total interest over the term. Names the scenario with the highest DSCR.

NameRequiredDescriptionDefault
scenariosYes1 to 5 scenarios.
monthly_hoaNoMonthly HOA or association dues in USD. Default 0.
vacancy_pctNoVacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy.
monthly_rentYesGross monthly market rent in USD.
purchase_priceYesPurchase price in USD.
annual_insuranceNoAnnual hazard insurance premium in USD. Default 0, but lenders always include it.
annual_property_taxNoAnnual property tax in USD. Default 0, but lenders always include it.
monthly_other_housingNoOther monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine value by disclosing the exact computed outputs (P&I, PITIA, DSCR, lender band, rent minus PITIA, total interest) and that it ranks the best scenario — important 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?

Two sentences, zero filler, with the scope and inputs front-loaded and the return payload plus the 'highest DSCR' behavior in the 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?

With no output schema, the description appropriately spells out what comes back, and the 8-parameter input is fully documented in the schema. Minor gaps: it doesn't say how a single-scenario call behaves or whether results are returned in input order alongside the winner.

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 per-field defaults and examples, so the schema carries the parameter burden. The description only restates the varying dimensions (rate, down payment, term, interest-only) and adds no formatting or interpretation guidance beyond 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?

States a specific verb (compares) and resource (1 to 5 financing scenarios on one property) and enumerates the per-scenario levers and the computed outputs. The '1 to 5 scenarios' scope cleanly separates it from the single-scenario calculate_dscr 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 only implied: an agent can infer this is the tool for multi-scenario comparison, but the description never says when to prefer it over calculate_dscr or max_loan_for_target_dscr, nor any prerequisites such as required rent/price inputs. No exclusions or alternatives are named.

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

max_loan_for_target_dscrLargest loan that meets a target DSCRA
Read-onlyIdempotent
Inspect

Solves for the largest whole-dollar loan whose PITIA keeps the DSCR at or above a target (default 1.25), given rent, rate, term, interest-only choice, tax, insurance and HOA. Optional purchase_price and max_ltv_pct give the minimum down payment and which limit binds. Exact cents arithmetic, checked against the rounded payment.

NameRequiredDescriptionDefault
term_yearsNoAmortization term in years. Default 30.
max_ltv_pctNoOptional lender LTV cap in percent, e.g. 80. Needs purchase_price.
monthly_hoaNoMonthly HOA or association dues in USD. Default 0.
target_dscrNoTarget DSCR, e.g. 1.25 or 1.0. Default 1.25.
vacancy_pctNoVacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy.
monthly_rentYesGross monthly market rent in USD.
interest_onlyNoQualify on the interest-only payment (loan x rate / 12). Default false.
purchase_priceNoOptional purchase price in USD, to report LTV and minimum down payment.
annual_rate_pctYesAnnual note rate in percent, e.g. 7.25. Up to 3 decimals.
annual_insuranceNoAnnual hazard insurance premium in USD. Default 0, but lenders always include it.
annual_property_taxNoAnnual property tax in USD. Default 0, but lenders always include it.
monthly_other_housingNoOther monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, closed-world calculation. The description adds real behavioral context beyond that: whole-dollar loan sizing, exact cents arithmetic cross-checked against the rounded payment, and the downstream effect of purchase_price/max_ltv_pct on the binding limit. It does not mention return fields, but no destructive or auth behavior needs disclosing.

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 core purpose, no filler. The second sentence efficiently covers optional inputs and the arithmetic guarantee. Slightly dense but well-structured.

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 calculation with no output schema, the description conveys the key outcome (largest whole-dollar loan, minimum down payment, which limit binds) and the rounding/arithmetic behavior. It does not enumerate the full return payload (e.g., resulting DSCR, payment split), but the annotations and schema carry most remaining weight.

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 12 parameters including defaults and bounds. The description restates the input set and highlights the default target DSCR but adds little syntax or meaning not already in the schema, and omits vacancy_pct and monthly_other_housing entirely. Baseline 3 is appropriate.

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 precise verb (solves for) and a specific resource (largest whole-dollar loan at or above a target DSCR), with the exact constraints (PITIA, target default 1.25). This is clearly the inverse of calculate_dscr and rent_needed_for_target_dscr without ambiguity.

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 to use it (finding the maximum loan size that holds DSCR) and explains the optional purchase_price/max_ltv_pct branch, but it never explicitly contrasts with calculate_dscr or the other siblings, nor states when not to use it. Usage is inferable rather than directed.

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

rent_needed_for_target_dscrRent needed to reach a target DSCRA
Read-onlyIdempotent
Inspect

Solves for the smallest monthly rent (to the cent, and rounded up to whole dollars) that reaches a target DSCR (default 1.25) for a given loan, rate, term, tax, insurance, HOA and vacancy. Also returns the rent for 0.75, 1.00 and 1.25. Rounds up, never down, so the rent always meets the target.

NameRequiredDescriptionDefault
term_yearsNoAmortization term in years. Default 30.
loan_amountNoLoan amount in USD. Give this, or purchase_price plus down_payment_pct.
monthly_hoaNoMonthly HOA or association dues in USD. Default 0.
target_dscrNoTarget DSCR, e.g. 1.25 or 1.0. Default 1.25.
vacancy_pctNoVacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy.
interest_onlyNoQualify on the interest-only payment (loan x rate / 12). Default false.
purchase_priceNoPurchase price in USD. Used with down_payment_pct when loan_amount is not given.
annual_rate_pctYesAnnual note rate in percent, e.g. 7.25. Up to 3 decimals.
annual_insuranceNoAnnual hazard insurance premium in USD. Default 0, but lenders always include it.
down_payment_pctNoDown payment in percent of price, e.g. 25.
annual_property_taxNoAnnual property tax in USD. Default 0, but lenders always include it.
monthly_other_housingNoOther monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds meaningful behavioral detail beyond that: it rounds up to whole dollars and never down so the target is always met, and it returns rents for 0.75, 1.00 and 1.25 in addition to the target rent.

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 front-loaded and appropriately short, stating the main result first and then the additional DSCR outputs. It has minor redundancy in saying both 'rounded up to whole dollars' and 'Rounds up, never down', but the repetition reinforces an important behavior.

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 calculation tool with no output schema, the description adequately explains what is computed, the default target, rounding behavior, and alternate DSCR outputs. The exact output structure is not spelled out, but the essential return semantics are clear enough for an agent 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 all 12 parameters are already well documented in the schema. The description mentions the major input categories and the default target DSCR, but adds no syntax, format, or interpretation 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?

The description uses a specific verb and resource: it 'solves for the smallest monthly rent' that reaches a target DSCR, with scope defined by loan, rate, term, tax, insurance, HOA and vacancy. This clearly distinguishes it from siblings such as calculate_dscr and max_loan_for_target_dscr 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 Guidelines3/5

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

The description implies when to use the tool by stating it solves for required rent against a target DSCR and defaults target_dscr to 1.25. However, it does not explicitly say when to choose this versus calculate_dscr or max_loan_for_target_dscr, leaving alternatives to inference.

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. 5 tool updates
    • First observedamortization_summary
    • First observedcalculate_dscr
    • First observedcompare_scenarios
    • First observedmax_loan_for_target_dscr
    • First observedrent_needed_for_target_dscr

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Landlord and rental-property calculators as MCP tools: cash flow, cap rate, DSCR, Airbnb break-even occupancy, rent late fees, lease notice dates, and IRS mileage. Offline and deterministic, with no dependencies.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Multifamily real estate deal analysis — analyze deals, score properties, calculate max offer prices, and look up market data. Four tools for underwriting 2-200 unit apartment properties.
    4
    96 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to analyze rental property deals using DoorVault IDEAL Scoring v2.0, including Section 8 FMR lookup, tax deduction checklists, and rental metrics calculations.
    MIT
  • 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
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.