Amortiza Loan Planner
Mortgage & loan schedules
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"loan-planner": {
"url": "https://loan-planner.zovo.one/mcp"
}
}
}リモートエンドポイント
https://loan-planner.zovo.one/mcpstreamable-httpできること
ツール一覧
ツール(2)
🟢calculate_loan(principal, home_price, down_payment, down_payment_percent, annual_rate, ...)
Use this when the user wants a mortgage calculator, loan calculator, or amortization calculator result: the monthly (or biweekly/weekly) payment, an amortization schedule or table, total interest, payoff date, a mortgage calculator with extra payments or for paying off early, or a full PITI payment with property tax, insurance, HOA and PMI. Takes the loan amount or home price with down payment, rate, and term. Returns exact payment, totals, interest and time saved by extra payments, a yearly summary, and a CSV of the full schedule. Fixed-rate loans only; does not model adjustable rates, interest-only or balloon loans, and does not look up current rates. Do not use for rent-vs-buy advice or choosing a lender.
入力スキーマ
{
"type": "object",
"properties": {
"principal": {
"description": "Loan amount to borrow, e.g. 350000. Give this OR home_price with a down payment.",
"type": "number"
},
"home_price": {
"description": "Purchase price or current home value, e.g. 400000. Used with down_payment/down_payment_percent to get the loan amount, and as the value for PMI loan-to-value.",
"type": "number"
},
"down_payment": {
"description": "Down payment amount, e.g. 50000. Used with home_price.",
"type": "number"
},
"down_payment_percent": {
"description": "Down payment as a percent of home_price, e.g. 20 for 20%.",
"type": "number"
},
"annual_rate": {
"description": "Annual interest rate in percent (nominal APR used for the payment), e.g. 6.5 for 6.5%. 0 is allowed.",
"type": "number"
},
"term_years": {
"description": "Loan term in years, e.g. 30. Give term_years or term_months.",
"type": "number"
},
"term_months": {
"description": "Loan term in months, e.g. 360 or 72 for a car loan.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"payment_frequency": {
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year).",
"type": "string",
"enum": [
"monthly",
"biweekly",
"weekly"
]
},
"accelerated": {
"description": "For biweekly/weekly only: true pays half (biweekly) or a quarter (weekly) of the monthly payment each period, which adds about one extra monthly payment a year. Default false (a true biweekly/weekly amortization).",
"type": "boolean"
},
"start_date": {
"description": "Date of the first payment, YYYY-MM or YYYY-MM-DD, e.g. 2026-11. Defaults to the first day of next month.",
"type": "string",
"maxLength": 10
},
"extra_payment": {
"description": "Extra principal paid with every payment, e.g. 200 for $200 more each month.",
"type": "number"
},
"one_time_payments": {
"description": "Lump-sum extra payments, e.g. [{\"date\":\"2030-01\",\"amount\":10000}].",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"description": "Month (YYYY-MM) or day (YYYY-MM-DD) of the lump sum, e.g. 2029-06. It is applied with the first payment on or after that date.",
"type": "string",
"maxLength": 10
},
"payment_number": {
"description": "Alternative to date: apply the lump sum with this payment number, e.g. 60 for the 60th payment.",
"type": "integer",
"minimum": 1,
"maximum": 3000
},
"amount": {
"type": "number",
"description": "Lump-sum amount paid toward principal, e.g. 10000."
}
},
"required": [
"amount"
]
}
},
"property_tax_annual": {
"description": "Yearly property tax for the PITI breakdown, e.g. 4800.",
"type": "number"
},
"home_insurance_annual": {
"description": "Yearly homeowners insurance for the PITI breakdown, e.g. 1500.",
"type": "number"
},
"hoa_monthly": {
"description": "Monthly HOA dues, e.g. 75.",
"type": "number"
},
"pmi_rate": {
"description": "Yearly private mortgage insurance rate as a percent of the original loan, e.g. 0.5. Needs home_price. Charged only while the loan is above 80% of the home value, and dropped once the balance reaches 78%.",
"type": "number"
},
"currency": {
"description": "ISO 4217 currency code for formatting, e.g. USD, EUR, GBP. Default USD.",
"type": "string",
"maxLength": 3
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"currency": {
"type": "string"
},
"loan_amount": {
"type": "number"
},
"home_price": {
"type": [
"number",
"null"
]
},
"annual_rate": {
"type": "number"
},
"term_months": {
"type": "number"
},
"payment_frequency": {
"type": "string"
},
"accelerated": {
"type": "boolean"
},
"payment": {
"type": "number"
},
"final_payment": {
"type": "number"
},
"payments_count": {
"type": "number"
},
"first_payment_date": {
"type": "string"
},
"payoff_date": {
"type": "string"
},
"total_interest": {
"type": "number"
},
"total_principal": {
"type": "number"
},
"total_paid": {
"type": "number"
},
"total_pmi": {
"type": "number"
},
"extra_payments": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"vs_monthly": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"piti": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"pmi": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"yearly": {
"type": "object",
"properties": {
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"required": [
"columns",
"rows"
],
"additionalProperties": false
},
"chart": {
"type": "object",
"properties": {
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"required": [
"columns",
"points"
],
"additionalProperties": false
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"downloads": {
"type": "object",
"properties": {
"csv": {
"type": "string"
}
},
"required": [
"csv"
],
"additionalProperties": false
}
},
"required": [
"summary",
"currency",
"loan_amount",
"home_price",
"annual_rate",
"term_months",
"payment_frequency",
"accelerated",
"payment",
"final_payment",
"payments_count",
"first_payment_date",
"payoff_date",
"total_interest",
"total_principal",
"total_paid",
"total_pmi",
"extra_payments",
"vs_monthly",
"piti",
"pmi",
"yearly",
"chart",
"warnings",
"inputs",
"downloads"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢compare_loans(scenarios, principal, home_price, down_payment, down_payment_percent, ...)
Use this when the user wants to compare 2 to 4 loan or mortgage options side by side, such as 15-year vs 30-year, different interest rates, paying discount points, or a mortgage calculator for refinance options. Shared values (loan amount, rate, term) go at the top level and each scenario overrides what differs. Returns payment, total interest, upfront costs, total cost, payoff date and the break-even month for points or fees, plus a comparison CSV. Fixed-rate loans only; does not look up current rates or recommend a lender. Do not use for a single loan (use calculate_loan).
入力スキーマ
{
"type": "object",
"properties": {
"scenarios": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"description": "Short name for the scenario, e.g. \"30-year 6.5%\" or \"15-year with 1 point\".",
"type": "string",
"maxLength": 40
},
"principal": {
"description": "Loan amount to borrow, e.g. 350000. Give this OR home_price with a down payment.",
"type": "number"
},
"home_price": {
"description": "Purchase price or current home value, e.g. 400000. Used with down_payment/down_payment_percent to get the loan amount, and as the value for PMI loan-to-value.",
"type": "number"
},
"down_payment": {
"description": "Down payment amount, e.g. 50000. Used with home_price.",
"type": "number"
},
"down_payment_percent": {
"description": "Down payment as a percent of home_price, e.g. 20 for 20%.",
"type": "number"
},
"annual_rate": {
"description": "Annual interest rate in percent (nominal APR used for the payment), e.g. 6.5 for 6.5%. 0 is allowed.",
"type": "number"
},
"term_years": {
"description": "Loan term in years, e.g. 30. Give term_years or term_months.",
"type": "number"
},
"term_months": {
"description": "Loan term in months, e.g. 360 or 72 for a car loan.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"payment_frequency": {
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year).",
"type": "string",
"enum": [
"monthly",
"biweekly",
"weekly"
]
},
"accelerated": {
"description": "For biweekly/weekly only: true pays half (biweekly) or a quarter (weekly) of the monthly payment each period, which adds about one extra monthly payment a year. Default false (a true biweekly/weekly amortization).",
"type": "boolean"
},
"extra_payment": {
"description": "Extra principal paid with every payment, e.g. 200 for $200 more each month.",
"type": "number"
},
"one_time_payments": {
"description": "Lump-sum extra payments, e.g. [{\"date\":\"2030-01\",\"amount\":10000}].",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"description": "Month (YYYY-MM) or day (YYYY-MM-DD) of the lump sum, e.g. 2029-06. It is applied with the first payment on or after that date.",
"type": "string",
"maxLength": 10
},
"payment_number": {
"description": "Alternative to date: apply the lump sum with this payment number, e.g. 60 for the 60th payment.",
"type": "integer",
"minimum": 1,
"maximum": 3000
},
"amount": {
"type": "number",
"description": "Lump-sum amount paid toward principal, e.g. 10000."
}
},
"required": [
"amount"
]
}
},
"property_tax_annual": {
"description": "Yearly property tax for the PITI breakdown, e.g. 4800.",
"type": "number"
},
"home_insurance_annual": {
"description": "Yearly homeowners insurance for the PITI breakdown, e.g. 1500.",
"type": "number"
},
"hoa_monthly": {
"description": "Monthly HOA dues, e.g. 75.",
"type": "number"
},
"pmi_rate": {
"description": "Yearly private mortgage insurance rate as a percent of the original loan, e.g. 0.5. Needs home_price. Charged only while the loan is above 80% of the home value, and dropped once the balance reaches 78%.",
"type": "number"
},
"points": {
"description": "Discount points paid upfront, as percent of the loan (1 point = 1%), e.g. 1.5.",
"type": "number"
},
"closing_costs": {
"description": "Other upfront lender fees for this scenario, e.g. 3500.",
"type": "number"
}
}
},
"description": "2 to 4 loan scenarios. Each needs its own annual_rate and term unless set at the top level, e.g. [{\"label\":\"30-year\",\"annual_rate\":6.5,\"term_years\":30},{\"label\":\"15-year\",\"annual_rate\":5.75,\"term_years\":15}]."
},
"principal": {
"description": "Shared loan amount used by every scenario that does not set its own, e.g. 280000.",
"type": "number"
},
"home_price": {
"description": "Purchase price or current home value, e.g. 400000. Used with down_payment/down_payment_percent to get the loan amount, and as the value for PMI loan-to-value.",
"type": "number"
},
"down_payment": {
"description": "Down payment amount, e.g. 50000. Used with home_price.",
"type": "number"
},
"down_payment_percent": {
"description": "Down payment as a percent of home_price, e.g. 20 for 20%.",
"type": "number"
},
"annual_rate": {
"description": "Shared annual rate in percent for scenarios that do not set their own, e.g. 6.5.",
"type": "number"
},
"term_years": {
"description": "Shared term in years for scenarios that do not set their own, e.g. 30.",
"type": "number"
},
"term_months": {
"description": "Loan term in months, e.g. 360 or 72 for a car loan.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"payment_frequency": {
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year).",
"type": "string",
"enum": [
"monthly",
"biweekly",
"weekly"
]
},
"accelerated": {
"description": "For biweekly/weekly only: true pays half (biweekly) or a quarter (weekly) of the monthly payment each period, which adds about one extra monthly payment a year. Default false (a true biweekly/weekly amortization).",
"type": "boolean"
},
"start_date": {
"description": "Date of the first payment, YYYY-MM or YYYY-MM-DD, e.g. 2026-11. Defaults to the first day of next month.",
"type": "string",
"maxLength": 10
},
"pmi_rate": {
"description": "Yearly private mortgage insurance rate as a percent of the original loan, e.g. 0.5. Needs home_price. Charged only while the loan is above 80% of the home value, and dropped once the balance reaches 78%.",
"type": "number"
},
"currency": {
"description": "ISO 4217 currency code for formatting, e.g. USD, EUR, GBP. Default USD.",
"type": "string",
"maxLength": 3
}
},
"required": [
"scenarios"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"currency": {
"type": "string"
},
"reference": {
"type": "string"
},
"lowest_payment": {
"type": "string"
},
"lowest_cost_of_borrowing": {
"type": "string"
},
"scenarios": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"properties": {
"csv": {
"type": "string"
}
},
"required": [
"csv"
],
"additionalProperties": false
}
},
"required": [
"currency",
"reference",
"lowest_payment",
"lowest_cost_of_borrowing",
"scenarios",
"warnings",
"downloads"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス