← work.

Finnote

Personal finance dashboard an AI agent writes to over MCP

role
Solo
stack
Convex · React · TypeScript · Vitest · MCP
year
2026
Finnote

the problem

I wanted one calm screen showing net worth, this month's income and expenses, account balances, budget status, spending by category, and a six-month cash-flow trend, without turning expense tracking into a data-entry chore.

an agent does the typing

The dashboard is deliberately read-focused. Records are written by an AI agent through an MCP server rather than typed into forms, so the web surface stays an overview rather than an input tool. Amounts are integer rupiah throughout, formatted as Rp 1.500.000.

Recent transactions on the dashboard, each tagged with its source: the AI agent, a manual entry, or a recurring rule.
An offline build with sample data. Each entry records who logged it, so an agent write is never confused with a manual one.

testing

Every Convex module has a test file beside it, 68 of them, covering accounts, budgets, debts, invites, authorization, audit logging, migrations, and the MCP surface. They run on convex-test under Vitest. It is a single-user app, so the tests exist for my own confidence when changing the schema, not for a team.