The challenge
Case Study
ContaMCP
Track income, expenses, budgets, and savings in ChatGPT.
An open-source finance tracker that keeps your records available across chats. The service is live; its public ChatGPT plugin is awaiting review.
Why ContaMCP exists
The approach
Record transactions and ask questions in chat. Conta saves your entries and calculates the totals.
Key features
Income and expense tracking
Say "Record 125.50 MXN for groceries today." Your assistant can ask for missing details before saving, and you can retrieve the entry in a new chat.
See where your money goes
Ask how much you spent this month or which categories cost the most. Get totals from your saved records, with MXN, USD, and EUR kept separate.
Find ways to save
Ask where you could cut back. Your assistant can review spending by category, suggest a target for next month, and show how much you could save.
Recurring entries, budgets, and goals
Set up recurring income and expenses, monthly budgets, and savings goals. Scheduled entries are saved when due and stay unverified until you confirm payment. Conta does not move money.
What I built
A finance tracker with saved records, sign-in, recurring entries, and exports, connected to ChatGPT through MCP tools.
Agent / MCP Integration
- Built typed tools for recording income and expenses, reports, recurring entries, budgets, savings, and exports.
- Kept domain rules independent of the assistant and transport, with structured results and clear failure responses.
- Tested financial workflows and safe failures in ChatGPT on desktop, then verified saved-entry retrieval on a phone.
Platform / Systems
- Deployed a TypeScript service on Cloudflare Workers, with Hono, Drizzle, D1 / SQLite, and KV.
- Used integer minor units for money, owner-scoped persistence, version checks, audit history, and idempotent retries.
- Integrated Google sign-in and scoped OAuth grants with PKCE, plus isolated staging and production configuration.
Open Source / Self-hosting
- Published the source under the MIT license with setup, security, operations, and contribution documentation.
- Offered a hosted service so people can sign in with Google and connect their assistant.
- Added deployment guides for developers who want to run their own instance.
Engineering decisions
The choices that keep records accurate when people manage their finances through chat.
Keep records outside the chat
ChatGPT handles the conversation. ContaMCP stores each entry and calculates totals, so a new chat can retrieve the same records.
Check changes and keep their history
Check account ownership before every change. Version checks catch conflicting edits, retry keys prevent repeated requests from creating duplicate entries, and corrections keep their history.
Support hosted use and self-hosting
People can sign in with Google and use the hosted service. Developers can inspect the MIT-licensed source and follow the guides to run their own instance.