protogrid

Search / com.gumballtools/amortize

Amortization Schedule

R0· no sign-in

Row-by-row loan amortization schedules: monthly or daily accrual, extra principal, PMI, biweekly.

v0.1.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality86good
Trust89of 100
Uptime, 30 days100%
Latency p50884 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "amortize": {
      "type": "http",
      "url": "https://amortize.gumballtools.com/api/mcp"
    }
  }
}
claude mcp add --transport http amortize https://amortize.gumballtools.com/api/mcp
[mcp_servers.amortize]
url = "https://amortize.gumballtools.com/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "amortize": {
      "type": "remote",
      "url": "https://amortize.gumballtools.com/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "amortize": {
      "type": "http",
      "url": "https://amortize.gumballtools.com/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=amortize&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYW1vcnRpemUuZ3VtYmFsbHRvb2xzLmNvbS9hcGkvbWNwIn0%3D"
}
{
  "servers": {
    "amortize": {
      "type": "http",
      "url": "https://amortize.gumballtools.com/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "amortize": {
      "httpUrl": "https://amortize.gumballtools.com/api/mcp"
    }
  }
}
extensions:
  "amortize":
    enabled: true
    name: "amortize"
    type: streamable_http
    uri: "https://amortize.gumballtools.com/api/mcp"
    timeout: 300

Quality 86 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations1 of 1 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: amortize (destructiveHint, idempotentHint)
  • pass
    tools.token_costabout 1,361 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

1 tools, about 1,361 tokens to load them all · tool set be6722088352 · checked 2026-10-20 12:13 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 89 / 100

duplicate-repo
provenance85
liveness100
freshness85
hygiene80

+repository +dns-namespace +website +reachable +uptime-100% ~updated-45d-ago -duplicate-repo(16 names)

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://amortize.gumballtools.com/api/mcp streamable-httpnoneyes100%884 ms2026-07-282026-10-20

Tools (1)

amortizeread-onlyBuilds the full row-by-row amortization schedule for a loan — interest, principal, PMI, and running balance for every payment — instead of just the monthly payment amount. Use this whenever a row-by-row schedule matters: "what is my balance after payment 47", "what does an extra $200/month do to my payoff date", "when does PMI drop off", or "give me the whole amortization table". Do not do this arithmetic by hand or in your head. Two things go wrong reliably when a model tries: 1. THE LAST ROW. The textbook payment formula only amortizes to exactly zero in infinite precision. Rounded to cents and carried over up to a few hundred rows, a hand-rolled schedule drifts and ends with a balance of a few cents to a few dollars instead of zero — exactly the row a person checks against their real statement. This tool recomputes the final row as "remaining balance + that row's interest" so it always ends at zero, and reports the delta. 2. COMPOUNDING CONVENTION. Fixed mortgages compound monthly (rate/12). HELOCs, most auto loans, and most private student loans accrue interest DAILY on the actual number of days between payments, which is a genuinely different schedule, not a rounding variant. Guessing the wrong one silently produces a plausible but wrong table. Input: `principal`, `annualRatePercent` (e.g. 6.5), `termMonths` (integer), and `compounding` ("monthly" or "daily") are required. For `compounding: "daily"`, supply EITHER `startDate` (YYYY-MM-DD — the tool derives real day counts and leap years from the calendar itself) OR `dayCountBasis` ("30/360" | "actual/365" | "actual/actual") for a hypothetical loan with no dates — never both are needed, and supplying neither is refused rather than guessed. Optional: `paymentFrequency` ("monthly" default | "biweekly", which requires daily compounding — pass `paymentOverride` if the actual billed payment differs from the textbook one, e.g. a HELOC's quoted minimum; `extraPrincipal` as `{type:"oneOff",amount,atPaymentNumber}` or `{type:"recurring",amount,startingPaymentNumber?}`; `pmi` as `{monthlyAmount,originalValue,cancelAtPercent?}` (78 or 80, default 78) to model PMI dropping off. Refuses rather than guesses: a payment that does not exceed the first period's interest (negative amortization) is a named error with the minimum amortizing payment attached, not a schedule that never ends. An unparseable or impossible date is refused, not reinterpreted. Returns the full schedule, total interest and PMI paid, the payoff date or period, the final payment amount and how it differs from the standard one, and — when extra principal was given — the same schedule without it, so the periods and interest saved are explicit. A `disclaimer` field travels with every response: this is a planning estimate, not a lender payoff quote, and PMI cancellation here uses your actual balance, which a servicer is legally permitted to compute off the original schedule instead. Relay the warnings, not just the numbers.

Schemas: list_tools.

Also listed as

15 other active names share this repository (showing 10): com.crontoenglish/cron-translator, com.gumballtools/body-metrics, com.gumballtools/check-digit, com.gumballtools/color-companion, com.gumballtools/due-date, com.gumballtools/equation-steps, com.gumballtools/iso-week, com.gumballtools/json-to-types, com.gumballtools/payload-validator, com.gumballtools/penny-rounding

Similar MCP servers

More from com.gumballtools

And 8 more from this publisher.

Official server.json
{
  "name": "com.gumballtools/amortize",
  "title": "Amortization Schedule",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://amortize.gumballtools.com/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "repository": {
    "url": "https://github.com/bwalvoord/gumball",
    "source": "github"
  },
  "websiteUrl": "https://amortize.gumballtools.com",
  "description": "Row-by-row loan amortization schedules: monthly or daily accrual, extra principal, PMI, biweekly."
}