Mortgage Calculator
Calculate monthly payments and amortization. Everything runs in your browser.
Results
| Year | Starting Balance | Principal Paid | Interest Paid | Ending Balance |
|---|
Use this tool from AI agents
This tool's engine is available to AI agents over MCP as amortization_schedule. Add the Clean.tools server, then your agent can call it directly.
claude mcp add --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --transport http clean-tools https://mcp.clean.tools/mcp{"mcpServers":{"clean-tools":{"command":"npx","args":["-y","@clean-tools/mcp"]}}}{"mcpServers":{"clean-tools":{"command":"npx","args":["-y","@clean-tools/mcp"]}}}https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpOr call it over plain HTTP from any script. Same engine, JSON in and JSON out, no key:
curl -s https://api.clean.tools/v1/amortization_schedule \
-H 'content-type: application/json' \
-d '{"principal":350000,"annualRate":6.5,"years":30}'curl -s https://api.clean.tools/v1/amortization_schedule \
-H 'content-type: application/json' \
-d '{"principal":350000,"annualRate":6.5,"years":30}'const res = await fetch('https://api.clean.tools/v1/amortization_schedule', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ principal: 350000, annualRate: 6.5, years: 30 })
});
const data = await res.json();const res = await fetch('https://api.clean.tools/v1/amortization_schedule', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ principal: 350000, annualRate: 6.5, years: 30 })
});
const data = await res.json();How it works
This mortgage calculator uses the standard fixed-rate amortization formula: M = P[r(1+r)^n] / [(1+r)^n - 1], where P is principal, r is monthly rate, and n is total payments. It computes the monthly payment, then iterates month by month to build a year-by-year amortization schedule showing principal paid, interest paid, and remaining balance.
All calculations run entirely in your browser. No data is sent to a server. No signup, no tracking. Works on mobile and desktop.
The same amortization engine is available to scripts and AI agents through the mortgage-calculator API (the amortization_schedule endpoint), or you can install the @clean-tools/mcp package from npm to run it as an MCP server.
Frequently asked questions
Does this include property tax, insurance, or PMI?
No. The result is principal and interest only, so your real monthly housing cost will be higher once escrow items like property tax, homeowners insurance, HOA dues, and private mortgage insurance are added. Treat the monthly payment as the loan portion of a larger bill.
Why does the last year's ending balance sometimes not land exactly on zero in my head?
Interest is computed on the outstanding balance each month and the final principal payment is capped so the balance never goes negative, which absorbs rounding. The schedule forces the balance to zero once it falls below half a cent, so the displayed ending balance is $0.00 at payoff.
What happens if I enter a 0% interest rate?
The calculator switches to a straight-line split and divides the loan amount evenly across every month of the term. In that case total interest is $0.00 and total paid equals the loan amount.
Can I model biweekly payments or extra principal?
Not directly. This tool assumes 12 equal monthly payments per year for a fixed-rate loan with no prepayments, so it will not reflect biweekly schedules, lump-sum payments, or an adjustable rate.
Can I use this from the command line or an AI agent?
Yes. Send a POST request to https://api.clean.tools/v1/amortization_schedule with the loan amount, annual rate, and term, and you get the payment and full schedule back as JSON. The same tool is exposed as an MCP server, so you can add it to Claude, Claude Code, or Cursor and have your agent run the numbers directly. The @clean-tools/mcp npm package runs it as a local stdio server if you prefer to keep it on your own machine.
More tools from Clean.tools
Use Clean.tools from your AI agent
This tool is also amortization_schedule on the Clean.tools MCP server — the same engine, callable by your AI agent directly. No key, no signup: requests are processed in memory and request contents are never stored.
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpEvery tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →