{"name":"io.github.theluckystrike/amortization","slug":"theluckystrike-amortization","title":null,"description":"Loan and lease schedules: payment, interest, early settlement and the journal, to the minor unit.","url":"https://mcp.market/server/theluckystrike-amortization","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T00:07:33.000Z","license":"MIT"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/theluckystrike/mcp-servers","website":"https://mcp.zovo.one/s/amortization","version":"0.22.0","remotes":[{"type":"streamable-http","url":"https://mcp.zovo.one/mcp/amortization","headers":[{"description":"Bearer <Pro license key or anonymous token from GET https://mcp.zovo.one/mcp/token>","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/amortization.mcpb","version":"0.22.0","fileSha256":"468d6fb68df7c8573d1ea816115d02bb0bc30bbeca159c93f67e8d7f388a9a5a","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional Pro license key (MCPL1....). Verified offline.","isSecret":true,"name":"MCP_LICENSE_KEY"}]}],"tools":[{"name":"license_activate","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"key":{"type":"string","description":"License key from checkout, MCPL1.<payload>.<signature>"}},"required":["key"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"license_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_create","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"description":"What this agreement is, e.g. Van finance or Office lease"},"principal_minor":{"type":"integer","minimum":1,"maximum":100000000000000,"description":"Amount borrowed, in whole minor units (integer cents). 1,000,000 is EUR 10,000.00"},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"ISO code the agreement is denominated in"},"rate_bps":{"type":"integer","minimum":0,"maximum":1000000,"description":"Nominal annual interest rate in basis points. 1200 is 12 percent. Zero is allowed"},"compounding":{"type":"string","enum":["weekly","fortnightly","monthly","quarterly","semiannual","annual"],"description":"How often interest compounds"},"payment_frequency":{"type":"string","enum":["weekly","fortnightly","monthly","quarterly","semiannual","annual"],"description":"How often a payment falls due"},"term_periods":{"type":"integer","minimum":1,"maximum":600,"description":"Number of payment periods, not years"},"method":{"type":"string","enum":["annuity","straight-principal"],"description":"annuity for a level payment, straight-principal for equal principal and a falling payment"},"start_date":{"type":"string","maxLength":10,"description":"Drawdown date, YYYY-MM-DD. The first payment falls one period after it"},"fees_minor":{"type":"integer","minimum":0,"description":"Arrangement fees in whole minor units, paid at drawdown. Default 0"},"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"},"kind":{"type":"string","enum":["loan","lease"],"description":"Default \"loan\""},"lender":{"type":"string","maxLength":200,"description":"Who the money is owed to"},"note":{"type":"string","maxLength":2000}},"required":["name","principal_minor","currency","rate_bps","compounding","payment_frequency","term_periods","method","start_date"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_delete","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"loan":{"type":"string","maxLength":200,"description":"The loan id, e.g. LOAN-2026-0001, or its exact name"}},"required":["loan"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_journal","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"loan":{"type":"string","maxLength":200,"description":"The loan id, e.g. LOAN-2026-0001, or its exact name"},"period":{"type":"integer","minimum":1,"maximum":600,"description":"The payment period to journal. Give this or month"},"month":{"type":"string","maxLength":7,"description":"Journal every payment falling in this month, YYYY-MM. Give this or period"},"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\""},"cash_account":{"type":"string","maxLength":200,"description":"Credit account for the payment. Default \"cash\""},"category":{"type":"string","maxLength":200,"description":"Expense category for the expense_add payload. Default \"interest\""}},"required":["loan"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_list","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Only agreements in this currency"},"kind":{"type":"string","enum":["loan","lease"],"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","minimum":1,"maximum":600,"description":"Maximum rows, default and ceiling 600"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_repay_early","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"loan":{"type":"string","maxLength":200,"description":"The loan id, e.g. LOAN-2026-0001, or its exact name"},"as_of_period":{"type":"integer","minimum":1,"maximum":600,"description":"The period the extra money is paid at the end of. Period 1 is the first payment"},"extra_minor":{"type":"integer","minimum":1,"description":"A partial overpayment in whole minor units. Omit to settle the loan in full"},"penalty_minor":{"type":"integer","minimum":0,"description":"Early repayment charge in whole minor units. Default 0"},"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"},"limit":{"type":"integer","minimum":1,"maximum":600,"description":"Maximum remaining rows to return, ceiling 600"}},"required":["loan","as_of_period"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loan_schedule","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"loan":{"type":"string","maxLength":200,"description":"The loan id, e.g. LOAN-2026-0001, or its exact name"},"from_period":{"type":"integer","minimum":1,"maximum":600,"description":"First period to return. Default 1"},"limit":{"type":"integer","minimum":1,"maximum":600,"description":"Maximum rows, default and ceiling 600"},"year":{"type":"string","maxLength":4,"description":"Only the periods falling in this calendar year, YYYY"}},"required":["loan"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"loans_report","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"as_of":{"type":"string","maxLength":10,"description":"Value the debt at this date, YYYY-MM-DD. Default today"},"year":{"type":"string","maxLength":4,"description":"The calendar year to total the interest for, YYYY. Default the year of as_of"},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Only agreements in this currency"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-19T00:28:40.965Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T00:28:40.945Z","components":{"code":{"score":-1,"max":25,"notes":["package could not be scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 159ms"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.zovo.one/mcp/amortization","reachable":true,"authRequired":false,"latencyMs":159,"serverInfo":{"name":"mcp-amortization","version":"0.22.0"}}],"packages":[],"repo":{"found":true,"owner":"theluckystrike","repo":"mcp-servers","archived":false,"pushedAt":"2026-09-19T00:07:33Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/51033404?v=4","ownerCreatedAt":"2019-05-25T20:35:39Z","license":"MIT"},"icon":{"url":"https://mcp.zovo.one/favicon.ico","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T00:07:33.000Z","score":23}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"A","reason":"score 88","createdAt":"2026-09-19T00:28:42.857Z"}],"reviews":[]}