Size and compare financing for 5+ unit apartment buildings: DSCR, LTV, cash-out, bridge takeout.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Test whether a bridge loan refinances into permanent debt at stabilization; returns surplus or shortfall, NOI needed and the highest workable rate.
Stabilized NOI
Permanent rate, percent
Bridge payoff incl. exit fee
Cap rate for value, percent
Amortization, years
Max LTV, percent
Min DSCR
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http apartment-loans https://apartment.loans/mcp
Test whether a bridge loan refinances into permanent debt at stabilization; returns surplus or shortfall, NOI needed and the highest workable rate.
| Argument | Type | Description |
|---|---|---|
| noi* | number | Stabilized NOI |
| rate* | number | Permanent rate, percent |
| amort | number | Amortization, years |
| payoff* | number | Bridge payoff incl. exit fee |
| max_ltv | number | Max LTV, percent |
| cap_rate* | number | Cap rate for value, percent |
| min_dscr | number | Min DSCR |
{
"type": "object",
"required": [
"payoff",
"noi",
"rate",
"cap_rate"
],
"properties": {
"noi": {
"type": "number",
"description": "Stabilized NOI"
},
"rate": {
"type": "number",
"description": "Permanent rate, percent"
},
"amort": {
"type": "number",
"description": "Amortization, years"
},
"payoff": {
"type": "number",
"description": "Bridge payoff incl. exit fee"
},
"max_ltv": {
"type": "number",
"description": "Max LTV, percent"
},
"cap_rate": {
"type": "number",
"description": "Cap rate for value, percent"
},
"min_dscr": {
"type": "number",
"description": "Min DSCR"
}
}
}Net cash to the borrower from a cash-out refinance after payoff, prepayment, closing costs and reserves.
| Argument | Type | Description |
|---|---|---|
| noi* | number | NOI per year |
| rate* | number | Rate, percent |
| amort | number | Amortization, years |
| value* | number | Appraised value |
| payoff* | number | Current payoff |
| max_ltv | number | Max LTV, percent |
| min_dscr | number | Min DSCR |
| reserves | number | Reserves and escrows, dollars |
| closing_pct | number | Closing costs, percent of new loan |
| prepay_cost | number | Prepayment cost, dollars |
Screen a deal against published Fannie Mae Small Loans, Freddie Mac Conventional Small and HUD 223(f) criteria.
| Argument | Type | Description |
|---|---|---|
| ltv* | number | LTV, percent |
| dscr* | number | DSCR at that loan |
| loan* | number | Loan amount |
| units* | number | Units |
| liquidity | number | Sponsor liquidity |
| net_worth | number | Sponsor net worth |
| occupancy | number | Physical occupancy, percent |
| occupancy_months | number | Months at that occupancy |
{
"type": "object",
"required": [
"units",
"loan",
"dscr",
"ltv"
],
"properties": {
"ltv": {
"type": "number",
"description": "LTV, percent"
},
"dscr": {
"type": "number",
"description": "DSCR at that loan"
},
"loan": {
"type": "number",
"description": "Loan amount"
},
"units": {
"type": "number",
"description": "Units"
},
"liquidity": {
"type": "number",
"description": "Sponsor liquidity"
},
"net_worth": {
"type": "number",
"description": "Sponsor net worth"
},
"occupancy": {
"type": "number",
"description": "Physical occupancy, percent"
},
"occupancy_months": {
"type": "number",
"description": "Months at that occupancy"
}
}
}Max refinance loan under each agency program's published limits (Fannie Mae Small Loans, Freddie Mac Conventional Small, HUD 223(f)) plus a bank case.
| Argument | Type | Description |
|---|---|---|
| noi* | number | NOI, dollars per year |
| rate* | number | Rate to test, percent |
| units | number | Number of units |
| value* | number | Appraised value, dollars |
| payoff | number | Current loan payoff, dollars |
{
"type": "object",
"required": [
"value",
"noi",
"rate"
],
"properties": {
"noi": {
"type": "number",
"description": "NOI, dollars per year"
},
"rate": {
"type": "number",
"description": "Rate to test, percent"
},
"units": {
"type": "number",
"description": "Number of units"
},
"value": {
"type": "number",
"description": "Appraised value, dollars"
},
"payoff": {
"type": "number",
"description": "Current loan payoff, dollars"
}
}
}Rank loan programs for a deal with the reasons each fits or fails.
| Argument | Type | Description |
|---|---|---|
| hold | string | short | mid | long |
| loan* | number | Loan amount |
| reno | string | none | light | heavy |
| units* | number | Units |
| recourse | string | none | ok |
| occupancy* | number | Occupancy, percent |
{
"type": "object",
"required": [
"units",
"occupancy",
"loan"
],
"properties": {
"hold": {
"type": "string",
"description": "short | mid | long"
},
"loan": {
"type": "number",
"description": "Loan amount"
},
"reno": {
"type": "string",
"description": "none | light | heavy"
},
"units": {
"type": "number",
"description": "Units"
},
"recourse": {
"type": "string",
"description": "none | ok"
},
"occupancy": {
"type": "number",
"description": "Occupancy, percent"
}
}
}Dated refinance milestones working back from a loan maturity date.
| Argument | Type | Description |
|---|---|---|
| target | string | agency | bank | hud | cmbs | bridge |
| maturity* | string | Maturity date, YYYY-MM-DD |
| close_days | number | Application-to-closing days (optional) |
{
"type": "object",
"required": [
"maturity"
],
"properties": {
"target": {
"type": "string",
"description": "agency | bank | hud | cmbs | bridge"
},
"maturity": {
"type": "string",
"description": "Maturity date, YYYY-MM-DD"
},
"close_days": {
"type": "number",
"description": "Application-to-closing days (optional)"
}
}
}Refinance now and pay the prepayment cost, or wait for the open window.
| Argument | Type | Description |
|---|---|---|
| rate* | number | Current rate, percent |
| months* | number | Months until the open window |
| balance* | number | Loan balance |
| new_rate* | number | New rate, percent |
| prepay_pct* | number | Prepayment cost today, percent of balance |
{
"type": "object",
"required": [
"balance",
"rate",
"months",
"prepay_pct",
"new_rate"
],
"properties": {
"rate": {
"type": "number",
"description": "Current rate, percent"
},
"months": {
"type": "number",
"description": "Months until the open window"
},
"balance": {
"type": "number",
"description": "Loan balance"
},
"new_rate": {
"type": "number",
"description": "New rate, percent"
},
"prepay_pct": {
"type": "number",
"description": "Prepayment cost today, percent of balance"
}
}
}Size an apartment loan the way a lender does: the lowest of the LTV, DSCR and debt-yield limits.
| Argument | Type | Description |
|---|---|---|
| noi* | number | Net operating income, dollars per year |
| rate* | number | Interest rate, percent (6.25) |
| amort | number | Amortization, years |
| value* | number | Appraised value, dollars |
| max_ltv | number | Maximum LTV, percent |
| min_dscr | number | Minimum DSCR, multiple (1.25) |
| min_debt_yield | number | Minimum debt yield, percent; 0 if not tested |
{
"type": "object",
"required": [
"value",
"noi",
"rate"
],
"properties": {
"noi": {
"type": "number",
"description": "Net operating income, dollars per year"
},
"rate": {
"type": "number",
"description": "Interest rate, percent (6.25)"
},
"amort": {
"type": "number",
"description": "Amortization, years"
},
"value": {
"type": "number",
"description": "Appraised value, dollars"
},
"max_ltv": {
"type": "number",
"description": "Maximum LTV, percent"
},
"min_dscr": {
"type": "number",
"description": "Minimum DSCR, multiple (1.25)"
},
"min_debt_yield": {
"type": "number",
"description": "Minimum debt yield, percent; 0 if not tested"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
{
"type": "object",
"required": [
"value",
"noi",
"payoff",
"rate"
],
"properties": {
"noi": {
"type": "number",
"description": "NOI per year"
},
"rate": {
"type": "number",
"description": "Rate, percent"
},
"amort": {
"type": "number",
"description": "Amortization, years"
},
"value": {
"type": "number",
"description": "Appraised value"
},
"payoff": {
"type": "number",
"description": "Current payoff"
},
"max_ltv": {
"type": "number",
"description": "Max LTV, percent"
},
"min_dscr": {
"type": "number",
"description": "Min DSCR"
},
"reserves": {
"type": "number",
"description": "Reserves and escrows, dollars"
},
"closing_pct": {
"type": "number",
"description": "Closing costs, percent of new loan"
},
"prepay_cost": {
"type": "number",
"description": "Prepayment cost, dollars"
}
}
}