此 MCP 可以做什么
Calculates Australian home-loan borrowing power, lender serviceability, repayments, equity, refinancing outcomes, loan-to-value ratios, and stamp duty.
工具
输入模式
{'type': 'object', 'required': ['grossAnnualIncome', 'monthlyExpenses', 'propertyValue'], 'properties': {'focus': {'enum': ['capacity', 'affordability', 'rates', 'repayments'], 'type': 'string', 'description': "Which question to shape the answer around. 'capacity' — how much could they borrow. 'affordability' — can they afford a specific price. 'rates' — what rate the panel offers them. 'repayments' — what it would cost monthly. Defaults to capacity."}, 'state': {'enum': ['NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS', 'ACT', 'NT'], 'type': 'string', 'description': 'State or territory of the property. Use when known — it is more direct than a postcode and takes precedence over one. Drives stamp duty and first-home concessions.'}, 'deposit': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Deposit available, AUD. Borrowing capacity is a serviceability question and does not depend on it, so this never changes what a lender will lend — but supply it anyway and the answer will also say what price that buys, which is usually the question behind the question.'}, 'postcode': {'type': 'string', 'description': 'Australian postcode of the property. Worth supplying: it determines the state, and stamp duty differs by more than a percentage point between them — a five-figure difference in the cash needed at settlement. Without it, or without state, duty is estimated at a flat rate and the answer says so.'}, 'dependants': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Number of dependent children.'}, 'loanAmount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'The loan being SOUGHT, AUD — not an existing balance, which is what the refinance tools mean by the same name. Supply it when testing whether a specific loan is serviceable. Omitting it does NOT ask an open question — upstream assumes a loan of about 80% of the property value and reports whether THAT services, which can read as nine lenders declining when nobody asked about a specific loan. Read max_capacity per lender for how much they would actually lend.'}, 'hecsBalance': {'type': 'number', 'maximum': 500000, 'minimum': 0, 'description': 'Outstanding HECS/HELP debt, AUD. Worth asking for even when it seems small: it is the most common Australian debt and it moves the answer by tens of thousands. The calculator tools cannot model it; this can.'}, 'targetPrice': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'With focus=affordability, the purchase price being tested.'}, 'propertyValue': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': "The property's value, or the purchase price being considered, AUD. Required for a real servicing run — the panel can't be asked without it."}, 'firstHomeBuyer': {'type': 'boolean', 'description': 'Whether this is their first home. Worth asking rather than assuming: with a state supplied it can remove stamp duty entirely — a NSW first home buyer under $800,000 pays nil where anyone else pays around $31,000 — and that lands in the cash they need on settlement day. Leaving it out quotes them the full duty.'}, 'monthlyExpenses': {'type': 'number', 'maximum': 200000, 'minimum': 0, 'description': 'Living costs per MONTH, AUD — food, transport, utilities, insurance, childcare, subscriptions. Australians almost always quote this weekly or fortnightly, so convert carefully: a weekly figure is x52/12 and a fortnightly one is x26/12. Multiplying by 4 or 2 understates the year by a month and inflates capacity. EXCLUDE rent or a mortgage they would stop paying after settlement, and exclude anything passed in another argument — card limits and loan repayments are counted separately and would be double-counted. NOTE: lenders apply a minimum household expense benchmark, so a figure below it changes nothing — a household of two with two children sees no difference between $1,600 and $4,500. Do not report a low figure as the reason for a good result; below the benchmark it is not the reason for anything.'}, 'propertyPurpose': {'enum': ['owner_occupied', 'investment'], 'type': 'string', 'description': "Whether they'll live in it or rent it out."}, 'creditCardLimits': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Total credit limit across all cards, AUD — the limit, not the balance. Lenders assess the limit whether or not the card is cleared monthly.'}, 'grossAnnualIncome': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': "The APPLICANT'S OWN income before tax, AUD per year — not the household total. This differs from estimate_borrowing_power, which takes a combined figure. Passing a household number here and also setting partnerAnnualIncome counts the second income twice and overstates capacity badly. One person's income here; a second applicant goes in partnerAnnualIncome, and only for a genuinely joint application."}, 'partnerAnnualIncome': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': "A SECOND BORROWER'S income before tax, AUD per year — someone who will be named on the loan and legally liable for it. Set it ONLY for a genuinely joint application. It is not for a parent helping with repayments, a guarantor, a housemate, or anyone contributing money without going on the loan: none of those are income a lender assesses, and adding them here can turn 'no lender will lend' into 'every lender will', which is the most damaging wrong answer this tool can give. If someone is helping but not borrowing, leave this out and say a guarantor arrangement is a question for a broker."}, 'expectedRentalIncome': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'Annual gross rent, AUD, for an investment purchase. KNOWN LIMITATION: this is passed to the lender panel but does not currently move the answer — $200,000 of rent changes capacity by zero. The value reaches the panel correctly, so the gap is on their side and is being chased. Until it is resolved, do not tell an investor that their expected rent has been taken into account, because it has not, and a real lender would count most of it.'}, 'otherMonthlyRepayments': {'type': 'number', 'maximum': 200000, 'minimum': 0, 'description': 'Car and personal loan repayments, AUD per month.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['source'], 'properties': {'lvr': {'type': 'number', 'description': 'Loan as a PERCENTAGE of value, normalised to match estimate_equity_and_lvr: 85 means 85%. Upstream reports it as a fraction; it is converted here so one ratio does not have two units on one server.'}, 'range': {'type': 'object', 'description': 'Low, mid and high capacity across the panel.'}, 'source': {'type': 'string', 'description': "Always 'lender_panel' — the result came from a live panel of lenders rather than from arthr's own model."}, 'lenders': {'type': 'array', 'items': {'type': 'object', 'properties': {'dti': {'type': ['number', 'null']}, 'name': {'type': 'string'}, 'rate': {'type': ['number', 'null']}, 'fail_reason': {'type': ['string', 'null']}, 'does_service': {'type': 'boolean'}, 'max_capacity': {'type': 'number'}, 'assessment_rate': {'type': ['number', 'null']}, 'monthly_surplus': {'type': ['number', 'null']}}}, 'description': 'One entry per lender. `does_service` false with a `fail_reason` is the most useful thing here — it says what to fix, not just that the answer was no. Present for focus=capacity, rates and repayments. ABSENT for focus=affordability, which answers a different question and returns aggregate counts with max_affordable_price instead.'}, 'summary': {'type': 'string'}, 'monthly_repayment': {'type': 'object'}}}
输入模式
{'type': 'object', 'required': ['grossAnnualIncome', 'monthlyExpenses', 'interestRate'], 'properties': {'termYears': {'type': 'number', 'maximum': 40, 'minimum': 1, 'description': 'Term to assess over. Defaults to 30. Pass the remaining term for someone refinancing who is keeping their original end date — assessing them over a fresh 30 years overstates what they can service.'}, 'interestRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': 'The annual rate the loan would sit at, as a percentage, e.g. 6.2. The serviceability buffer is added to this automatically.'}, 'monthlyExpenses': {'type': 'number', 'maximum': 200000, 'minimum': 0, 'description': "Living costs in AUD per month — food, transport, utilities, insurance, childcare, subscriptions. Convert carefully: a weekly figure is x52/12, a fortnightly one is x26/12. EXCLUDE rent or mortgage payments they would stop making on buying, and exclude anything passed in the other arguments. Include rent only when they will still be paying it after settlement. IMPORTANT: unlike a lender, this estimate applies NO minimum expense benchmark — it takes the figure as given. An unrealistically low number therefore inflates the answer here while changing nothing at a real lender, which is the main way this tool comes out far above check_servicing. If someone's stated costs look low for their household, that gap is the reason."}, 'creditCardLimits': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Total credit limit across all cards, AUD — the limit, not the balance and not the monthly payment. Lenders assess the limit whether or not the card is cleared each month, so a card paid off in full still reduces borrowing power, and a forgotten card at zero balance reduces it just as much. Defaults to 0.'}, 'grossAnnualIncome': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': "COMBINED household income before tax, in AUD per year — both incomes added together for a couple. Note this differs from check_servicing, which wants one applicant's income with a partner supplied separately; carrying a figure between the two without adjusting it will either double a second income or lose it."}, 'monthlyDebtRepayments': {'type': 'number', 'maximum': 200000, 'minimum': 0, 'description': 'Repayments on car and personal loans, AUD per month. Pass credit cards as creditCardLimits instead, not as a repayment. Defaults to 0.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['borrowingPower', 'monthlyRepayment', 'assessmentRate', 'monthlySurplus'], 'properties': {'termYears': {'type': 'number'}, 'modelsHecs': {'type': 'boolean', 'description': 'Always false. HECS/HELP is not in this model — use check_servicing.'}, 'surplusFactor': {'type': 'number', 'description': 'Share of the surplus actually lent against. Stated rather than folded in silently, so the annuity reconciles without being reverse-engineered.'}, 'assessmentRate': {'type': 'number', 'description': 'Rate used to test serviceability (actual rate + buffer), % p.a.'}, 'borrowingPower': {'type': 'number', 'description': 'Estimated maximum loan, assessed at the buffered rate, AUD.'}, 'cardCommitment': {'type': 'number', 'description': 'What the credit card limits cost per month in assessed commitment, AUD.'}, 'monthlySurplus': {'type': 'number', 'description': 'Income left after tax, living costs and existing repayments, AUD per month.'}, 'assessmentBuffer': {'type': 'number'}, 'monthlyRepayment': {'type': 'number', 'description': 'Monthly repayment on the assessed loan at the actual rate, AUD.'}, 'borrowingPowerAtRate': {'type': 'number', 'description': 'What the same surplus would fund at the actual rate, with no buffer, AUD.'}}}
输入模式
{'type': 'object', 'required': ['propertyValue', 'loanBalance'], 'properties': {'situation': {'enum': ['owner', 'purchase'], 'type': 'string', 'description': "'owner' (default) — they own the property and this is the balance on it. 'purchase' — they are buying, and loanBalance is the proposed loan. Get this right: treating a buyer as an owner reports usable equity computed from a deposit they were never asked about, and the answer looks reasonable while being nonsense."}, 'loanBalance': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'What is still owing in AUD — or, for a purchase, the loan they would take out.'}, 'propertyValue': {'type': 'number', 'maximum': 100000000, 'minimum': 1000, 'description': 'What the property is worth in AUD — or the purchase price, for a purchase.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['equity', 'lvr', 'usableEquity', 'lmiLikely'], 'properties': {'lvr': {'type': 'number', 'description': 'Loan as a PERCENTAGE of value: 85 means 85%, not 0.85. Note that check_servicing reports the same ratio as a fraction, so do not carry one into the other without converting.'}, 'equity': {'type': ['number', 'null'], 'description': 'Property value less the loan balance, AUD. Not what can be borrowed. Null for a purchase, where the person owns nothing yet — a strict client must accept the null rather than treat it as a failure.'}, 'lmiLikely': {'type': 'boolean', 'description': 'Whether mortgage insurance is likely in play.'}, 'loanBalance': {'type': 'number'}, 'usableEquity': {'type': ['number', 'null'], 'description': 'What could generally be released without mortgage insurance, AUD — 80% of value less the balance. Zero when already at or above 80%.'}, 'propertyValue': {'type': 'number'}, 'lmiThresholdLvr': {'type': 'number'}, 'shortfallToThreshold': {'type': 'number', 'description': 'How far above the 80% threshold the loan sits, AUD. Zero when below.'}}}
输入模式
{'type': 'object', 'required': ['loanAmount', 'currentRate', 'newRate', 'switchingCosts'], 'properties': {'newRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': 'The rate being switched to, as a percentage, e.g. 6.2.'}, 'termYears': {'type': 'number', 'maximum': 40, 'minimum': 1, 'description': 'Years remaining on the loan. Defaults to 30.'}, 'loanAmount': {'type': 'number', 'maximum': 50000000, 'minimum': 1000, 'description': 'Outstanding loan balance in AUD.'}, 'currentRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': "The rate they're on now, as a percentage, e.g. 6.8."}, 'switchingCosts': {'type': 'number', 'maximum': 200000, 'minimum': 0, 'description': "Total one-off cost of switching in AUD. ASK WHETHER THEY ARE ON A FIXED RATE FIRST. Breaking a fixed term costs thousands to tens of thousands and dwarfs everything else here — a $14,000 break fee turns a nine-month break-even into seven years and reverses the recommendation. It is the figure that decides the answer and the one nobody volunteers, because people think of their loan by its rate, not its term. Then add the current lender's discharge fee, the new lender's application and settlement fees, and state mortgage registration and deregistration. Required: there is no sensible default and a guessed one changes the answer."}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['monthlySaving', 'switchingCosts', 'breakEvenMonths', 'netSavingOverTerm'], 'properties': {'newRate': {'type': 'number'}, 'termYears': {'type': 'number'}, 'loanAmount': {'type': 'number'}, 'currentRate': {'type': 'number'}, 'totalSaving': {'type': 'number'}, 'newRepayment': {'type': 'number'}, 'monthlySaving': {'type': 'number', 'description': 'Monthly difference, AUD. Zero if the new rate is higher.'}, 'switchingCosts': {'type': 'number', 'description': 'The one-off cost supplied, AUD.'}, 'breakEvenMonths': {'type': ['number', 'null'], 'description': 'Months until the accumulated saving covers the switching cost. Null when the new rate is no better, in which case it never breaks even.'}, 'currentRepayment': {'type': 'number'}, 'netSavingOverTerm': {'type': 'number', 'description': 'Saving over the remaining term less switching costs, AUD.'}, 'netSavingFirstYear': {'type': 'number', 'description': 'Saving over 12 months less switching costs, AUD. Negative early on.'}, 'breaksEvenWithinTerm': {'type': 'boolean'}}}
输入模式
{'type': 'object', 'required': ['loanAmount', 'currentRate', 'newRate'], 'properties': {'newRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': 'The rate being compared against, as a percentage, e.g. 6.2.'}, 'termYears': {'type': 'number', 'maximum': 40, 'minimum': 1, 'description': 'Years remaining on the loan. Defaults to 30.'}, 'loanAmount': {'type': 'number', 'maximum': 50000000, 'minimum': 1000, 'description': 'Outstanding loan balance in AUD.'}, 'currentRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': "The rate they're on now, as a percentage, e.g. 6.8."}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['currentRepayment', 'newRepayment', 'monthlySaving', 'totalSaving'], 'properties': {'newRate': {'type': 'number'}, 'termYears': {'type': 'number'}, 'loanAmount': {'type': 'number'}, 'currentRate': {'type': 'number'}, 'totalSaving': {'type': 'number', 'description': 'Saving over the full remaining term, AUD.'}, 'newRepayment': {'type': 'number', 'description': 'Monthly repayment at the new rate, AUD.'}, 'monthlySaving': {'type': 'number', 'description': 'Monthly difference, AUD. Zero if the new rate is higher.'}, 'currentRepayment': {'type': 'number', 'description': 'Monthly repayment at the current rate, AUD.'}}}
输入模式
{'type': 'object', 'required': ['loanAmount', 'interestRate'], 'properties': {'termYears': {'type': 'number', 'maximum': 40, 'minimum': 1, 'description': 'Loan term in years. Defaults to 30.'}, 'loanAmount': {'type': 'number', 'maximum': 50000000, 'minimum': 1000, 'description': 'Loan amount in AUD.'}, 'interestRate': {'type': 'number', 'maximum': 25, 'minimum': 0, 'description': 'Annual interest rate as a percentage, e.g. 6.2 for 6.2% p.a.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['monthlyRepayment', 'totalRepaid', 'totalInterest'], 'properties': {'termYears': {'type': 'number'}, 'loanAmount': {'type': 'number'}, 'totalRepaid': {'type': 'number', 'description': 'Total repaid over the full term, AUD.'}, 'interestRate': {'type': 'number'}, 'totalInterest': {'type': 'number', 'description': 'Total interest paid over the term, AUD.'}, 'monthlyRepayment': {'type': 'number', 'description': 'Monthly P&I repayment, AUD.'}}}
输入模式
{'type': 'object', 'required': ['price', 'state'], 'properties': {'price': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Purchase price in AUD.'}, 'state': {'enum': ['NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS', 'ACT', 'NT'], 'type': 'string', 'description': 'State or territory the property is in.'}, 'buyerType': {'enum': ['first-home', 'owner-occupier', 'investor'], 'type': 'string', 'description': "Buyer situation. 'first-home' applies first-home exemptions and concessions where the state offers them; 'owner-occupier' applies standing owner-occupier rates; 'investor' applies the general scale. Defaults to owner-occupier."}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['duty', 'standardDuty', 'concession', 'effectiveRate'], 'properties': {'duty': {'type': 'number', 'description': 'Duty payable for this buyer type, AUD.'}, 'price': {'type': 'number'}, 'state': {'type': 'string'}, 'buyerType': {'type': 'string'}, 'concession': {'type': 'number', 'description': 'Amount saved by the concession, AUD.'}, 'standardDuty': {'type': 'number', 'description': 'Full duty before any concession, AUD.'}, 'effectiveRate': {'type': 'number', 'description': 'Duty as a percentage of the price.'}, 'concessionLabel': {'type': ['string', 'null'], 'description': 'Name of the concession applied, or null if none.'}}}
输入模式
{'type': 'object', 'required': ['lender'], 'properties': {'lender': {'type': 'string', 'examples': ['cba', 'anz', 'westpac', 'nab', 'stgeorge', 'bank-of-melbourne', 'bankwest', 'ing', 'ubank', 'boq', 'macquarie', 'banksa', 'suncorp', 'me-bank', 'bendigo', 'amp'], 'description': 'The lender. Accepts the slug, the full or legal name, or the shorthand — "nab", "NAB" and "National Australia Bank" all resolve to the same row. Covered: Commonwealth Bank, ANZ, Westpac, NAB, St.George Bank, Bank of Melbourne, Bankwest, ING, Ubank, Bank of Queensland, Macquarie Bank, BankSA, Suncorp Bank, ME Bank, Bendigo Bank, AMP Bank.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['lender', 'formName', 'formKind', 'formUrl', 'submitTo', 'phone', 'verified'], 'properties': {'note': {'type': 'string', 'description': "Anything specific about this lender's process."}, 'slug': {'type': 'string'}, 'phone': {'type': 'string'}, 'feeAud': {'type': ['number', 'null'], 'description': 'Discharge fee in AUD, only where the lender publishes it. Null for almost every lender — the fee sits in the loan contract.'}, 'lender': {'type': 'string'}, 'source': {'type': 'string', 'description': "The lender's own page about discharging."}, 'formUrl': {'type': 'string', 'description': "Link to the form on the lender's own domain."}, 'formKind': {'enum': ['pdf', 'online', 'page', 'phone'], 'type': 'string', 'description': "How the form is obtained. 'phone' means the lender publishes no form at all and you have to ring and ask for it."}, 'formName': {'type': 'string', 'description': "The lender's own name for the form."}, 'submitTo': {'type': 'string', 'description': 'Where the completed form goes.'}, 'verified': {'type': 'string', 'description': 'ISO date this row was last checked against the source.'}, 'businessDays': {'type': ['number', 'null'], 'description': 'Lender-stated minimum processing time, or null if they publish none.'}}}
近期工具变更
类似的 MCP 服务器
Superlógica Condomínios
Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
RateAPI — live US mortgage, auto, HELOC, personal & deposit rates
Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…
Rafid Intelligence Network
Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…
Housing Intel
Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…
OpenLMNP
Manages French LMNP furnished-rental accounting, including income, expenses, depreciation, loans, VAT, fiscal calculations, FEC f…
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…