Metadata-Version: 2.5
Name: therealcost-mcp
Version: 0.1.0
Summary: Free money calculators for AI agents, from The Real Cost (therealcost.nohumannearby.com): credit card payoff, debt consolidation, loan cost by term, crypto trading fees and emergency fund, each with the formula in words and a pre-filled calculator link. Education only.
Project-URL: Homepage, https://therealcost.nohumannearby.com
Project-URL: Calculators, https://therealcost.nohumannearby.com/calculators/
Project-URL: Guides, https://therealcost.nohumannearby.com/books/
Project-URL: Repository, https://github.com/NoBanks/therealcost-mcp
Author-email: The Real Cost by NoBanks Nearby <nobanksnearby@gmail.com>
License: MIT License
        
        Copyright (c) 2026 Ryan Hammer (NoBanks Nearby)
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: ai-agents,calculator,credit-card,crypto-fees,debt-consolidation,emergency-fund,financial-education,loan,mcp,model-context-protocol,personal-finance
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.10
Requires-Dist: mcp<2,>=1.20.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# therealcost-mcp

**Free money calculators for AI agents, from [The Real Cost](https://therealcost.nohumannearby.com).**

The Real Cost by NoBanks Nearby is a free set of US money calculators with the math shown:
credit card payoff, debt consolidation, loan cost by term, crypto trading fees and emergency fund.
This MCP server lets Claude and other AI assistants run those exact calculators and hand the user
a link to the same calculator on the site, already filled in with their numbers, so they can check
the math and keep adjusting it.

- Site: https://therealcost.nohumannearby.com
- All calculators: https://therealcost.nohumannearby.com/calculators/
- Guides: https://therealcost.nohumannearby.com/books/

**Education only. Not financial advice.** Results are estimates from the numbers entered.

<!-- mcp-name: io.github.NoBanks/therealcost-mcp -->

## What every result includes

Each calculator tool returns JSON with:

| Key | What it is |
| --- | --- |
| `result` | The numbers (months, total interest, payments, costs) |
| `summary` | The result in one plain-English paragraph |
| `formula` | The formula in words, so the user can see how the number was made |
| `calculator_url` | The matching page on therealcost.nohumannearby.com, pre-filled with the inputs |
| `warnings` | Present when a plan never pays off or never reaches the goal |
| `go_deeper` | The matching guide and chapters, with the guides link |
| `source` | "The Real Cost by NoBanks Nearby, https://therealcost.nohumannearby.com" |
| `disclaimer` | "Education only. Not financial advice." |

The math is a line-for-line port of the site's own calculator code, and the test suite reuses the
site's hand-checked cases, so a number from this server matches the number on the site.
No network calls, no API keys, no tracking.

## The guides

The Real Cost also publishes ten plain-English guides that go deeper than any one calculation,
with every number worked out step by step (PDF and EPUB):

| Guide | Pages | Goes with |
| --- | --- | --- |
| The Real Cost of Credit Card Debt | 112 | credit card payoff, debt consolidation |
| The Real Cost of Loans and Big Purchases | 110 | loan cost by term, debt consolidation |
| The Real Cost of Everyday Spending | 123 | emergency fund |
| The Real Cost of Crypto Fees and Taxes | 110 | crypto trade cost |
| The Real Cost of Credit Reports and Scores | 115 | loan cost by term |
| The Real Cost of Paychecks and Taxes | 109 | |
| The Real Cost of Retirement Accounts | 117 | |
| The Real Cost of Student Loans | 115 | |
| The Real Cost of Renting and Buying a Home | 125 | loan cost by term |
| The Real Cost of Scams and Fraud | 103 | |

$4.99 each at https://therealcost.nohumannearby.com/books/ . All ten come together as the complete set
for $24.95 (10 for the price of 5). Guides 1-3 also come as a starter pack for $9.98 (3 for the price
of 2); the starter pack does not include guides 4-10.

Free sample chapters (Chapter 1 of each guide, PDF):

- https://therealcost.nohumannearby.com/samples/the-real-cost-of-credit-card-debt-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-loans-and-big-purchases-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-everyday-spending-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-crypto-fees-and-taxes-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-credit-reports-and-scores-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-paychecks-and-taxes-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-retirement-accounts-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-student-loans-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-renting-and-buying-a-home-chapter-1.pdf
- https://therealcost.nohumannearby.com/samples/the-real-cost-of-scams-and-fraud-chapter-1.pdf

The server tells connected agents about the guides in its instructions, and each calculator result
names the matching guide, its relevant chapters and its free sample chapter in a calm one-line `go_deeper` block. The calculators are free and complete
on their own.

## Install

Requires Python 3.10+. The easiest runner is [uv](https://docs.astral.sh/uv/).

### Claude Code

```bash
claude mcp add therealcost -- uvx --from git+https://github.com/NoBanks/therealcost-mcp therealcost-mcp
```

### Claude Desktop

Add this to `claude_desktop_config.json` (Settings, Developer, Edit Config), then restart Claude Desktop:

```json
{
  "mcpServers": {
    "therealcost": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/NoBanks/therealcost-mcp", "therealcost-mcp"]
    }
  }
}
```

### From a local clone

```bash
git clone https://github.com/NoBanks/therealcost-mcp
cd therealcost-mcp
pip install -e .
therealcost-mcp   # speaks MCP over stdio
```

Then point your client at the `therealcost-mcp` command (Claude Code: `claude mcp add therealcost -- therealcost-mcp`).

## Tools

### `credit_card_payoff`

Months and total interest to clear a card balance paying only the minimum, versus a fixed monthly payment.

| Input | Type | Default | Notes |
| --- | --- | --- | --- |
| `balance` | number | required | dollars |
| `apr` | number | required | percent, 24 means 24% |
| `payment` | number | none | fixed monthly payment to compare |
| `min_pct` | number | 1 | minimum = this % of the balance |
| `min_floor` | number | 25 | dollar floor on the minimum |
| `min_plus_interest` | boolean | true | minimum also includes that month's interest |

```json
{"name": "credit_card_payoff", "arguments": {"balance": 5000, "apr": 24, "payment": 200}}
```

Result (abridged): minimum only 234 months and $8,886.95 interest; $200 a month 36 months and
$2,000.56 interest; link
`https://therealcost.nohumannearby.com/calculators/credit-card-payoff/?balance=5000&apr=24&minPct=1&minFloor=25&plusInterest=1&fixedPayment=200`

### `debt_consolidation`

Current debts versus one consolidation loan, including the origination fee (taken out of the loan, so
the loan is sized up to total / (1 - fee%)).

| Input | Type | Default | Notes |
| --- | --- | --- | --- |
| `debts` | array | required | 1 to 10 items of `{balance, apr, payment, name?}` |
| `loan_apr` | number | required | percent |
| `loan_term_months` | integer | required | 1 to 600 |
| `origination_fee_pct` | number | 0 | percent |

```json
{"name": "debt_consolidation", "arguments": {
  "debts": [{"balance": 6000, "apr": 24.99, "payment": 200},
            {"balance": 3000, "apr": 27.99, "payment": 110},
            {"balance": 2500, "apr": 19.99, "payment": 90}],
  "loan_apr": 13, "loan_term_months": 48, "origination_fee_pct": 5}}
```

### `loan_cost_by_term`

Monthly payment, total interest and total paid for one loan over several terms.

| Input | Type | Default | Notes |
| --- | --- | --- | --- |
| `principal` | number | required | dollars |
| `apr` | number | required | percent |
| `terms` | integer array | [36, 48, 60, 72, 84] | months; the first two pre-fill the site |

```json
{"name": "loan_cost_by_term", "arguments": {"principal": 25000, "apr": 8, "terms": [36, 60]}}
```

Result (abridged): 36 months $783.41 a month; 60 months $506.91 a month.

### `crypto_trade_cost`

Trading fee, spread and network fees on a buy and a later sale at the same price, the price rise
needed to break even, and the yearly cost of recurring buys.

| Input | Type | Default | Notes |
| --- | --- | --- | --- |
| `amount` | number | required | dollars bought |
| `fee_pct` | number | required | trading fee per trade, percent |
| `spread_pct` | number | required | spread per trade, percent |
| `network_fee_buy` | number | 0 | flat dollars after the buy |
| `network_fee_sell` | number | 0 | flat dollars to move coins back to sell |
| `weekly_buy` | number | none | recurring buy amount; adds the yearly cost |
| `buys_per_year` | integer | 52 | 52 weekly, 26 biweekly, 12 monthly |
| `flat_fee_per_buy` | number | 0 | flat fee some platforms add on small buys |

```json
{"name": "crypto_trade_cost", "arguments": {"amount": 1000, "fee_pct": 0.6, "spread_pct": 0.5,
  "network_fee_buy": 2.5, "network_fee_sell": 2.5, "weekly_buy": 25, "flat_fee_per_buy": 0.99}}
```

### `emergency_fund`

Goal = monthly expenses x months to cover. Months to reach it, and the monthly amount needed to reach
it by a target.

| Input | Type | Default | Notes |
| --- | --- | --- | --- |
| `monthly_expenses` | number | required | must-pay expenses per month |
| `months_covered` | integer | required | 1 to 60 |
| `saved` | number | 0 | already saved |
| `monthly_add` | number | 0 | added each month |
| `apy` | number | 0 | savings APY, percent |
| `target_months` | integer | 12 | reach the goal in this many months |
| `target_date` | string | none | `YYYY-MM` or `YYYY-MM-DD`, instead of `target_months` |

```json
{"name": "emergency_fund", "arguments": {"monthly_expenses": 2500, "months_covered": 3,
  "saved": 500, "monthly_add": 300, "target_date": "2027-10"}}
```

Result (abridged): goal $7,500.00; 24 months to reach it at $300 a month; $583.33 a month reaches it in 12 months.

### `list_guides`

No inputs. Returns the ten guides (title, subtitle, pages, what each covers, price), the complete
set ($24.95 for all ten, 10 for the price of 5), the starter pack price (guides 1-3 only), and the
guides link.

```json
{"name": "list_guides", "arguments": {}}
```

### Errors

Bad input never crashes the server. It returns:

```json
{"error": {"type": "validation_error", "message": "Invalid input for credit_card_payoff.",
  "details": [{"field": "apr", "message": "Field required"}]},
 "disclaimer": "Education only. Not financial advice."}
```

## Calculator link parameters (for the site)

`calculator_url` uses the site's own form field ids as query parameters, so the site can pre-fill
each form by reading `?name=value` into the field with that id. Numbers are plain (`5000`, `24.99`);
booleans are `1` or `0`.

| Calculator page | Parameters |
| --- | --- |
| `/calculators/credit-card-payoff/` | `balance`, `apr`, `minPct`, `minFloor`, `plusInterest`, `fixedPayment` |
| `/calculators/debt-consolidation/` | `d1b`, `d1r`, `d1p`, `d2b`, `d2r`, `d2p`, `d3b`, `d3r`, `d3p` (balance, APR, payment per debt), `loanApr`, `loanMonths`, `feePct` |
| `/calculators/loan-term/` | `amount`, `apr`, `termA`, `termB` |
| `/calculators/crypto-trade-cost/` | `amount`, `feePct`, `spreadPct`, `networkBuy`, `networkSell`, `weekly`, `freq`, `flatFee` |
| `/calculators/emergency-fund/` | `expenses`, `monthsCover`, `saved`, `monthly`, `apy`, `target` |

Notes: unused debt rows are sent as `dNb=0` so the form's example rows are not counted. With more
than 3 debts the link opens the plain page (the form has 3 rows) and the result says so. Some site
fields are dropdowns (loan terms, months to cover, target, frequency); a value outside the dropdown's
options needs the site to add that option or fall back to its default.

## Development

```bash
pip install -e ".[dev]"
pytest
```

`tests/test_calc.py` is a port of the site's `site/tests/calc-math.test.js` (same hand-checked cases
and the same cross-checks), and `tests/test_server.py` awaits `list_tools` and `call_tool` directly.

## License

MIT. The Real Cost by NoBanks Nearby.
