Home · Setup · Claude Desktop

MCP Amortization in Claude Desktop

Loan and lease schedules derived from the terms of the agreement, in integer minor units, closing exactly on the balloon or on zero. You give it what the agreement says: the principal in minor units, the nominal annual rate in basis points, how often interest compounds, how often a payment falls due, the term in periods, annuity or straight principal, any arrangement fee, any balloon and the drawdown date. It derives the level payment, the effective annual rate beside the nominal one, and the schedule period by period, opening balance, payment, interest, principal, closing balance, every figure a whole minor unit. Compounding and payment frequency are two different clocks here, which is the decision most of the arithmetic rests on: the rate for one payment period is the equivalent rate taken through the compounding clock rather than the nominal rate divided by the number of payments, and on a quarterly-paid, monthly-compounded loan that difference is worth about 1.0 percent of the whole interest bill, in the lender's favour, and is invisible in the quote. The payment never varies: rounding the level payment once leaves the closing balance a few units from zero after a chain of subtractions, and that residual goes into the final period's interest and principal SPLIT rather than into the payment, because the payment is what the borrower is contractually due to pay and the split is not. A level payment rounded once can also clear the debt before the declared term ends, and the schedule stops where the debt does rather than filling out the term with periods that charge negative interest on a balance already gone. Early settlement and partial overpayment are costed gross and net of the penalty, and a penalty larger than the interest saved is reported as a COST rather than as a smaller saving. The journal debits interest expense and loan liability and credits cash in the cash book's own account ids, and the expense payload carries the interest ALONE. Nothing is posted from here, no schedule is stored, currencies are never added together, and month arithmetic clamps rather than rolling forward.

The agreement is usually a PDF in this window already, so reading its terms out of the document and into loan_create is one sentence, and the follow-up that matters, what would settling early actually cost me after the penalty, is the next one. Nothing leaves the machine: the server makes no network call on any tool, so a schedule over a credit agreement you have not signed yet is worked out entirely locally.

What you get in Claude Desktop

You sayTool
Record the van finance: 1,000,000 minor units at a nominal 12 percent compounded monthly, twelve monthly payments, drawn 2026-01-15.loan_create
Show me the schedule, and tell me the effective annual rate beside the nominal one.loan_schedule
What would settling at period 6 cost me, after the penalty?loan_repay_early

Rounding the level payment once is a term change, not a rounding detail. Measured on this server's own engine at 250 basis points over 360 annual periods on 1,000,000 minor units: the payment rounds to 25,292, that rounding is worth a fraction of a minor unit, it repeats, and the balance clears at period 356, FOUR PERIODS BEFORE the declared term ends, with a final payment of 4,165. A schedule that keeps subtracting to fill out the declared term does not fail or throw: it reports four more periods, each with a full payment on a balance that has gone negative, each charging negative interest, and the totals still reconcile against themselves. The chain arithmetic is self-consistent all the way down and the only thing wrong with it is that the borrower does not owe the last four rows. A second measured figure from the reference loan: the final period's interest is 882 rather than the 880 an unrounded balance carries, and putting that 2 unit difference into the payment instead would produce a final payment of 88,847, an amount that appears on no agreement.

Install it in Claude Desktop

The file is claude_desktop_config.json, and the key inside it is mcpServers.

ScopePath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "amortization": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-amortization"]
    }
  }
}

If node came from nvm, asdf or homebrew, replace "npx" with the absolute path that which npx prints:

"command": "/Users/you/.nvm/versions/node/v22.14.0/bin/npx"

Save, then completely quit Claude Desktop and start it again. A window reload is not enough.

The npm publish of @theluckystrike/mcp-amortization is pending; until then use the .mcpb bundle or a clone and build from the latest release.

No install: the hosted endpoint

The same server runs at https://mcp.zovo.one/mcp/https://mcp.zovo.one/mcp/amortization over MCP streamable HTTP, no install. Mint a free token with curl https://mcp.zovo.one/mcp/token, or use a Pro key. It has no filesystem, so a file comes back as a one-hour download link.

{
  "mcpServers": {
    "amortization": {
      "url": "https://mcp.zovo.one/mcp/https://mcp.zovo.one/mcp/amortization",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Claude Desktop notes worth knowing first

Two documented facts decide whether the entry works: every path in claude_desktop_config.json must be absolute, and a stdio server started here inherits only a limited, platform-dependent subset of environment variables. If node came from nvm or homebrew, paste what `which npx` prints instead of the bare word. The .mcpb route avoids both: Claude Desktop ships a built-in Node.js environment.

Free: loan_schedule is free and unlimited on every tier, and so is loan_list. The payment and the interest are the question this server exists to answer, and a free tier that hides the answer is a demo rather than a tool, so neither the schedule nor the balance outstanding is ever metered. The cap is on the number of agreements held instead: three loans or leases in the register, which is the unit of work. Rebuilding the schedule of a loan already recorded is free forever, on every tier, however many times you ask. Pro is $19 once, verified offline.

Questions

Where is claude_desktop_config.json?

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json. Windows: %APPDATA%\Claude\claude_desktop_config.json. There is no published Linux path. Settings, Developer, Edit Config opens the right copy and creates it if it does not exist.

I added it and MCP Amortization does not appear.

In order: did you fully quit and restart, not just close the window? Is every path absolute? And is the command resolvable, given the limited environment a stdio server inherits here? If node came from nvm, paste what which npx prints.

Can I install it without editing JSON?

Yes. An .mcpb bundle, the format renamed from .dxt, opens with Claude and shows an installation dialog. One you built yourself goes in through Settings, Extensions, Advanced settings, Install Extension.

Related

MCP Amortization in detail · The same server in Claude.ai and Claude Desktop connectors and Claude Code · Every server in Claude Desktop · Guides · Claude Desktop docs · Buy Pro