Free money calculators: option expiry risk, debt avalanche, cash runway, subscriptions, invoices.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Months of cash runway for a household or freelance practice — hard runway (committed income only) and working runway, against honest burn including paying yourself.
what you pay yourself monthly
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Months of cash runway for a household or freelance practice — hard runway (committed income only) and working runway, against honest burn including paying yourself.
| Argument | Type | Description |
|---|---|---|
| owner_draw | number | what you pay yourself monthly |
| cash_on_hand* | number | |
| monthly_expenses* | number | |
| monthly_income_probable | number | |
| monthly_income_committed | number |
{
"type": "object",
"required": [
"cash_on_hand",
"monthly_expenses"
],
"properties": {
"owner_draw": {
"type": "number",
"description": "what you pay yourself monthly"
},
"cash_on_hand": {
"type": "number"
},
"monthly_expenses": {
"type": "number"
},
"monthly_income_probable": {
"type": "number"
},
"monthly_income_committed": {
"type": "number"
}
}
}Debt payoff plan: avalanche order (highest APR first), month-by-month simulation to a debt-free date, interest vs minimums-only, and what one extra $50/mo buys. All math local and deterministic.
| Argument | Type | Description |
|---|---|---|
| debts* | array | |
| extra_monthly | number | extra dollars/month beyond minimums |
{
"type": "object",
"required": [
"debts"
],
"properties": {
"debts": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"balance",
"apr",
"minimum"
],
"properties": {
"apr": {
"type": "number",
"description": "annual % e.g. 24.99"
},
"name": {
"type": "string"
},
"balance": {
"type": "number"
},
"minimum": {
"type": "number"
}
}
}
},
"extra_monthly": {
"type": "number",
"description": "extra dollars/month beyond minimums"
}
}
}Should you consolidate credit cards with a personal loan? Compares paying the cards directly (same monthly amount, highest rate first, 0% promo aware) against up to two loan offers, including origination fees, shortfall/extra cash, and early payoff — shows interest+fees by payoff month and the month a fee offer stops being the better deal. Deterministic arithmetic; no credit data.
| Argument | Type | Description |
|---|---|---|
| cards* | array | |
| offers* | array | |
| payoff_months | integer | when you expect to pay everything off; defaults to the full term |
| monthly_budget | number | monthly amount for the keep-the-cards comparison; defaults to offer A's payment |
{
"type": "object",
"required": [
"cards",
"offers"
],
"properties": {
"cards": {
"type": "array",
"items": {
"type": "object",
"required": [
"balance",
"apr"
],
"properties": {
"apr": {
"type": "number",
"description": "annual %, e.g. 27"
},
"name": {
"type": "string"
},
"balance": {
"type": "number"
},
"apr_after_promo": {
"type": "number",
"description": "APR % after the promo ends"
},
"promo_months_left": {
"type": "integer",
"description": "months left on a 0% promo, if any"
}
}
}
},
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"interest_rate",
"term_months"
],
"properties": {
"amount": {
"type": "number"
},
"term_months": {
"type": "integer"
},
"interest_rate": {
"type": "number",
"description": "interest rate % (NOT the APR, which already includes the fee)"
},
"fee_is_percent": {
"type": "boolean"
},
"origination_fee": {
"type": "number"
}
}
},
"maxItems": 2
},
"payoff_months": {
"type": "integer",
"description": "when you expect to pay everything off; defaults to the full term"
},
"monthly_budget": {
"type": "number",
"description": "monthly amount for the keep-the-cards comparison; defaults to offer A's payment"
}
}
}Freelancers: real $/hr per client — dollars actually collected divided by ALL hours logged (unbilled favors included). Exposes which clients quietly pay half your rate.
| Argument | Type | Description |
|---|---|---|
| collected* | array | |
| work_entries* | array |
{
"type": "object",
"required": [
"work_entries",
"collected"
],
"properties": {
"collected": {
"type": "array",
"items": {
"type": "object",
"required": [
"client",
"amount"
],
"properties": {
"amount": {
"type": "number"
},
"client": {
"type": "string"
}
}
}
},
"work_entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"client",
"hours"
],
"properties": {
"hours": {
"type": "number"
},
"client": {
"type": "string"
}
}
}
}
}
}Invoice aging buckets with the right chase action per invoice (friendly nudge → firm ask → escalation plan) based on how late each one is.
| Argument | Type | Description |
|---|---|---|
| today | string | YYYY-MM-DD, defaults to server date |
| invoices* | array |
{
"type": "object",
"required": [
"invoices"
],
"properties": {
"today": {
"type": "string",
"description": "YYYY-MM-DD, defaults to server date"
},
"invoices": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"due"
],
"properties": {
"due": {
"type": "string",
"description": "YYYY-MM-DD"
},
"paid": {
"type": "boolean"
},
"amount": {
"type": "number"
},
"client": {
"type": "string"
}
}
}
}
}
}What happens to an account if a single-leg US equity option finishes in the money at expiration: auto-exercise under the OCC $0.01 rule, the resulting long or short share position, whether a margin, cash, or IRA account can hold it (50% Reg T, $2,000 minimum for shorts, no shorts in cash/IRA), P&L and break-even, the trap zone (exercised but still losing), and pin risk near the strike. Optionally tests the price minus and plus an expected move. Deterministic arithmetic on your inputs; no market data.
| Argument | Type | Description |
|---|---|---|
| side | string | long = you bought the option; short = you sold/wrote it. Default long. |
| right* | string | |
| strike* | number | |
| premium | number | per-share price paid (long) or received (short), e.g. 0.48 |
| contracts | integer | number of contracts (100 shares each). Default 1. |
| account_type | string | Default margin. |
| shares_owned | integer | shares of the underlying already held; negative if already short. Default 0. |
| expected_move | number | optional dollar move to also test down and up, e.g. the at-the-money straddle price |
Find recurring charges in a transaction list — subscriptions, price-similar repeats — ranked by annual cost. Send 90+ days of (date, amount, description) rows for best results.
| Argument | Type | Description |
|---|---|---|
| transactions* | array |
{
"type": "object",
"required": [
"transactions"
],
"properties": {
"transactions": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"description"
],
"properties": {
"date": {
"type": "string"
},
"amount": {
"type": "number"
},
"description": {
"type": "string"
}
}
}
}
}
}| account_equity | number | optional margin account equity, to check the requirement |
| cash_available | number | optional settled cash, to check a share purchase |
| underlying_price* | number | stock price to test at expiration |
{
"type": "object",
"required": [
"right",
"strike",
"underlying_price"
],
"properties": {
"side": {
"enum": [
"long",
"short"
],
"type": "string",
"description": "long = you bought the option; short = you sold/wrote it. Default long."
},
"right": {
"enum": [
"call",
"put"
],
"type": "string"
},
"strike": {
"type": "number"
},
"premium": {
"type": "number",
"description": "per-share price paid (long) or received (short), e.g. 0.48"
},
"contracts": {
"type": "integer",
"description": "number of contracts (100 shares each). Default 1."
},
"account_type": {
"enum": [
"margin",
"cash",
"ira"
],
"type": "string",
"description": "Default margin."
},
"shares_owned": {
"type": "integer",
"description": "shares of the underlying already held; negative if already short. Default 0."
},
"expected_move": {
"type": "number",
"description": "optional dollar move to also test down and up, e.g. the at-the-money straddle price"
},
"account_equity": {
"type": "number",
"description": "optional margin account equity, to check the requirement"
},
"cash_available": {
"type": "number",
"description": "optional settled cash, to check a share purchase"
},
"underlying_price": {
"type": "number",
"description": "stock price to test at expiration"
}
}
}