Worthbase
Worthbase keeps your household's balance sheet: everything you and your family own and owe, from shares, ETFs and crypto to super and retirement accounts…
What it can do
- Whoami: The signed-in user, their workspaces and roles, their default workspace, and invites waiting for them.
- Save Workspace: Without workspace: create one (e.g. "Carter Family"); the caller owns it, and their first becomes their default. With workspace: rename it (owners and admins; only name). Confirm the n
- Members: Who can see and edit a workspace. action list: members, roles and pending invites. invite: email + role (+ party to link them to their party); emails them and returns a one-time invite code.
What data it sees
Do you need an account
No: the server works without sign-in
Worthbase keeps your household's balance sheet: everything you and your family own and owe, from shares, ETFs and crypto to super and retirement accounts, property, cash and loans, including assets held in trusts, companies and SMSFs.
Your AI does the reading and typing. Hand it a broker export, a super statement or a property estimate and it maps the rows; Worthbase checks every one, shows a preview, and only saves what you confirm. Every change is recorded against its source and can be undone.
Worthbase does the rest: it prices listed holdings, crypto and precious metals every day, keeps exact cost bases and the gain or loss on every holding, and keeps your history. Ask "What's our net worth?", "How have my shares performed since 2023?", "What would I make if I sold half my CBA?" or "Are we on track for $2.5M by 2030?", and every answer comes from the ledger, not the model's arithmetic.
Split ownership exactly between people and entities, track goals, keep notes on anything you own, track losses you carry forward, and get a short weekly email with what moved. Worthbase never asks for bank or broker logins, and it doesn't give financial or tax advice.
Requires a Worthbase account (7-day free trial) at https://worthbase.app. Sign-in is OAuth; no API key needed.
How to connect
How to connect Worthbase to Claude
The server address to paste into Claude settings:
https://worthbase--sanjay-bhagia.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Worthbase to ChatGPT
The server address to paste into ChatGPT settings:
https://worthbase--sanjay-bhagia.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Worthbase to Cursor
The server address to paste into Cursor settings:
https://worthbase--sanjay-bhagia.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (30)
Raw names from tools/list. Only developers need these.
| whoami | The signed-in user, their workspaces and roles, their default workspace, and invites waiting for them. |
| save_workspace | Without workspace: create one (e.g. "Carter Family"); the caller owns it, and their first becomes their default. With workspace: rename it (owners and admins; only name). Confirm the name with the user first. |
| members | Who can see and edit a workspace. action list: members, roles and pending invites. invite: email + role (+ party to link them to their party); emails them and returns a one-time invite code. set_role: user_id + role (only owners grant owner; one owner always remains). remove: user_id (removing yourself leaves the workspace; recorded data stays). revoke: invite_id. Changes take effect immediately. |
| accept_invite | Joins a workspace the user was invited to, by the invite code or the id of an invite sent to their email. Links them to their party there if the invite named one. |
| save_party | A legal owner: an individual, company, trust, SMSF or partnership; items are owned by parties by percentage. Without party: create (name and type required). With party: change name, type, short name or notes. link_to_me: true marks the party as the signed-in user (for "my" net worth); false unlinks. Undoable. |
| save_account | An account at an institution (brokerage, bank, exchange, wallet, super, loan). Without account: create (name and type required). With account: rename or change institution, type, number hint or notes (undoable). Accounts can also be created inside a record batch. |
| get_overview | Parties (with which one is the signed-in user), accounts, item counts, net worth headline, stale items, open reconciliation mismatches, price run status and recent batches. |
| get_net_worth | Assets, liabilities, net worth, investable and cash on one date, optionally for one party and broken down by class, kind, party, account or item. If items have no value on that date the result is partial: they're listed in excluded with missing_estimate. workspace: "all" gives the signed-in user's own share across every workspace (e.g. household + a business), in one currency. |
| list_items | Assets and liabilities with their owners, notes and current position (units, price, value, cost base, unrealised gain, staleness). |
| record | Creates accounts and items (with $refs and links) and records transactions, transfers, valuations, prices and reconciliation checks, all saved together. Records only what has already happened elsewhere: Worthbase doesn't move money, make payments or transfers, or place trades, and has no connection to banks or brokers. dry_run defaults to true: returns a preview (preview_id, valid 30 minutes) with new items, rows, duplicates, conflicts, warnings and the net worth change; nothing is saved until the preview is committed. dry_run: false saves a single simple row directly. Listed securities, crypto and metals are market-priced (instrument); everything else is valued manually with dated valuations, kept as history. Liabilities are positive balances. |
| commit | Saves a previewed batch by its preview_id. Fails with preview_stale if the ledger changed since the preview in a way that alters the result. |
| undo | Reverses a whole committed batch: everything it created, and any edit it made. With dry_run: true (the default) it only returns what would be removed or restored and the net worth change; dry_run: false applies it. Refuses if the result would leave the ledger inconsistent. |
| update_item | Changes an item's name, class (same kind), subtype, account, currency (only before any history), opened_on, flags, notes or attributes (merged; null removes a key). Doesn't change ownership. Saves directly and is undoable; dry_run: true previews. |
| set_owners | Replace an item's ownership split (must add to 100). Once the item has history this needs correction: true, meaning the recorded split was wrong all along; history is re-derived. A real change of owner (a gift or sale to someone else) is recorded as a disposal by the old owners, not an edit. Preview first with dry_run: true when correcting. |
| archive_item | Removes one item (and its value) from the balance sheet; gains or losses it already realised (a sale) stay on record. dry_run: true previews. Undoable. |
| void | Removes specific transactions (txn_), valuations (val_) or prices (prc_), e.g. to replace a wrong one. Refuses if the ledger would no longer replay (e.g. voiding a buy that a later sell needs). dry_run: true previews. Undoable. |
| link_items | Link two items: secured_by (loan → property), offsets (offset/cash account → loan), funds (loan → asset it paid for, with pct of the loan). remove: true deletes that link. Undoable. |
| get_item | One item in full: position, owners, links, transactions, valuations (its value history), open lots, reconciliations and the batches that wrote them. |
| get_history | Net worth at each month, quarter or year end between two dates in one call, optionally for one party and broken down by class, kind, party, account or item, with the change over the period. Points are marked partial when items had no value recorded yet. interpolate: true draws straight lines between recorded manual values. |
| get_performance | How assets did over a period: start and end value, money in and out, income, gain, simple return and money-weighted annual return (XIRR), per item and in total. For one item, a class or everything; optionally one party's share. |
| get_goals | The user's goals (a net worth to reach, or debt to pay down, for the household or one party, optionally by a date) with progress, the last 12 months' trend, the projected date at that pace, whether that's on pace for the target date, and the monthly change still needed. Projections are estimates from past figures, not advice. |
| set_goal | Create, change or remove a goal. Create with name, kind (net_worth: reach an amount; debt: bring total debt down to it, 0 = debt-free), target (base currency decimal string), and optionally target_date and party (for one person's or entity's share; default the household). Change one by passing its goal id; archive: true removes it. Undoable. |
| get_losses | Losses the household carries forward (a business, capital or rental loss), each with its owner, the year it arose, the amount, how much has been used and what's left, plus what's left per party. Not counted in net worth. |
| set_loss | Record, change or remove a loss a party carries forward. Record with party, kind (business, capital, rental or other), year it arose and amount (base currency decimal string), and optionally used and notes. Change one by passing its loss id (e.g. to update how much has been used); archive: true removes it. Amounts are kept as given; nothing is worked out for tax. Undoable. |
| list_batches | Recent writes, newest first, with their source document, client and status, for review or undo. Page with before. |
| refresh_prices | Starts fetching the latest prices (listed securities, crypto, gold/silver) for a workspace, backfilling history for new holdings and re-valuing everything. Runs in the background for about a minute; its progress shows as price_run in the workspace overview. Prices also refresh automatically every day after the US close (22:00 UTC). At most once per 15 minutes. |
| search_instruments | Find a listed security (Yahoo Finance) or crypto coin (CoinGecko) by name or code, to get the symbol, exchange or CoinGecko id to use in an item's instrument. |
| get_debt_report | Every loan with its balance, security, offsets and purpose (from funds links: what the borrowed money paid for, split into investment vs personal use), plus each property's value, secured debt, equity and LVR. |
| simulate_sale | Read-only: what selling some or all of a holding would do — proceeds, fees, lots consumed (FIFO or specific) with each lot's cost base and gain or loss, the gain or loss per party, and the resulting position. Never writes. |
| reconcile | Check a statement figure against the calculated one for an item on a date (units, value in the item's currency, or cost base in the base currency). Records match or mismatch. |