Free real-estate underwriting, no key or account. 6 strategies, stress tests, max offer.
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.
Analyze a real-estate investment deal and get a 0-100 score, verdict, cash flow, cap rate, DSCR, stress tests, break-even thresholds, and a shareable report link. Strategies: ltr (long-term rental), str (short-term rental), brrr, multifamily, flip (fix-n-flip), newc (new construction). All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Output is a software estimate, not financial, investment, tax or legal advice — figures are projections to verify, not recommendations. Free, no key; the response includes a shareable report_url.
Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. Minimum: price + the strategy's income driver (marketRent / adr+occupancy / units / arv / land+build). Call list_strategies for the full per-strategy schema.
Investment strategy to analyze.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Analyze a real-estate investment deal and get a 0-100 score, verdict, cash flow, cap rate, DSCR, stress tests, break-even thresholds, and a shareable report link. Strategies: ltr (long-term rental), str (short-term rental), brrr, multifamily, flip (fix-n-flip), newc (new construction). All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Output is a software estimate, not financial, investment, tax or legal advice — figures are projections to verify, not recommendations. Free, no key; the response includes a shareable report_url.
| Argument | Type | Description |
|---|---|---|
| inputs* | object | Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. Minimum: price + the strategy's income driver (marketRent / adr+occupancy / units / arv / land+build). Call list_strategies for the full per-strategy schema. |
| strategy* | string | Investment strategy to analyze. |
{
"type": "object",
"required": [
"strategy",
"inputs"
],
"properties": {
"inputs": {
"type": "object",
"properties": {
"adr": {
"type": "number",
"description": "Average nightly rate in dollars. Required for str."
},
"arv": {
"type": "number",
"description": "After-repair value in dollars. Required for brrr and flip."
},
"rate": {
"type": "number",
"description": "Annual interest rate. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"term": {
"type": "number",
"description": "Loan term in years. Optional."
},
"price": {
"type": "number",
"description": "Purchase price in dollars. Required for every strategy except newc."
},
"taxes": {
"type": "number",
"description": "Annual property taxes in dollars. Optional."
},
"units": {
"type": "object",
"description": "Multifamily rent roll — {unitCount, avgRent, marketRent?} or an array of unit objects. Required for multifamily."
},
"btsArv": {
"type": "number",
"description": "Finished build-to-sell value in dollars. Required for newc."
},
"downPct": {
"type": "number",
"description": "Down payment. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional — a documented default applies."
},
"buildPsf": {
"type": "number",
"description": "Build cost per square foot in dollars. Required for newc."
},
"insurance": {
"type": "number",
"description": "Annual insurance in dollars. Optional."
},
"landPrice": {
"type": "number",
"description": "Land acquisition cost in dollars. Required for newc."
},
"occupancy": {
"type": "number",
"description": "Expected occupancy. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Required for str."
},
"livingSqft": {
"type": "number",
"description": "Heated living area in square feet. Required for newc."
},
"marketRent": {
"type": "number",
"description": "Expected monthly rent in dollars. Required for ltr and brrr."
},
"vacancyPct": {
"type": "number",
"description": "Vacancy allowance. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"rehabBudget": {
"type": "number",
"description": "Renovation budget in dollars. Required for brrr and flip."
}
},
"description": "Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. Minimum: price + the strategy's income driver (marketRent / adr+occupancy / units / arv / land+build). Call list_strategies for the full per-strategy schema.",
"additionalProperties": true
},
"strategy": {
"enum": [
"ltr",
"str",
"brrr",
"multifamily",
"flip",
"newc"
],
"type": "string",
"description": "Investment strategy to analyze."
}
}
}Screen ONE property across every strategy the provided inputs qualify for and rank them by deal score — answers "what is the best use of this property?". Provide a superset of inputs (price, marketRent, adr, occupancy, rehabBudget, arv, units, …); strategies missing inputs are skipped with reasons. All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Free, no key.
| Argument | Type | Description |
|---|---|---|
| inputs* | object | Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. Send a SUPERSET across strategies — whatever you know. Strategies missing their required fields are skipped with a reason rather than failing the call. |
{
"type": "object",
"required": [
"inputs"
],
"properties": {
"inputs": {
"type": "object",
"properties": {
"adr": {
"type": "number",
"description": "Average nightly rate in dollars. Required for str."
},
"arv": {
"type": "number",
"description": "After-repair value in dollars. Required for brrr and flip."
},
"rate": {
"type": "number",
"description": "Annual interest rate. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"term": {
"type": "number",
"description": "Loan term in years. Optional."
},
"price": {
"type": "number",
"description": "Purchase price in dollars. Required for every strategy except newc."
},
"taxes": {
"type": "number",
"description": "Annual property taxes in dollars. Optional."
},
"units": {
"type": "object",
"description": "Multifamily rent roll — {unitCount, avgRent, marketRent?} or an array of unit objects. Required for multifamily."
},
"btsArv": {
"type": "number",
"description": "Finished build-to-sell value in dollars. Required for newc."
},
"downPct": {
"type": "number",
"description": "Down payment. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional — a documented default applies."
},
"buildPsf": {
"type": "number",
"description": "Build cost per square foot in dollars. Required for newc."
},
"insurance": {
"type": "number",
"description": "Annual insurance in dollars. Optional."
},
"landPrice": {
"type": "number",
"description": "Land acquisition cost in dollars. Required for newc."
},
"occupancy": {
"type": "number",
"description": "Expected occupancy. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Required for str."
},
"livingSqft": {
"type": "number",
"description": "Heated living area in square feet. Required for newc."
},
"marketRent": {
"type": "number",
"description": "Expected monthly rent in dollars. Required for ltr and brrr."
},
"vacancyPct": {
"type": "number",
"description": "Vacancy allowance. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"rehabBudget": {
"type": "number",
"description": "Renovation budget in dollars. Required for brrr and flip."
}
},
"description": "Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. Send a SUPERSET across strategies — whatever you know. Strategies missing their required fields are skipped with a reason rather than failing the call.",
"additionalProperties": true
}
}
}List every supported strategy with its required and optional input fields. Call this first when unsure which inputs a strategy needs. Free, no key.
No arguments.
{
"type": "object",
"properties": {}
}Reverse-solve the Maximum Allowable Offer: the highest purchase price that still meets every return target (defaults: CoC 8%, DSCR 1.20, cash flow ≥ 0; flip: 10% after-tax margin + 15% annualized ROI). Returns the MAO, the binding constraint, and per-target price ceilings. Strategies: ltr, str, brrr, multifamily, flip. Provide the deal inputs WITHOUT committing to a price; an asking price or arv, if known, anchors the price-based defaults, and with neither those defaults (taxes, insurance, closing) follow each price tested. Override targets via the targets object. All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Free, no key.
| Argument | Type | Description |
|---|---|---|
| inputs* | object | Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. price is optional here — an asking price or ARV anchors the price-derived defaults; without either, those defaults follow each price the solver tests. |
| targets | object | Return targets the price must still satisfy. Omit to use each strategy's defaults. |
| strategy* | string |
{
"type": "object",
"required": [
"strategy",
"inputs"
],
"properties": {
"inputs": {
"type": "object",
"properties": {
"adr": {
"type": "number",
"description": "Average nightly rate in dollars. Required for str."
},
"arv": {
"type": "number",
"description": "After-repair value in dollars. Required for brrr and flip."
},
"rate": {
"type": "number",
"description": "Annual interest rate. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"term": {
"type": "number",
"description": "Loan term in years. Optional."
},
"price": {
"type": "number",
"description": "Purchase price in dollars. Required for every strategy except newc."
},
"taxes": {
"type": "number",
"description": "Annual property taxes in dollars. Optional."
},
"units": {
"type": "object",
"description": "Multifamily rent roll — {unitCount, avgRent, marketRent?} or an array of unit objects. Required for multifamily."
},
"btsArv": {
"type": "number",
"description": "Finished build-to-sell value in dollars. Required for newc."
},
"downPct": {
"type": "number",
"description": "Down payment. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional — a documented default applies."
},
"buildPsf": {
"type": "number",
"description": "Build cost per square foot in dollars. Required for newc."
},
"insurance": {
"type": "number",
"description": "Annual insurance in dollars. Optional."
},
"landPrice": {
"type": "number",
"description": "Land acquisition cost in dollars. Required for newc."
},
"occupancy": {
"type": "number",
"description": "Expected occupancy. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Required for str."
},
"livingSqft": {
"type": "number",
"description": "Heated living area in square feet. Required for newc."
},
"marketRent": {
"type": "number",
"description": "Expected monthly rent in dollars. Required for ltr and brrr."
},
"vacancyPct": {
"type": "number",
"description": "Vacancy allowance. Expressed as a FRACTION (0.0675 = 6.75%), never a percent. Optional."
},
"rehabBudget": {
"type": "number",
"description": "Renovation budget in dollars. Required for brrr and flip."
}
},
"description": "Deal inputs in camelCase engine keys. Anything omitted gets a documented default, listed back under assumptions.estimated_fields. price is optional here — an asking price or ARV anchors the price-derived defaults; without either, those defaults follow each price the solver tests.",
"additionalProperties": true
},
"targets": {
"type": "object",
"properties": {
"dscr": {
"type": "number",
"description": "Minimum debt-service coverage ratio, e.g. 1.25."
},
"cocReturn": {
"type": "number",
"description": "Minimum cash-on-cash return. Expressed as a FRACTION (0.0675 = 6.75%), never a percent."
},
"monthlyCF": {
"type": "number",
"description": "Minimum monthly cash flow in dollars."
},
"afterTaxMargin": {
"type": "number",
"description": "Flip: minimum after-tax profit margin. Expressed as a FRACTION (0.0675 = 6.75%), never a percent."
},
"capitalRecovery": {
"type": "number",
"description": "BRRRR: minimum share of invested cash returned at refi. Expressed as a FRACTION (0.0675 = 6.75%), never a percent."
},
"afterTaxAnnualROI": {
"type": "number",
"description": "Flip: minimum annualized after-tax ROI. Expressed as a FRACTION (0.0675 = 6.75%), never a percent."
}
},
"description": "Return targets the price must still satisfy. Omit to use each strategy's defaults.",
"additionalProperties": true
},
"strategy": {
"enum": [
"ltr",
"str",
"brrr",
"multifamily",
"flip"
],
"type": "string"
}
}
}