theluckystrike MCP Amortization
Generates loan and lease amortization schedules, calculates early repayment costs, and produces double-entry journal entries for interest and principal. It supports level payment calculations, effective annual rate determination, and balance tracking without storing data on the server.
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://mcp.zovo.one/mcp/amortizationWhat its tools do
9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Build a loan schedule with per-period interest and principal
- Calculate early repayment costs and interest savings
- Generate double-entry journal lines for loan payments
- List outstanding loan balances and terms
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- mcp-amortization 0.22.6
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 9 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 2 advertised
{
"tools": {
"listChanged": true
},
"prompts": {
"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
9 advertised
loan_create — Record a loan or lease
Record a loan or lease and return its id, level payment and effective annual rate. principal_minor, fees and balloon are whole MINOR units; rate_bps is the nominal annual rate in basis points. Free: 3 agreements.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"principal_minor",
"currency",
"rate_bps",
"compounding",
"payment_frequency",
"term_periods",
"method",
"start_date"
],
"properties": {
"kind": {
"enum": [
"loan",
"lease"
],
"type": "string",
"description": "Default \"loan\""
},
"name": {
"type": "string",
"maxLength": 200,
"description": "What this agreement is, e.g. Van finance or Office lease"
},
"note": {
"type": "string",
"maxLength": 2000
},
"lender": {
"type": "string",
"maxLength": 200,
"description": "Who the money is owed to"
},
"method": {
"enum": [
"annuity",
"straight-principal"
],
"type": "string",
"description": "annuity for a level payment, straight-principal for equal principal and a falling payment"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO code the agreement is denominated in"
},
"rate_bps": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Nominal annual interest rate in basis points. 1200 is 12 percent. Zero is allowed"
},
"fees_minor": {
"type": "integer",
"minimum": 0,
"description": "Arrangement fees in whole minor units, paid at drawdown. Default 0"
},
"start_date": {
"type": "string",
"maxLength": 10,
"description": "Drawdown date, YYYY-MM-DD. The first payment falls one period after it"
},
"compounding": {
"enum": [
"weekly",
"fortnightly",
"monthly",
"quarterly",
"semiannual",
"annual"
],
"type": "string",
"description": "How often interest compounds"
},
"term_periods": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "Number of payment periods, not years"
},
"balloon_minor": {
"type": "integer",
"minimum": 0,
"description": "Final balloon or residual value in whole minor units, due with the last payment and not inside it. Default 0"
},
"principal_minor": {
"type": "integer",
"maximum": 100000000000000,
"minimum": 1,
"description": "Amount borrowed, in whole minor units (integer cents). 1,000,000 is EUR 10,000.00"
},
"payment_frequency": {
"enum": [
"weekly",
"fortnightly",
"monthly",
"quarterly",
"semiannual",
"annual"
],
"type": "string",
"description": "How often a payment falls due"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}loan_schedule — Build the amortization schedule
Build one loan's schedule: opening balance, payment, interest, principal and closing per period, with total interest. The last period absorbs rounding, landing exactly on the balloon or zero. loans_report totals it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"loan"
],
"properties": {
"loan": {
"type": "string",
"maxLength": 200,
"description": "The loan id, e.g. LOAN-2026-0001, or its exact name"
},
"year": {
"type": "string",
"maxLength": 4,
"description": "Only the periods falling in this calendar year, YYYY"
},
"limit": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "Maximum rows, default and ceiling 600"
},
"from_period": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "First period to return. Default 1"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}loan_repay_early — Settle or overpay a loan early
Work out what settling or overpaying costs as of a period: the outstanding balance, the penalty if one is given, the recalculated remaining schedule and the interest saved, stated gross and net of the penalty. Pro.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"loan",
"as_of_period"
],
"properties": {
"loan": {
"type": "string",
"maxLength": 200,
"description": "The loan id, e.g. LOAN-2026-0001, or its exact name"
},
"limit": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "Maximum remaining rows to return, ceiling 600"
},
"extra_minor": {
"type": "integer",
"minimum": 1,
"description": "A partial overpayment in whole minor units. Omit to settle the loan in full"
},
"as_of_period": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "The period the extra money is paid at the end of. Period 1 is the first payment"
},
"keep_payment": {
"type": "boolean",
"description": "On a partial overpayment, keep the same payment and shorten the term. Default false, which keeps the term and lowers the payment"
},
"penalty_minor": {
"type": "integer",
"minimum": 0,
"description": "Early repayment charge in whole minor units. Default 0"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}loan_journal — Journal a loan payment
Return the double entry for one payment period or month: debit interest expense and loan liability, credit cash, in the cash book's account names, with an expense_add-ready payload. Give period or month, not both. Pro.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"loan"
],
"properties": {
"loan": {
"type": "string",
"maxLength": 200,
"description": "The loan id, e.g. LOAN-2026-0001, or its exact name"
},
"month": {
"type": "string",
"maxLength": 7,
"description": "Journal every payment falling in this month, YYYY-MM. Give this or period"
},
"period": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "The payment period to journal. Give this or month"
},
"category": {
"type": "string",
"maxLength": 200,
"description": "Expense category for the expense_add payload. Default \"interest\""
},
"cash_account": {
"type": "string",
"maxLength": 200,
"description": "Credit account for the payment. Default \"cash\""
},
"interest_account": {
"type": "string",
"maxLength": 200,
"description": "Debit account for the interest. Default \"interest_expense\""
},
"liability_account": {
"type": "string",
"maxLength": 200,
"description": "Debit account for the principal. Default \"loan_liability\""
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}loan_list — List the loan register
List the register with terms, level payment, effective annual rate and, at as_of, periods paid, balance outstanding, interest to date and the next payment, totalled per currency. Free; loans_report is the Pro roll-up.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"loan",
"lease"
],
"type": "string",
"description": "Only loans, or only leases"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Value the register at this date, YYYY-MM-DD. Default today"
},
"limit": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "Maximum rows, default and ceiling 600"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only agreements in this currency"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}loan_delete — Delete a loan from the register
Remove one loan or lease from the register and give its free-tier slot back. Refused, with the entry named, if a journal has already been taken from it. Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"loan"
],
"properties": {
"loan": {
"type": "string",
"maxLength": 200,
"description": "The loan id, e.g. LOAN-2026-0001, or its exact name"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}loans_report — Report what is owed and what it costs
The debt at as_of: per loan what is outstanding, whether it is settled, the next payment, and the interest and principal charged in a year, then totals per currency. Contractual balance, not cash paid. Pro.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"year": {
"type": "string",
"maxLength": 4,
"description": "The calendar year to total the interest for, YYYY. Default the year of as_of"
},
"as_of": {
"type": "string",
"maxLength": 10,
"description": "Value the debt at this date, YYYY-MM-DD. Default today"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Only agreements in this currency"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}license_status — License status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}license_activate — Activate license
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
2 advertised
upgrade_to_pro — Explain the upgrade
Explain what Pro on the amortization server costs and exactly what the user has to do, without leaving the conversation.
- feature
- The capped feature that prompted this, if there was one
check_a_quote — Check a finance quote
Check what a lender's quote actually costs: record the terms, read the effective rate, and see what settling early would save.
- name
- What the finance is for, e.g. Van finance (required)
Resources
2 advertised
pricing — Pricing and upgrade
What amortization costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.
pricing://amortizationaccounts — The accounts a loan payment touches, and where they are written
The three account ids this server journals to, matching the cash book, and the one document it writes.
loan://accounts30-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
- 684 ms
- 95th percentile latency
- 684 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 684 ms · metadata changed · 9 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mcp-amortization https://mcp.zovo.one/mcp/amortizationCodex
codex mcp add mcp-amortization --url https://mcp.zovo.one/mcp/amortizationCursor
{
"mcpServers": {
"mcp-amortization": {
"url": "https://mcp.zovo.one/mcp/amortization"
}
}
}Cline
{
"mcpServers": {
"mcp-amortization": {
"type": "streamableHttp",
"url": "https://mcp.zovo.one/mcp/amortization",
"disabled": false
}
}
}VS Code
{
"servers": {
"mcp-amortization": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/amortization"
}
}
}Gemini CLI
gemini mcp add --transport http mcp-amortization https://mcp.zovo.one/mcp/amortizationClaude Desktop
https://mcp.zovo.one/mcp/amortizationWindsurf
{
"mcpServers": {
"mcp-amortization": {
"serverUrl": "https://mcp.zovo.one/mcp/amortization"
}
}
}Let your agent find its tools
Find servers like theluckystrike MCP Amortization from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.