Developers
Your books, from your own code or your own assistant.
A REST API and an MCP server on every plan, under a token you make in Settings: on Free it reads, on Personal and Business it can also make changes. Ask Claude what you spent on software this year, or have it file every Uber ride as business travel. It works as you, inside your plan and your household, and it can never move money.
No account yet? The sample books answer without one: claude mcp add --transport http contha-demo https://demo.contha.com/api/mcp
Start
A token, then one line of setup
- In the app, open Settings and make a token under Claude and ChatGPT (Use a token instead). It is shown once; keep it like a password.
- Tick Can make changes only if you want your assistant or script to file and add things. Without it the token reads.
- Paste it into one of the setups below. Revoke it any time from the same place; the next request is refused.
Claude Code
One command, then ask about your money in the terminal.
claude mcp add --transport http contha https://app.contha.com/api/mcp \
--header "Authorization: Bearer YOUR_TOKEN"Cursor
In .cursor/mcp.json, or Settings, MCP.
{
"mcpServers": {
"contha": {
"url": "https://app.contha.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}Claude Desktop
In claude_desktop_config.json, through the mcp-remote bridge.
{
"mcpServers": {
"contha": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.contha.com/api/mcp",
"--header", "Authorization: Bearer YOUR_TOKEN"]
}
}
}Anything that speaks HTTP
The REST API, with the same token.
curl "https://app.contha.com/api/v1/transactions?side=business&limit=20" \
-H "Authorization: Bearer YOUR_TOKEN"MCP
What your assistant can do
22 tools that read and 6 that change the books, the last only for a token made to. Tools for the business side answer on the Business plan.
- get_overview
- Start here: Free to use, this month by book, bills coming up, the next tax payment and what needs you.
- get_upcoming_bills
- Every recurring charge expected in the next 30 to 90 days.
- get_budget
- A month’s budget, planned against spent, line by line.
- get_spending_by_person
- Who spent what, for a period or one category: each person, joint, and not said.
- get_net_worth
- Net worth, as cash, investments and debt.
- get_accounts
- Every account with its balance, type, side and how fresh its feed is.
- get_transactions
- Transactions by date, side, review state or a search, each with its id and category.
- get_categories
- Categories with their ids and what each does for tax.
- get_rules
- Your rules, in the order they are tried.
- get_profit_and_loss
- The business month by month: money in and out by category.
- get_holdings
- Investment holdings, with gains.
- get_schedule_c
- The Schedule C worksheet, line by line.
- get_tax_estimate
- The year’s estimated tax, worked out.
- get_quarterly_schedule
- The four quarterly payments, with dates and amounts.
- get_year_end_package
- Any file of the year-end package, as CSV.
- audit_misfiled_business
- Charges that look like business spending filed as personal.
- get_cashflow
- Where the money came from and went, by month.
- get_card_recommendations
- Credit cards ranked by what each would earn on your own spending, after fees.
- get_savings_opportunities
- Cash earning less than it could, and what the difference is worth a year.
- get_subscription_review
- Every recurring charge, with price rises, duplicates and renewals flagged.
- get_spending_trends
- Each category month by month against its usual, and your top merchants.
- get_goals
- Your savings goals: saved, left, and what each needs a month.
- file_transactionschanges
- File one or many: category, side, or both; optionally remember the merchant.
- add_transactionchanges
- Add cash or anything a bank will not carry.
- delete_transactionchanges
- Delete one you added by hand.
- create_rulechanges
- File a merchant one way from now on, deposits or charges only if you like.
- set_budgetchanges
- Set what you plan to spend in a category this month.
- mark_billchanges
- Mark a recurring charge cancelled, or not a bill at all.
REST API
https://app.contha.com/api/v1
JSON in and out. Money is integer cents, negative for money out. Errors are always{ error: { code, message } }, and a token gets 120 REST requests a minute. The MCP server takes 60 tool calls a minute per token.
| Endpoint | What it does |
|---|---|
| GET/me | The token: plan and scopes |
| GET/accounts | Accounts and balances |
| GET/categories | Categories, with what each does for tax |
| GET/transactions | Transactions, newest firstQuery: from, to, accountId, categoryId, side, needsReview, q, limit, cursor |
| POST/transactions | Add a transaction by hand (write) |
| PATCH/transactions/{id} | File a transaction (write) |
| DELETE/transactions/{id} | Delete a transaction added by hand (write) |
| GET/rules | Rules, in the order they are tried |
| POST/rules | Add a rule (write) |
| GET/reports/profit-and-loss | The business, month by month (Business plan)Query: year |
Limits
What a token can never do
- Move money. Contha reads banks and holds none; nothing here can pay, transfer or hold an account.
- Reach past you. A token works as its maker, under the same rules as the app: their plan, their household, and a viewer’s token only reads.
- Delete what a bank sent. It can delete a transaction you added by hand, and nothing else.
- Outlive you deciding otherwise. Every token shows when it was last used, expires when you choose, and stops on the next request once revoked.