Relendi — Commercial Real Estate Loan Tools
What this MCP does
Calculates commercial real estate loan sizing, underwriting metrics, payments, stress tests, closing costs, and scenario comparisons.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['noi', 'propertyValue', 'existingLoanBalance', 'state', 'rate', 'amortizationYears', 'prepaymentPenaltyPercent'], 'properties': {'noi': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'rate': {'type': 'number', 'maximum': 30, 'minimum': 0.5, 'description': 'New loan rate, percent (6.85 = 6.85%)'}, 'state': {'enum': ['NY', 'FL'], 'type': 'string'}, 'maxLtv': {'type': 'number', 'maximum': 1, 'exclusiveMinimum': 0}, 'minDscr': {'type': 'number', 'maximum': 3, 'exclusiveMinimum': 0}, 'cemaEnabled': {'type': 'boolean'}, 'minDebtYield': {'type': 'number', 'maximum': 1, 'exclusiveMinimum': 0}, 'propertyValue': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'amortizationYears': {'type': 'number', 'maximum': 40, 'exclusiveMinimum': 0}, 'existingLoanBalance': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'prepaymentPenaltyPercent': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Percent of payoff balance. Required â\x80\x94 state 0 if none.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['question'], 'properties': {'question': {'type': 'string', 'maxLength': 500, 'minLength': 5}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'rate': {'type': 'number', 'maximum': 0.5, 'minimum': 0, 'description': 'DECIMAL (0.0725 = 7.25%), used to derive debt service'}, 'loanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'annualRevenue': {'type': 'number', 'maximum': 10000000000, 'minimum': 0, 'description': 'Gross/effective annual revenue'}, 'propertyValue': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'purchasePrice': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'annualExpenses': {'type': 'number', 'maximum': 10000000000, 'minimum': 0, 'description': 'Annual operating expenses (excl. debt service)'}, 'totalProjectCost': {'type': 'number', 'maximum': 10000000000, 'description': 'For LTC and yield-on-cost', 'exclusiveMinimum': 0}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}, 'annualDebtService': {'type': 'number', 'maximum': 10000000000, 'minimum': 0, 'description': 'Annual, not monthly'}, 'netOperatingIncome': {'type': 'number', 'maximum': 10000000000, 'minimum': 0, 'description': 'Supply directly, or let it derive from revenue - expenses'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['loanAmount', 'rate'], 'properties': {'rate': {'type': 'number', 'maximum': 0.5, 'minimum': 0, 'description': 'DECIMAL (0.0725 = 7.25%)'}, 'termYears': {'type': 'number', 'maximum': 40, 'minimum': 0.5, 'description': 'Balloon at this point'}, 'loanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'interestOnly': {'type': 'boolean'}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['offers'], 'properties': {'offers': {'type': 'array', 'items': {'type': 'object', 'required': ['loanAmount', 'interestRate', 'term'], 'properties': {'term': {'type': 'string', 'pattern': '^\\s*\\d+(\\.\\d+)?\\s*(mo|mos|month|months|yr|yrs|year|years)\\s*$', 'maxLength': 40, 'description': "Loan term WITH its unit â\x80\x94 '18 months' or '5 years'. A bare number is rejected: the underlying parser would read '30' as 30 months, understating a 30-year note's cost 12x."}, 'exitFee': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'lenderName': {'type': 'string', 'maxLength': 120}, 'loanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'interestRate': {'type': 'number', 'maximum': 30, 'minimum': 0.5, 'description': 'Annual rate, percent (8.25 = 8.25%)'}, 'applicationFee': {'type': 'number', 'maximum': 1000000, 'minimum': 0}, 'originationFee': {'type': 'number', 'maximum': 10, 'minimum': 0}}}, 'maxItems': 6, 'minItems': 2}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['loanAmount', 'propertyValue', 'state', 'isRefinance'], 'properties': {'isNYC': {'type': 'boolean', 'description': 'REQUIRED when state is NY. True = five boroughs (NYC recording tax + Real Property Transfer Tax). False = anywhere else in New York State.'}, 'state': {'enum': ['NY', 'FL'], 'type': 'string'}, 'loanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'cemaEnabled': {'type': 'boolean', 'description': "NY refinance only. CEMA assigns rather than discharges the existing mortgage so recording tax applies to new money only. Defaults to FALSE because it requires the existing lender's cooperation, which is not guaranteed â\x80\x94 assuming it understates costs."}, 'isRefinance': {'type': 'boolean'}, 'interestRate': {'type': 'number', 'maximum': 30, 'minimum': 0.5}, 'propertyValue': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'annualInsurance': {'type': 'number', 'maximum': 100000000, 'minimum': 0}, 'brokerFeePercent': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'annualPropertyTax': {'type': 'number', 'maximum': 100000000, 'minimum': 0}, 'originationFeePercent': {'type': 'number', 'maximum': 10, 'minimum': 0}, 'existingMortgageBalance': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'address': {'type': 'object', 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$'}, 'city': {'type': 'string', 'maxLength': 80}, 'state': {'type': 'string', 'pattern': '^[A-Z]{2}$'}, 'street': {'type': 'string', 'maxLength': 160}}, 'additionalProperties': False}, 'totalCost': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'assetClass': {'enum': ['Residential', 'Mixed-Use', 'Office', 'Hotel', 'Retail', 'Industrial', 'Land', 'Self-Storage'], 'type': 'string'}, 'assumptions': {'type': 'object', 'properties': {'maxLtc': {'type': 'number', 'maximum': 1, 'minimum': 0.4}, 'maxLtv': {'type': 'number', 'maximum': 0.95, 'minimum': 0.4}, 'minDscr': {'type': 'number', 'maximum': 2, 'minimum': 1}, 'ratePercent': {'type': 'number', 'maximum': 50, 'minimum': 0}, 'minDebtYield': {'type': 'number', 'maximum': 0.2, 'minimum': 0.04}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}}, 'additionalProperties': False}, 'interestOnly': {'type': 'boolean'}, 'annualRevenue': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'numberOfUnits': {'type': 'integer', 'maximum': 100000, 'minimum': 1}, 'purchasePrice': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'annualExpenses': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'estimatedValue': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'transactionType': {'enum': ['Refinance', 'Acquisition', 'Construction/Rehab', 'Bridge', 'Pre-Development'], 'type': 'string'}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}, 'netOperatingIncome': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'requestedLoanAmount': {'type': 'number', 'maximum': 10000000000, 'minimum': 0}, 'requestedInterestRate': {'type': 'number', 'maximum': 50, 'minimum': 0, 'description': 'PERCENT: 7.25 means 7.25%'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['netOperatingIncome', 'estimatedValue', 'mode'], 'properties': {'mode': {'enum': ['rate_ladder', 'noi_sensitivity', 'loan_feasibility'], 'type': 'string'}, 'rates': {'type': 'array', 'items': {'type': 'number', 'maximum': 0.5, 'minimum': 0}, 'maxItems': 7}, 'totalCost': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'thresholds': {'type': 'object', 'properties': {'maxLtc': {'type': 'number', 'maximum': 1, 'minimum': 0.4}, 'maxLtv': {'type': 'number', 'maximum': 0.95, 'minimum': 0.4}, 'minDscr': {'type': 'number', 'maximum': 2, 'minimum': 1}, 'minDebtYield': {'type': 'number', 'maximum': 0.2, 'minimum': 0.04}, 'proposedRate': {'type': 'number', 'maximum': 0.5, 'minimum': 0}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}}}, 'noiDeltaPcts': {'type': 'array', 'items': {'type': 'number', 'maximum': 50, 'minimum': -50}, 'maxItems': 7}, 'estimatedValue': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'desiredLoanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'netOperatingIncome': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'topK': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 3}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['netOperatingIncome', 'estimatedValue'], 'properties': {'totalCost': {'type': 'number', 'maximum': 10000000000, 'description': 'Total project cost, for the LTC test', 'exclusiveMinimum': 0}, 'thresholds': {'type': 'object', 'properties': {'maxLtc': {'type': 'number', 'maximum': 1, 'minimum': 0.4}, 'maxLtv': {'type': 'number', 'maximum': 0.95, 'minimum': 0.4}, 'minDscr': {'type': 'number', 'maximum': 2, 'minimum': 1}, 'minDebtYield': {'type': 'number', 'maximum': 0.2, 'minimum': 0.04}, 'proposedRate': {'type': 'number', 'maximum': 0.5, 'minimum': 0}, 'amortizationYears': {'type': 'integer', 'maximum': 40, 'minimum': 1}}}, 'estimatedValue': {'type': 'number', 'maximum': 10000000000, 'description': 'Property value in dollars', 'exclusiveMinimum': 0}, 'netOperatingIncome': {'type': 'number', 'maximum': 10000000000, 'description': 'Annual NOI in dollars', 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['netOperatingIncome', 'loanAmount', 'propertyValue', 'rate', 'amortizationYears'], 'properties': {'rate': {'type': 'number', 'maximum': 30, 'minimum': 0.5, 'description': 'Current annual rate, percent (7.25 = 7.25%)'}, 'minDscr': {'type': 'number', 'maximum': 2, 'minimum': 1}, 'loanAmount': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'propertyValue': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}, 'amortizationYears': {'type': 'number', 'maximum': 40, 'minimum': 0, 'description': 'Amortization in years; 0 = interest-only'}, 'netOperatingIncome': {'type': 'number', 'maximum': 10000000000, 'exclusiveMinimum': 0}}}
Recent tool changes
Similar MCP servers
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
Housing Intel
Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…
Antevo Wealth
Aggregates household wealth data across investments, liabilities, credit facilities, real assets, markets, risk, exposure, and fi…
DataPorium
Provides market and company data covering stocks, ETFs, crypto, forex, commodities, economic indicators, housing, property listin…
mtgmon Mortgage Analytics
Provides U.S. mortgage market rates, HMDA lender analytics, GSE loan performance, servicer metrics, and mortgage-related SEC fili…
DealScanner
Searches real-estate investment properties, analyzes rental, flip, and BRRRR strategies, ranks areas, and retrieves sold comparab…
Dominick Prevete: DSCR Lender Data
Provides DSCR and investor-loan program information, indicative rates, terminology, methodology, and HMDA-based lender statistics…
TerraVue
Analyzes U.S. homes and ZIP codes for affordability, buy-versus-rent outcomes, appreciation, rents, and neighborhood signals.