MyFinance MCP
Personal finance by chat: expenses, income, budgets and net worth in 150+ currencies; any bank via statement import.
Hosted MCP Server
npx add-mcp 'https://myfinance-mcp.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Three steps. No app to learn.
It works the moment you connect. Your AI sets your base currency and timezone in the first conversation.
Step 1 / 3
Connect once.
Works with any AI client that supports remote MCP servers: Claude, ChatGPT, Codex, Cursor and more. No install, no API keys.
Step 2 / 3
Just say what you spent.
Plain language, a receipt photo, or a whole statement from any bank. Categories, currencies and duplicates handled automatically.
Step 3 / 3
Ask anything.
Monthly summaries, trends, budgets, net worth. Every number is computed in SQL on the server. The AI reads the math, it never guesses it.
Works with any bank. Just drop the statement.
Export a CSV or PDF from your bank, or take a screenshot in your banking app, and drop it into the chat. Your AI reads it, the server imports every row, skips what you already have and checks the result against the statement total.
any bank
CSV, PDF or a screenshot
Every bank can export a statement, in any country and any currency. Hundreds of rows go in with one message, each kept in the currency it was paid in.
no doubles
Duplicates skipped, your edits kept
Rows you already logged by hand are merged, not doubled, and keep your category. Dropping the same statement twice is safe: already-imported rows are skipped and reported.
reconciled
Checked against the statement
Every import ends with a total computed in SQL and compared with the one printed on the statement, so a misread row shows up now, not months later.
On ZenMoney (popular in Ukraine, Russia, Kazakhstan and Belarus)? Paste your free ZenMoney API token in the chat once and your accounts and transactions sync in, read-only, with your edits kept.
Try saying
Just talk to it. Each line below is a real conversation, and every result on the right was computed on the server, not guessed by the AI.
01 "Spent 20 eur on lunch" 20.00 EUR · restaurants · 180 / 300 budget
02 [receipt photo] "Log this" Lidl · 47.20 EUR · 12 line items saved
03 "Here's my June bank statement" [CSV] 152 imported · 3 merged · totals reconciled
04 "How much did I spend on restaurants in June?" 412 EUR · 18 visits · +6% vs May
05 "Set a 400 eur monthly budget for groceries" 310 / 400 EUR · 78% with 9 days left
06 "That dinner on the business card was personal" entity → personal · business report stays clean
07 "What's my net worth?" 24,300 EUR · 5 accounts · 3 currencies
Connect in under a minute
Works with any MCP client that supports OAuth 2.0 with PKCE. You sign in once during the connect step, with Google or with a one-time code sent to your email. There is no separate web login: your AI is the app. Want more detail? See the step-by-step install guides.
- Open Claude and go to Customize, then Connectors
- Click + Add, then Add custom connector
- Name it "MyFinance", paste https://myfinance-mcp.com/mcp as the remote MCP server URL and click Continue
- Choose Sign in now; if the form asks for an OAuth client, keep Use Claude's published identity (Recommended) (Register automatically works too)
- Click Add, then sign in with Google or an email code
Never pick "Use your own OAuth client" and never fill a Client ID or Secret: that breaks sign-in. MyFinance recognises Claude by itself, and your credentials go on the MyFinance sign-in page.
Works on every Claude plan; the Free plan allows one custom connector. Full Claude guide with first prompts and fixes.
- Turn on Developer mode: Settings, then Apps, then Advanced settings
- Open Plugins, click +, then Add custom MCP server (on the older menu: Settings, Apps, Create)
- Name it "MyFinance" and paste https://myfinance-mcp.com/mcp as the server URL
- Choose OAuth as authentication, leave the client ID and secret empty
- Accept the risk warning, create it and sign in
- In a new chat, type @ and pick MyFinance
ChatGPT needs Developer mode on the web. Logging works on Business, Enterprise and Edu; Pro gets read-only access. OpenAI does not list Developer mode for Free, Go or Plus: if you do not see it, use Codex (in every ChatGPT plan) or Claude.
Web only, not in the ChatGPT mobile apps. Full ChatGPT guide with plan details and fixes.
- Click Add to Cursor and confirm the install prompt in Cursor
- Open Customize in the sidebar, find MyFinance under MCP servers and click Connect
- Sign in with Google or an email code, then ask in the Agent chat
Manual setup: add this to ~/.cursor/mcp.json
{
"mcpServers": {
"myfinance": {
"url": "https://myfinance-mcp.com/mcp"
}
}
}
Full Cursor guide with first prompts and fixes.
codex mcp add myfinance \
--url https://myfinance-mcp.com/mcp
codex mcp login myfinance
The second command opens the MyFinance sign-in page in your browser. Then start codex and type /mcp to check the connection. In the Codex IDE extension or the ChatGPT desktop app: MCP servers, then Add server, Streamable HTTP, the same URL, then Authenticate. Codex is included in every ChatGPT plan, Free and Go too. Full Codex guide.
{
"mcpServers": {
"myfinance": {
"url": "https://myfinance-mcp.com/mcp"
}
}
}
In Claude Code: claude mcp add --transport http myfinance https://myfinance-mcp.com/mcp
Windsurf uses serverUrl instead of url. Your client handles the OAuth login automatically.
Everything, just by chatting
Few tools, forgiving inputs, sane defaults. A feature that needs a manual gets cut.
log
Plain-language logging
Say what you spent or earned; category, currency and date are extracted for you.
scan
Receipt photos
Snap a receipt; your AI parses it in the chat. Images never reach our server.
import
Any bank, by statement
Drop a CSV, PDF or a screenshot from your banking app; hundreds of rows in one call, duplicates detected, totals reconciled.
fx
150+ currencies
Log in the currency you paid in, from EUR and USD to RUB, KZT, GEL or TRY (ECB and National Bank of Ukraine rates, plus a daily snapshot for every other ISO currency since March 2024); summaries answer in your base currency, rate frozen at transaction date.
cap
Budgets and bills
Monthly caps per category or overall, with live progress and alerts only when you exceed one. Subscriptions, rent and bills are found in your records, with what they cost a month and what is due next.
trend
Summaries and trends
By category, merchant or month; month-over-month deltas computed server-side.
split
Personal vs business
Tag accounts and transactions; a founder's combined view with a clean business cut for your accountant.
own
Export and own your data
Every transaction as CSV and the rest of your profile (accounts with balance history, budgets, recurring payments, category rules) as one file, anytime; delete your account and everything with it, instantly.
Talking beats spreadsheets.
You already tried the other way. It's why you're here.
The old way
- The spreadsheet you stopped updating in March
- Budget app #4, another account, another subscription
- Typing every coffee into a form
- One currency, wrong totals
MyFinance MCP
- Say it, snap it, or import the statement
- Works inside Claude, ChatGPT or Cursor, free
- Math in SQL, never AI guessing
- 150+ currencies, honest totals
Switching from YNAB, Mint, Monarch Money, Lunch Money, Copilot Money, Actual Budget, Firefly III or PocketGuard? See how each compares, or browse all alternatives.
Built like your money depends on it
Finance-grade by construction, not by badge.
no image storage
Receipts never leave the chat
Your AI parses photos client-side; the server receives structured numbers only. There is no image storage to breach.
eu residency
EU data residency
Postgres in Frankfurt, reached over TLS. Every query is scoped to your account by the server, and the database API is closed to everyone.
blind logs
Blind logs
Amounts, merchants and notes are never written to server logs. Usage events keep tool names, timings and error codes, never amounts or merchants.
oauth 2.0 + pkce
Standard authorization
OAuth 2.0 with PKCE and rate-limited sign-in. Tokens are stored only as a one-way hash; refresh tokens rotate on every use, and a used one replayed later revokes the whole sign-in.
mit license
Open source
Read the code, audit it, or self-host with your own database.
gdpr
GDPR by construction
Transaction CSV plus a full profile export (portability) and instant full deletion (erasure) are tools, not support tickets.
Questions, answered
The short version. The privacy page has the long one.
What is MyFinance MCP?
A free AI expense tracker that runs as a Model Context Protocol server. You track expenses, income, budgets and net worth by talking to Claude, ChatGPT, Codex or Cursor: you tell your AI what you spent, it logs everything and the server does the math.
What is the Model Context Protocol (MCP)?
An open standard that lets AI assistants connect to external tools. An MCP server provides specific capabilities, here personal finance tracking, that the AI can use during a conversation. Think of it as a plugin system for AI assistants.
Does it work with ChatGPT?
Yes, in ChatGPT on the web with Developer mode turned on. Full support, logging included, is on ChatGPT Business, Enterprise and Edu. On Pro, OpenAI gives custom MCP servers read-only access; its help center does not list Developer mode for Free, Go or Plus, so if you do not see it there, use Codex (in every ChatGPT plan). On any ChatGPT plan, Free included, you can use MyFinance through Codex instead. Both setups are in the ChatGPT guide.
Which clients are supported?
Any MCP client with OAuth 2.0 + PKCE: Claude (web, desktop and mobile), Claude Code, ChatGPT (Business, Enterprise and Edu, on the web), Codex, Cursor, Windsurf and VS Code. Each has a step-by-step guide on the install page.
Do I need a Google account?
No. When you connect, sign in with Google or with a one-time code sent to any email address; the first sign-in creates your account.
Is it free?
Yes, free while in beta. No ads, no card.
Is my data private?
Your data is linked to your account and only you can access it. EU hosting, no third-party sharing, no amounts in logs, sign-in tokens stored only as a one-way hash, and you can export (transactions as CSV, the rest of your profile as one file) or delete everything at any time.
Can it read my bank account?
It does not need to: it works with any bank through statement import. Export a CSV or PDF, or take a screenshot in your banking app, and drop it in the chat. Your AI reads it, the server imports every row, skips duplicates and checks the total against the statement. ZenMoney users can link ZenMoney for a read-only sync. Direct EU and UK bank sync through licensed open banking is a closed beta, by invitation only.
What about duplicates when I import a statement?
The importer detects rows you already logged by hand and merges them instead of duplicating, and re-importing the same statement is safe: already-imported rows are skipped and reported.
Can I split personal and business?
Yes. Accounts and individual transactions carry a personal/business tag; every report can be filtered by it, and the CSV export includes it for your accountant.
Can I self-host it?
Yes. MIT-licensed, runs from a Dockerfile with your own Postgres (Supabase works). The GitHub repository includes a self-hosting guide.