Myfinance MCP
Personal finance by conversation: expenses, receipts, statement import, budgets, net worth.
Connector by alex-odoo · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/alex-odoo-myfinance-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://myfinance-mcp.com/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 11 read · 10 write · 13 delete
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 34
Read from the source code; the running server may list different tools.
Read 11 · Look things up without changing anything.
export_dataexport_profileexport_transactionsget_accountsget_budget_progressget_recurringget_settingsget_summaryget_transactionsget_trendsping
Write 10 · Create, change, send or run things.
connect_bankconnect_zenmoneycreate_accountlog_balancelog_expenselog_incomelog_transfersync_banksync_zenmoneyupdate_account
Delete 13 · Delete, drop, revoke or wipe things.
bankdelete_accountdelete_all_datadelete_transactiondelete_transactionsimport_transactionsmanage_accountmerge_accountsset_budgetset_recurringupdate_settingsupdate_transaction
Show 1 more tools
zenmoney
Network hosts it talks to 18
accounts.google.com· found in codeapi.enablebanking.com· found in codeapi.frankfurter.dev· found in codeapi.resend.com· found in codeapi.supabase.com· found in codeapi.telegram.org· found in codeapi.zenmoney.app· found in codeapi.zenmoney.ru· found in codebank.gov.ua· found in codecdn.jsdelivr.net· found in codechatgpt.com· found in codeclaude.ai· found in codefinance.rteam.agency· found in codegithub.com· found in codeglama.ai· found in codegoogletagmanager.com· found in codemyfinance-mcp.com· found in remote endpoint, install command, codeoauth2.googleapis.com· found in code
Files it touches
/opt/myfinance-mcp- Your home directory (~)
- Any path the agent passes to its tools
Tools (34)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
bankBank synccan change or delete dataRead-only sync with a real bank via open banking (Enable Banking, EU/UK/EEA). If the user's country or bank is not listed, stop and import a statement instead (import_transactions). Flow: action=list_banks with the country (and optional search) for the exact bank name; action=start with bank_name + country returns an authorize_url the user opens and approves at the bank; when they are done, action=sync (first sync takes months_back of history, default 3; later ones are incremental; the server also syncs healthy connections daily). action=status: health, consent expiry, synced accounts. action=…
connect_bankConnect a bankLink a real bank account via open banking (Enable Banking, EU/UK/EEA coverage) for read-only transaction sync. If the user's country or bank is not listed, stop here and import a statement instead (import_transactions). Flow: action=list_banks with the user's country (and optional search) to find the exact bank name -> action=start with bank_name + country -> give the user the returned authorize_url to open and approve at their bank -> after they confirm they are done, run sync_bank. action=status shows connection health, consent expiry and the synced accounts list. action=set_account_sync wit…
connect_zenmoneyConnect ZenMoneyLink a ZenMoney account (both zenmoney.app international and zenmoney.ru work; the right backend is auto-detected) for read-only transaction sync. action=paste_token stores the user's personal ZenMoney API token: get it free at zerro.app - log in choosing YOUR ZenMoney version on the login screen, then open zerro.app/token and copy it. action=status shows connection health and the synced accounts list. action=set_account_sync with account + enabled turns syncing of ONE account on or off, for example when the same bank is also connected via connect_bank. action=disconnect removes the link and s…
create_accountCreate accountAdd a money account: bank, card, cash, or investment (brokerage). Transfers between own accounts are then tracked without counting as spending.
delete_accountDelete one accountcan change or delete dataDelete ONE money account (see get_accounts) together with its balance snapshots. If it still holds transactions, pass delete_transactions=true to confirm deleting them too. To erase the whole profile use delete_all_data instead.
delete_all_dataDelete all datacan change or delete dataErase the user profile and ALL financial data permanently (GDPR). For removing a single money account use manage_account action=delete instead. Requires confirm='DELETE'.
delete_transactionDelete transactioncan change or delete dataRemove ONE wrongly logged record. For 3+ records use delete_transactions (bulk) with the ids array.
delete_transactionsDelete transactionscan change or delete dataDelete wrongly logged transactions by id (from get_transactions): one, or many in ONE call with every id in ids. Never one call per row: one-by-one deletion hits the per-turn tool limit.
export_dataExport dataread-onlyDescription is built at runtime.
export_profileExport profileread-onlyEverything except the transactions, as one JSON (GDPR portability, or a backup before moving): settings, accounts with their balance snapshots, budgets, saved recurring payments, the per-merchant category rules learned from the user's fixes, and bank/ZenMoney links (status and synced accounts; never tokens). Transactions come from export_transactions.
export_transactionsExport CSVread-onlyDescription is built at runtime.
get_accountsAccounts & net worthread-onlyAll accounts with computed balances (latest snapshot + tracked flows) and total net worth in the base currency. Optionally filtered to personal or business scope.
get_budget_progressBudget progressread-onlyCurrent month (user's timezone): spent vs cap for every budget, plus days left in the month. Budgets track PERSONAL spending only; business-scope transactions never count against them. log_expense and import_transactions return budget_alerts when they push a budget over its cap.
get_recurringRecurring paymentsread-onlySubscriptions, rent, bills and other payments that repeat: the ones the user saved (set_recurring) and the ones found in their records (charges at one merchant that repeat weekly, monthly, quarterly or yearly at a steady amount; evidence=seen_once marks a single recent charge of a subscription service, cadence unknown). Each with amount, cadence, next expected date and monthly cost in the base currency; plus the monthly and yearly total (saved and repeating ones) and what is coming up in the next 30 days. Call it for 'what subscriptions do I pay', 'my fixed costs', 'what bills are coming'. Fou…
get_settingsGet settingsread-onlySigned-in account email (which account is connected), base currency, timezone, the email summary choice and the server version.
Show 19 more tools
get_summarySpending summaryread-onlyTotals for a period, computed server-side in the user's base currency. Breaks down expenses (default) or income: 'how much did I spend on X in July', 'what does my June income consist of'. Supports category drill-down (category=subscriptions + group_by=merchant), exclusions (exclude_categories), week-by-week views (group_by=week), comparison with the period before (compare=previous: 'how does this week compare to last week') and totals in another currency (currency=USD).
get_transactionsList transactionsread-onlyFind records: 'what was that 40 eur charge', recent spending, by category or merchant. Newest first. total = all matches; when has_more is true, call again with offset=next_offset to page (never treat count as the total).
get_trendsMonthly trendsread-onlyMonth-over-month expense/income dynamics, optionally for one category or scope.
import_transactionsBulk importcan change or delete dataImport 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 a statement-scoped row id such as '2026-09:r017' - bare row numbers repeat in every statement) - rows without external_id are keyed by amount+date+occurrence WITHIN one call, so identical rows arriving in different calls are indistinguishable from re-impor…
log_balanceLog balance snapshotAnchor an account's REAL balance at end of a date (from the bank app). Balances are then snapshot + later flows.
log_expenseLog 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_incomeLog incomeRecord incoming money: salary, client payment, gift.
log_transferLog transferMove money between OWN accounts: card to brokerage, cash withdrawal, currency exchange. Never counted as spending or income.
manage_accountManage accountscan change or delete dataMoney accounts (bank, card, cash, investment), one action per call. create: name, type, currency (entity optional). update: account plus new_name, type, currency or entity (history stays; an entity change affects future rows). set_balance: account, amount, optional currency and date: the REAL balance from the bank app at the end of that date; balances are this snapshot plus later flows. merge: source into target, moving every row, dropping duplicates (same type, currency, amount, date within dedup_window_days; the row with a bank reference wins) and deleting source; typical for a statement-imp…
merge_accountsMerge accountscan change or delete dataMerge one account into another: moves all transactions to the target, de-duplicates rows present on both sides (same type, currency, amount and date within dedup_window_days; the row with a bank reference wins and absorbs the other's category), rewrites transfer references, then deletes the source account. Typical use: a hand-made statement-import account and a live bank sync account tracking the same real bank. Run with dry_run=true first and show the counts to the user.
pingPingread-onlyHealth check for the MyFinance MCP connection. Returns the signed-in account email - call this when the user asks which account is connected.
set_budgetSet budgetcan change or delete dataMonthly spending cap, overall or per category, in the user's base currency.
set_recurringSave a recurring paymentcan change or delete dataSave, change or remove a payment the user expects again (a subscription, rent, a bill). Saved ones show in get_recurring and in the email summary's 'Coming up'. With auto_log=true the expense is written on each date automatically: only for a fixed amount charged in this currency, and only for users who log by hand (refused while a bank or ZenMoney sync is connected: the sync brings the charge). A statement import merges an auto-logged row with the bank's row of the same amount within two days. Saving again under the same name changes it; remove=true deletes it (expenses already logged stay).
sync_bankSync bankPull booked transactions and balances from the connected bank (via connect_bank; read-only, incremental, safe to re-run). First sync imports months_back of history (default 3; banks may return less). Equal-amount same-day debit/credit pairs across the user's own synced accounts are merged into transfers. Categories come from the user's remembered per-merchant fixes first, then MCC; the rest land in 'other'. The server also auto-syncs healthy connections roughly daily; run this only for immediate freshness or right after connecting. If the same real bank account is also connected via ZenMoney i…
sync_zenmoneySync ZenMoneyPull transactions, accounts and balances from the linked ZenMoney account (read-only, incremental after the first run, safe to re-run). First sync imports full history unless months_back is set. dry_run previews transaction changes (account mapping is still saved). Report includes unmapped ZenMoney tags: those rows land in category 'other' for the user to review. If the same real bank account is also connected via connect_bank its transactions WILL duplicate: relay any overlap_warnings from the response to the user and offer to disable one side (action=set_account_sync).
update_accountUpdate accountRename an account or change its type, entity or main currency. Transactions keep their history; an entity change only affects future transactions.
update_settingsUpdate settingscan change or delete dataChange base currency (recomputes all historical stats at each transaction's original date rate), timezone, or the email summary (email_digest).
update_transactionUpdate transactioncan change or delete dataFix a logged record: wrong category, amount, merchant, date, account, personal/business scope, or type. type=transfer + counter_account converts a mislogged row into a transfer between own accounts (e.g. a cash withdrawal into a transfer to Cash). counter_transaction_id instead GLUES TWO EXISTING rows (one expense + one income on different own accounts) into ONE transfer - use it when a currency exchange, own-account top-up, or cash withdrawal produced two separate rows. Category fixes on rows with a merchant are remembered: future bank syncs of that merchant reuse your category.
zenmoneyZenMoney synccan change or delete dataRead-only sync with a ZenMoney account (zenmoney.app international and zenmoney.ru both work; the backend is detected). action=paste_token stores the user's personal ZenMoney API token: free at zerro.app (log in choosing YOUR ZenMoney version, then open zerro.app/token and copy it). action=sync pulls transactions, accounts and balances (incremental, safe to re-run; the first sync takes the full history unless months_back is set; dry_run previews; unmapped ZenMoney tags land in 'other' for the user to review). action=status: connection health and synced accounts. action=set_account_sync with ac…
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 18, 2026 (11 days ago)
- Last release
- Oct 14, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.alex-odoo/myfinance-mcp- Version
- 0.18.0
- Auth
- Auth not stated
- License
- MIT
- Repository
- github.com/alex-odoo/myfinance-mcp
- Website
- myfinance-mcp.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
Myfinance MCP. Agent Mart. https://agentmart.dev/connectors/alex-odoo-myfinance-mcp (last updated 2026-10-25)