Amortiza Loan Planner MCP
Computes exact periodic payments, builds full amortization schedules with CSV export, analyzes extra-payment savings, breaks down PITI components, and compares up to four loans side by side using deterministic calculations without quoting rates or recommending lenders.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://loan-planner.zovo.one/mcpWhat you can do with it
- Show the amortization schedule for a $350,000 mortgage at 6.5% over 30 years
- Calculate how much interest and time is saved by paying an extra $200 a month
- Compare two to four loans side by side with total cost and break-even month
- Break a mortgage payment into principal, interest, taxes, insurance, HOA and PMI
Source and maintenance
Protocol and capabilities
- Server
- loan-planner 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
calculate_loan — Calculate loan or mortgage
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code for formatting, e.g. USD, EUR, GBP. Default USD."
},
"pmi_rate": {
"type": "number",
"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%."
},
"principal": {
"type": "number",
"description": "Loan amount to borrow, e.g. 350000. Give this OR home_price with a down payment."
},
"home_price": {
"type": "number",
"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."
},
"start_date": {
"type": "string",
"maxLength": 10,
"description": "Date of the first payment, YYYY-MM or YYYY-MM-DD, e.g. 2026-11. Defaults to the first day of next month."
},
"term_years": {
"type": "number",
"description": "Loan term in years, e.g. 30. Give term_years or term_months."
},
"accelerated": {
"type": "boolean",
"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)."
},
"annual_rate": {
"type": "number",
"description": "Annual interest rate in percent (nominal APR used for the payment), e.g. 6.5 for 6.5%. 0 is allowed."
},
"hoa_monthly": {
"type": "number",
"description": "Monthly HOA dues, e.g. 75."
},
"term_months": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Loan term in months, e.g. 360 or 72 for a car loan."
},
"down_payment": {
"type": "number",
"description": "Down payment amount, e.g. 50000. Used with home_price."
},
"extra_payment": {
"type": "number",
"description": "Extra principal paid with every payment, e.g. 200 for $200 more each month."
},
"one_time_payments": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount"
],
"properties": {
"date": {
"type": "string",
"maxLength": 10,
"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."
},
"amount": {
"type": "number",
"description": "Lump-sum amount paid toward principal, e.g. 10000."
},
"payment_number": {
"type": "integer",
"maximum": 3000,
"minimum": 1,
"description": "Alternative to date: apply the lump sum with this payment number, e.g. 60 for the 60th payment."
}
}
},
"maxItems": 40,
"description": "Lump-sum extra payments, e.g. [{\"date\":\"2030-01\",\"amount\":10000}]."
},
"payment_frequency": {
"enum": [
"monthly",
"biweekly",
"weekly"
],
"type": "string",
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year)."
},
"property_tax_annual": {
"type": "number",
"description": "Yearly property tax for the PITI breakdown, e.g. 4800."
},
"down_payment_percent": {
"type": "number",
"description": "Down payment as a percent of home_price, e.g. 20 for 20%."
},
"home_insurance_annual": {
"type": "number",
"description": "Yearly homeowners insurance for the PITI breakdown, e.g. 1500."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"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"
],
"properties": {
"pmi": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"piti": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"chart": {
"type": "object",
"required": [
"columns",
"points"
],
"properties": {
"points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"inputs": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"yearly": {
"type": "object",
"required": [
"columns",
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"payment": {
"type": "number"
},
"summary": {
"type": "string"
},
"currency": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"total_pmi": {
"type": "number"
},
"home_price": {
"type": [
"number",
"null"
]
},
"total_paid": {
"type": "number"
},
"vs_monthly": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"accelerated": {
"type": "boolean"
},
"annual_rate": {
"type": "number"
},
"loan_amount": {
"type": "number"
},
"payoff_date": {
"type": "string"
},
"term_months": {
"type": "number"
},
"final_payment": {
"type": "number"
},
"extra_payments": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"payments_count": {
"type": "number"
},
"total_interest": {
"type": "number"
},
"total_principal": {
"type": "number"
},
"payment_frequency": {
"type": "string"
},
"first_payment_date": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate loan or mortgage",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_loans — Compare loans
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",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"scenarios"
],
"properties": {
"currency": {
"type": "string",
"maxLength": 3,
"description": "ISO 4217 currency code for formatting, e.g. USD, EUR, GBP. Default USD."
},
"pmi_rate": {
"type": "number",
"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%."
},
"principal": {
"type": "number",
"description": "Shared loan amount used by every scenario that does not set its own, e.g. 280000."
},
"scenarios": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 40,
"description": "Short name for the scenario, e.g. \"30-year 6.5%\" or \"15-year with 1 point\"."
},
"points": {
"type": "number",
"description": "Discount points paid upfront, as percent of the loan (1 point = 1%), e.g. 1.5."
},
"pmi_rate": {
"type": "number",
"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%."
},
"principal": {
"type": "number",
"description": "Loan amount to borrow, e.g. 350000. Give this OR home_price with a down payment."
},
"home_price": {
"type": "number",
"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."
},
"term_years": {
"type": "number",
"description": "Loan term in years, e.g. 30. Give term_years or term_months."
},
"accelerated": {
"type": "boolean",
"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)."
},
"annual_rate": {
"type": "number",
"description": "Annual interest rate in percent (nominal APR used for the payment), e.g. 6.5 for 6.5%. 0 is allowed."
},
"hoa_monthly": {
"type": "number",
"description": "Monthly HOA dues, e.g. 75."
},
"term_months": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Loan term in months, e.g. 360 or 72 for a car loan."
},
"down_payment": {
"type": "number",
"description": "Down payment amount, e.g. 50000. Used with home_price."
},
"closing_costs": {
"type": "number",
"description": "Other upfront lender fees for this scenario, e.g. 3500."
},
"extra_payment": {
"type": "number",
"description": "Extra principal paid with every payment, e.g. 200 for $200 more each month."
},
"one_time_payments": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount"
],
"properties": {
"date": {
"type": "string",
"maxLength": 10,
"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."
},
"amount": {
"type": "number",
"description": "Lump-sum amount paid toward principal, e.g. 10000."
},
"payment_number": {
"type": "integer",
"maximum": 3000,
"minimum": 1,
"description": "Alternative to date: apply the lump sum with this payment number, e.g. 60 for the 60th payment."
}
}
},
"maxItems": 40,
"description": "Lump-sum extra payments, e.g. [{\"date\":\"2030-01\",\"amount\":10000}]."
},
"payment_frequency": {
"enum": [
"monthly",
"biweekly",
"weekly"
],
"type": "string",
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year)."
},
"property_tax_annual": {
"type": "number",
"description": "Yearly property tax for the PITI breakdown, e.g. 4800."
},
"down_payment_percent": {
"type": "number",
"description": "Down payment as a percent of home_price, e.g. 20 for 20%."
},
"home_insurance_annual": {
"type": "number",
"description": "Yearly homeowners insurance for the PITI breakdown, e.g. 1500."
}
}
},
"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}]."
},
"home_price": {
"type": "number",
"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."
},
"start_date": {
"type": "string",
"maxLength": 10,
"description": "Date of the first payment, YYYY-MM or YYYY-MM-DD, e.g. 2026-11. Defaults to the first day of next month."
},
"term_years": {
"type": "number",
"description": "Shared term in years for scenarios that do not set their own, e.g. 30."
},
"accelerated": {
"type": "boolean",
"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)."
},
"annual_rate": {
"type": "number",
"description": "Shared annual rate in percent for scenarios that do not set their own, e.g. 6.5."
},
"term_months": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Loan term in months, e.g. 360 or 72 for a car loan."
},
"down_payment": {
"type": "number",
"description": "Down payment amount, e.g. 50000. Used with home_price."
},
"payment_frequency": {
"enum": [
"monthly",
"biweekly",
"weekly"
],
"type": "string",
"description": "How often payments are made: monthly (default), biweekly (every 2 weeks, 26 a year), or weekly (52 a year)."
},
"down_payment_percent": {
"type": "number",
"description": "Down payment as a percent of home_price, e.g. 20 for 20%."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"currency",
"reference",
"lowest_payment",
"lowest_cost_of_borrowing",
"scenarios",
"warnings",
"downloads"
],
"properties": {
"currency": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"reference": {
"type": "string"
},
"scenarios": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"lowest_payment": {
"type": "string"
},
"lowest_cost_of_borrowing": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Compare loans",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
loan-planner-widget — Amortiza Loan Planner view
Interactive view for Amortiza Loan Planner.
ui://widget/loan-planner-v1-1.0.0-01af794a2baf50216d58dbe26c51169773261ec9cbf232df00040963621cb70e.htmlloan-planner-widget-legacy — Amortiza Loan Planner view (previous versions)
ui://widget/loan-planner-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 641 ms
- 95th percentile latency
- 641 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 641 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http amortiza-loan-planner-mcp https://loan-planner.zovo.one/mcpCodex
codex mcp add amortiza-loan-planner-mcp --url https://loan-planner.zovo.one/mcpCursor
{
"mcpServers": {
"amortiza-loan-planner-mcp": {
"url": "https://loan-planner.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"amortiza-loan-planner-mcp": {
"type": "streamableHttp",
"url": "https://loan-planner.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"amortiza-loan-planner-mcp": {
"type": "http",
"url": "https://loan-planner.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http amortiza-loan-planner-mcp https://loan-planner.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"amortiza-loan-planner-mcp": {
"url": "https://loan-planner.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"amortiza-loan-planner-mcp": {
"serverUrl": "https://loan-planner.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Amortiza Loan Planner MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.