DSCR Loan Calculator MCP
An MCP server providing exact DSCR loan calculations for AI assistants, including rent, PITIA, debt service coverage ratio, lender bands, max loan, and rent needed. It supports tools for calculating DSCR, finding max loans for target DSCR, rent needed for target DSCR, comparing up to 5 scenarios, and generating amortization summaries.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcpWhat you can do with it
- Calculate DSCR based on qualifying rent and PITIA
- Determine the largest loan that keeps DSCR at or above a target
- Find the smallest rent that reaches a target DSCR
- Compare up to 5 rate, down payment, and term scenarios side by side
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- dscr-loan-calculator-mcp 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
5 advertised
calculate_dscr — Calculate DSCR for a rental property loan
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"monthly_rent",
"annual_rate_pct"
],
"properties": {
"term_years": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Amortization term in years. Default 30."
},
"loan_amount": {
"type": "number",
"description": "Loan amount in USD. Give this, or purchase_price plus down_payment_pct.",
"exclusiveMinimum": 0
},
"monthly_hoa": {
"type": "number",
"minimum": 0,
"description": "Monthly HOA or association dues in USD. Default 0."
},
"vacancy_pct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Vacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy."
},
"monthly_rent": {
"type": "number",
"description": "Gross monthly market rent in USD (lease or appraiser rent schedule).",
"exclusiveMinimum": 0
},
"interest_only": {
"type": "boolean",
"description": "Qualify on the interest-only payment (loan x rate / 12). Default false."
},
"purchase_price": {
"type": "number",
"description": "Purchase price in USD. Used with down_payment_pct when loan_amount is not given.",
"exclusiveMinimum": 0
},
"annual_rate_pct": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "Annual note rate in percent, e.g. 7.25. Up to 3 decimals."
},
"annual_insurance": {
"type": "number",
"minimum": 0,
"description": "Annual hazard insurance premium in USD. Default 0, but lenders always include it."
},
"down_payment_pct": {
"type": "number",
"maximum": 99,
"minimum": 0,
"description": "Down payment in percent of price, e.g. 25."
},
"annual_property_tax": {
"type": "number",
"minimum": 0,
"description": "Annual property tax in USD. Default 0, but lenders always include it."
},
"monthly_other_housing": {
"type": "number",
"minimum": 0,
"description": "Other monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0."
}
}
}{
"title": "Calculate DSCR",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}max_loan_for_target_dscr — Largest loan that meets a target DSCR
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"monthly_rent",
"annual_rate_pct"
],
"properties": {
"term_years": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Amortization term in years. Default 30."
},
"max_ltv_pct": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Optional lender LTV cap in percent, e.g. 80. Needs purchase_price."
},
"monthly_hoa": {
"type": "number",
"minimum": 0,
"description": "Monthly HOA or association dues in USD. Default 0."
},
"target_dscr": {
"type": "number",
"maximum": 3,
"minimum": 0.5,
"description": "Target DSCR, e.g. 1.25 or 1.0. Default 1.25."
},
"vacancy_pct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Vacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy."
},
"monthly_rent": {
"type": "number",
"description": "Gross monthly market rent in USD.",
"exclusiveMinimum": 0
},
"interest_only": {
"type": "boolean",
"description": "Qualify on the interest-only payment (loan x rate / 12). Default false."
},
"purchase_price": {
"type": "number",
"description": "Optional purchase price in USD, to report LTV and minimum down payment.",
"exclusiveMinimum": 0
},
"annual_rate_pct": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "Annual note rate in percent, e.g. 7.25. Up to 3 decimals."
},
"annual_insurance": {
"type": "number",
"minimum": 0,
"description": "Annual hazard insurance premium in USD. Default 0, but lenders always include it."
},
"annual_property_tax": {
"type": "number",
"minimum": 0,
"description": "Annual property tax in USD. Default 0, but lenders always include it."
},
"monthly_other_housing": {
"type": "number",
"minimum": 0,
"description": "Other monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0."
}
}
}{
"title": "Max loan for target DSCR",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}rent_needed_for_target_dscr — Rent needed to reach a target DSCR
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"annual_rate_pct"
],
"properties": {
"term_years": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Amortization term in years. Default 30."
},
"loan_amount": {
"type": "number",
"description": "Loan amount in USD. Give this, or purchase_price plus down_payment_pct.",
"exclusiveMinimum": 0
},
"monthly_hoa": {
"type": "number",
"minimum": 0,
"description": "Monthly HOA or association dues in USD. Default 0."
},
"target_dscr": {
"type": "number",
"maximum": 3,
"minimum": 0.5,
"description": "Target DSCR, e.g. 1.25 or 1.0. Default 1.25."
},
"vacancy_pct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Vacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy."
},
"interest_only": {
"type": "boolean",
"description": "Qualify on the interest-only payment (loan x rate / 12). Default false."
},
"purchase_price": {
"type": "number",
"description": "Purchase price in USD. Used with down_payment_pct when loan_amount is not given.",
"exclusiveMinimum": 0
},
"annual_rate_pct": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "Annual note rate in percent, e.g. 7.25. Up to 3 decimals."
},
"annual_insurance": {
"type": "number",
"minimum": 0,
"description": "Annual hazard insurance premium in USD. Default 0, but lenders always include it."
},
"down_payment_pct": {
"type": "number",
"maximum": 99,
"minimum": 0,
"description": "Down payment in percent of price, e.g. 25."
},
"annual_property_tax": {
"type": "number",
"minimum": 0,
"description": "Annual property tax in USD. Default 0, but lenders always include it."
},
"monthly_other_housing": {
"type": "number",
"minimum": 0,
"description": "Other monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0."
}
}
}{
"title": "Rent needed for target DSCR",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_scenarios — Compare DSCR loan scenarios
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchase_price",
"monthly_rent",
"scenarios"
],
"properties": {
"scenarios": {
"type": "array",
"items": {
"type": "object",
"required": [
"annual_rate_pct",
"down_payment_pct"
],
"properties": {
"label": {
"type": "string",
"maxLength": 60,
"description": "Short name, e.g. \"25% down 30-yr\"."
},
"term_years": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Amortization term in years. Default 30."
},
"interest_only": {
"type": "boolean",
"description": "Qualify on the interest-only payment (loan x rate / 12). Default false."
},
"annual_rate_pct": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "Annual note rate in percent, e.g. 7.25. Up to 3 decimals."
},
"down_payment_pct": {
"type": "number",
"maximum": 99,
"minimum": 0,
"description": "Down payment in percent of price."
}
}
},
"maxItems": 5,
"minItems": 1,
"description": "1 to 5 scenarios."
},
"monthly_hoa": {
"type": "number",
"minimum": 0,
"description": "Monthly HOA or association dues in USD. Default 0."
},
"vacancy_pct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Vacancy allowance in percent of gross rent. Default 0. Many lenders use gross rent with no vacancy."
},
"monthly_rent": {
"type": "number",
"description": "Gross monthly market rent in USD.",
"exclusiveMinimum": 0
},
"purchase_price": {
"type": "number",
"description": "Purchase price in USD.",
"exclusiveMinimum": 0
},
"annual_insurance": {
"type": "number",
"minimum": 0,
"description": "Annual hazard insurance premium in USD. Default 0, but lenders always include it."
},
"annual_property_tax": {
"type": "number",
"minimum": 0,
"description": "Annual property tax in USD. Default 0, but lenders always include it."
},
"monthly_other_housing": {
"type": "number",
"minimum": 0,
"description": "Other monthly housing costs in PITIA, such as flood insurance, ground rent or special assessments. Default 0."
}
}
}{
"title": "Compare DSCR scenarios",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}amortization_summary — Amortization summary for a loan
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"loan_amount",
"annual_rate_pct"
],
"properties": {
"term_years": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Amortization term in years. Default 30."
},
"loan_amount": {
"type": "number",
"description": "Loan amount in USD.",
"exclusiveMinimum": 0
},
"annual_rate_pct": {
"type": "number",
"maximum": 30,
"minimum": 0,
"description": "Annual note rate in percent, e.g. 7.25. Up to 3 decimals."
},
"balance_after_years": {
"type": "array",
"items": {
"type": "integer",
"maximum": 40,
"minimum": 1
},
"maxItems": 10,
"description": "Years after which to report the balance. Default [1, 5, 10]."
},
"interest_only_years": {
"type": "integer",
"maximum": 39,
"minimum": 0,
"description": "Interest-only years at the start, e.g. 10. Default 0. Must be less than term_years."
}
}
}{
"title": "Amortization summary",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 615 ms
- 95th percentile latency
- 615 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 615 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dscr-loan-calculator-mcp https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcpCodex
codex mcp add dscr-loan-calculator-mcp --url https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcpCursor
{
"mcpServers": {
"dscr-loan-calculator-mcp": {
"url": "https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"dscr-loan-calculator-mcp": {
"type": "streamableHttp",
"url": "https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dscr-loan-calculator-mcp": {
"type": "http",
"url": "https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dscr-loan-calculator-mcp https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcpClaude Desktop
{
"mcpServers": {
"dscr-loan-calculator-mcp": {
"url": "https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp"
}
}
}Windsurf
{
"mcpServers": {
"dscr-loan-calculator-mcp": {
"serverUrl": "https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp"
}
}
}Let your agent find its tools
Find servers like DSCR Loan Calculator MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.