MCP-Server

Arthr — Australian home loans

au.com.arthr/mcp
Finanzen & Investieren Immobilien Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Calculates Australian home-loan borrowing power, lender serviceability, repayments, equity, refinancing outcomes, loan-to-value ratios, and stamp duty.

check_servicing
Check what lenders would actually lend
Run a REAL serviceability calculation across a panel of Australian lenders and get back, per lender, how much they would lend, whether they would lend at all, the rate they'd assess at, and — where they decline — why. This is not an estimate: it is the same calculation a broker runs. Use it once you have income, monthly living costs and a property value; prefer estimate_borrowing_power before that, for a fast rough figure. It is the only tool here that models HECS/HELP debt, and the only one that can tell you a lender says no. It takes seconds rather than milliseconds, so call it when the answer matters, not to explore.
Nur Lesen Externer Zugriff
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}
estimate_borrowing_power
Estimate borrowing power
Estimate how much someone could borrow for an Australian home loan, based on household income, living expenses, credit card limits and existing debt repayments. Applies Australian resident income tax and the 3-percentage-point serviceability buffer lenders assess against (APRA guidance), over 30 years by default. Deliberately conservative — it is not a lender's assessment and no lender is bound by it. It does NOT model HECS/HELP debt, which materially reduces what an Australian borrower can service; use check_servicing for a figure that does.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
estimate_equity_and_lvr
Estimate equity and LVR
Work out loan-to-value ratio, equity, and — the part that matters — how much of that equity is actually usable. Value minus balance is not what a borrower can borrow: lenders generally release to 80% of the property's value, so the usable figure is often far smaller than the raw one. Set situation="purchase" when the person does not own the property yet and loanBalance is the loan they would take out; the answer is then about their deposit and whether mortgage insurance applies, and "usable equity" is not reported, because for a buyer it is a number that does not exist.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
estimate_refinance_break_even
Estimate refinance break-even
Work out how many months it takes for a refinance to pay for itself once switching costs are counted, and what the net saving is after them. Call this rather than estimate_refinance_savings when someone is deciding whether a switch is worth doing, not just how much a lower rate saves. Switching costs are an argument — this tool does not assume a figure, because they vary by lender and by state and most lenders don't publish theirs. Use lookup_discharge_process for the lender-stated discharge fee where there is one. This models a variable loan: if they are on a fixed rate, the break cost belongs in switchingCosts and usually decides the answer on its own.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}
estimate_refinance_savings
Estimate refinance savings
Compare an existing home loan rate against a lower one and estimate the monthly and whole-of-term saving. Use this when someone asks whether refinancing is worth it, or what dropping their rate would save them. Both rates are arguments — this tool does not quote or assume a market rate.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
estimate_repayments
Estimate home loan repayments
Estimate the monthly repayment, total repaid and total interest on an Australian principal-and-interest home loan. Use this when someone asks what a loan would cost them each month, or how much interest they'd pay over the life of a loan.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
estimate_stamp_duty
Estimate stamp duty
Estimate stamp (transfer) duty on an Australian residential property purchase, for any state or territory, including first-home and owner-occupier concessions. Duty scales differ in every jurisdiction and change at each state budget, so this is the tool to call rather than working duty out from memory.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
lookup_discharge_process
Look up a lender's mortgage discharge process
Look up how to discharge a mortgage with a specific Australian lender — the name of the form, a link to it on the lender's own site, where the completed form is submitted, the lender-stated processing time, the discharge fee where the lender publishes one, and the phone number. This is the first step in refinancing away from a lender or selling. Every field is taken from the lender's own published material and dated; where a lender publishes no timeframe or fee, that is reported rather than guessed. Call this instead of describing a discharge process from memory.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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.'}}}
Hinzugefügt
check_servicing
17. September 2026 07:58
Hinzugefügt
lookup_discharge_process
17. September 2026 07:58
Hinzugefügt
estimate_stamp_duty
17. September 2026 07:58
Hinzugefügt
estimate_equity_and_lvr
17. September 2026 07:58
Hinzugefügt
estimate_refinance_break_even
17. September 2026 07:58
Hinzugefügt
estimate_refinance_savings
17. September 2026 07:58
Hinzugefügt
estimate_borrowing_power
17. September 2026 07:58
Hinzugefügt
estimate_repayments
17. September 2026 07:58

Superlógica Condomínios

io.github.mcp-dir/superlogica-mcp

Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …

DFX Real Estate Intelligence

io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt

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

dev.rateapi/mcp

Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…

Rafid Intelligence Network

io.github.iabdullahm/rafid-agent-api

Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…

Housing Intel

io.github.pipeworx-io/housing-intel

Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…

OpenLMNP

io.github.manganate006/openlmnp

Manages French LMNP furnished-rental accounting, including income, expenses, depreciation, loans, VAT, fiscal calculations, FEC f…

Antevo Wealth

ch.antevo/wealth

Aggregates household wealth data across investments, liabilities, credit facilities, real assets, markets, risk, exposure, and fi…

DataPorium

tech.dataporium/mcp

Provides market and company data covering stocks, ETFs, crypto, forex, commodities, economic indicators, housing, property listin…