MyFinance-MCP

Track your money by talking to your AI.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Ping: Health check for the MyFinance MCP connection.
  • Log Expense: Record ONE purchase, bill, or receipt. Negative amount = refund to the same category. NEVER use this for bank-statement rows or any batch of 3+ records: use import_transactions with the w
  • Log Income: Record incoming money: salary, client payment, gift.

What data it sees

Do you need an account

No: the server works without sign-in

Track your money by talking to your AI. Log expenses in plain language ("spent 24.50 eur on groceries at Lidl"), snap receipt photos, or drop a whole bank statement - hundreds of rows import in one call with deduplication and total reconciliation.

  • Budgets, trends, summaries and multi-currency net worth, all computed in SQL server-side
  • Interactive dashboards (MCP Apps) render right in the chat
  • Personal vs business tagging with CSV export for your accountant
  • OAuth 2.1 sign-in (Google or email), EU hosting, no amounts in server logs
  • Free while in beta. Open source (MIT), self-hostable

Just connect and talk: https://myfinance-mcp.com

Server tool list (20)

Raw names from tools/list. Only developers need these.

pingHealth check for the MyFinance MCP connection.
log_expenseRecord ONE purchase, bill, or receipt. Negative amount = refund to the same category. NEVER use this for bank-statement rows or any batch of 3+ records: use import_transactions with the whole array instead (one-by-one logging hits the per-turn tool limit).
log_incomeRecord incoming money: salary, client payment, gift.
create_accountAdd a money account: bank, card, cash, or investment (brokerage). Transfers between own accounts are then tracked without counting as spending.
get_accountsAll accounts with computed balances (latest snapshot + tracked flows) and total net worth in the base currency. Optionally filtered to personal or business scope.
log_transferMove money between OWN accounts: card to brokerage, cash withdrawal, currency exchange. Never counted as spending or income.
log_balanceAnchor an account's REAL balance at end of a date (from the bank app). Balances are then snapshot + later flows.
import_transactionsImport bank-statement / statement-screenshot rows in bulk. ALWAYS send the ENTIRE statement as ONE call with the full transactions array (up to 500 rows) - never split into chunks, never log rows one-by-one via log_expense. If one statement truly cannot fit in a single call, EVERY row of EVERY chunk must carry external_id (bank reference; or the statement row number, e.g. 'r017') - rows without external_id are keyed by amount+date+occurrence WITHIN one call, so identical rows arriving in different calls are indistinguishable from re-imports. Safe to re-run: keyed rows are skipped, a hand-logged twin is merged into the bank row instead of duplicating, and repeated purchases (same merchant and amount on different days, or twice the same day) import normally. Unknown categories become 'other'. Pass statement_total to get a reconciliation check. Sign convention: negative amount = money out, positive = money in.
get_summaryTotals for a period, computed server-side in the user's base currency. Answers 'how much did I spend on X in July'.
get_transactionsFind records: 'what was that 40 eur charge', recent spending, by category or merchant.
update_transactionFix a logged record: wrong category, amount, merchant, date, or personal/business scope.
delete_transactionRemove ONE wrongly logged record. For 3+ records use delete_transactions (bulk) with the ids array.
delete_transactionsDelete MANY transactions in ONE call by ids (from get_transactions). Always prefer this over repeated delete_transaction calls - one-by-one deletion hits the per-turn tool limit.
get_trendsMonth-over-month expense/income dynamics, optionally for one category or scope.
set_budgetMonthly spending cap, overall or per category, in the user's base currency.
get_budget_progressCurrent month: spent vs cap for every budget. Budgets track PERSONAL spending only; business-scope transactions never count against them.
get_settingsBase currency and timezone.
update_settingsChange base currency (recomputes all historical stats at each transaction's original date rate) or timezone.
export_transactionsAll transactions as CSV (GDPR portability). Optionally one scope only, e.g. business rows for the accountant.
delete_accountErase the account and ALL financial data permanently (GDPR). Requires confirm='DELETE'.