amortization
Loan and lease schedules: payment, interest, early settlement and the journal, to the minor unit.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"amortization": {
"command": "uvx",
"args": [
"https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/amortization.mcpb"
]
}
}
}実行可能なパッケージ
0.22.0stdioリモートエンドポイント
https://mcp.zovo.one/mcp/amortizationstreamable-httpできること
ツール一覧
ツール(9)
🟡loan_create(name, principal_minor, currency, rate_bps, compounding, ...)
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",
"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#"
}⚪loan_schedule(loan, from_period, limit, year)
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",
"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#"
}⚪loan_repay_early(loan, as_of_period, extra_minor, penalty_minor, keep_payment, ...)
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",
"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#"
}🟡loan_journal(loan, period, month, interest_account, liability_account, ...)
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",
"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#"
}🟢loan_list(currency, kind, as_of, limit)
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",
"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#"
}🔴loan_delete(loan)
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",
"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#"
}🟢loans_report(as_of, year, currency)
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",
"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#"
}🟢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",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪license_activate(key)
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",
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス