Personal finance by conversation: expenses, receipts, statement import, budgets, net worth.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A remote MCP server for personal finance - log expenses by talking, snap receipt photos, import whole bank statements, and get budgets, trends and net worth computed for you, in any currency.
Website: myfinance-mcp.com Β· Free while in beta Β· Built by Rteam
Already hosted and ready to use - just connect it to your MCP client:
On Claude.ai: Customize β Connectors β + β Add custom connector β paste the URL β Connect. Leave the OAuth Client ID and Client Secret fields empty - filling them breaks sign-in.
On ChatGPT: Settings β Apps β Create app β paste the URL β choose OAuth β Create.
On first connect you sign in with Google or register with an email and password. Your data persists across reconnections.
numeric, all stats as SQL aggregates| Tool | Description |
|---|---|
log_expense | Record one purchase, bill or receipt (negative amount = refund) |
log_income | Record income: salary, invoice, refund, interest |
log_transfer | Move money between accounts, cross-currency supported; never counts as spending |
log_balance | Anchor an account's balance at a date; later flows compute from the snapshot |
import_transactions | Bulk statement import (up to 500 rows/call): dedup by bank reference or derived key, twin merge, reconciliation check |
create_account | Create a bank / card / cash / investment account with currency and personal/business entity |
update_account | Rename an account or change its type, entity or main currency |
delete_account | Delete one money account (with its transactions after explicit confirmation) |
merge_accounts | Fold one account into another: move rows, de-duplicate both sides, rewrite transfers |
get_accounts | All accounts with balances and net worth, converted to base currency |
get_summary | Period totals by category, merchant or month; expense or income breakdown, category drill-down and exclusions |
get_transactions | List and filter raw transactions |
get_trends | Month-over-month spending trends and deltas |
set_budget | Monthly cap per category or overall |
get_budget_progress | Live budget progress with days left; renders as a dashboard |
update_transaction | Fix any field of an existing transaction, including its type (e.g. turn a cash withdrawal into a transfer); category fixes are remembered per merchant for future syncs |
delete_transaction | Delete one transaction by id |
delete_transactions | Bulk delete by ids |
get_settings | Base currency and timezone |
update_settings | Change base currency or timezone |
export_transactions | Full CSV export (includes the entity column for accountant handoff) |
connect_bank | Link a real bank via open banking (Enable Banking, EU/UK): list banks, start consent, status, per-account sync toggle, disconnect |
sync_bank | Pull booked transactions and balances from the connected bank; incremental, transfer pairing, dedup-safe. Healthy connections also auto-sync server-side roughly daily |
connect_zenmoney | Link a ZenMoney account (international and .ru backends auto-detected) for read-only sync |
sync_zenmoney | Pull ZenMoney accounts and transactions; incremental, dedup-safe, keeps your manual edits |
delete_all_data | Permanently delete the user profile and ALL data (GDPR erasure) |
ping | Health and auth check |
Four tools return an interactive dashboard (ui://myfinancemcp/dashboard) rendered directly in the chat on clients that support MCP Apps: budget rings, monthly trends, category summaries and the accounts/net-worth panel. Light and dark theme aware.
See SECURITY.md for the disclosure policy.
MIT-licensed; runs anywhere Bun and Postgres run.
Any PostgreSQL 15+ works. Supabase free tier is a good fit: create a project and copy the session pooler connection string (IPv4).
Apply the schema:
| Variable | Description |
|---|---|
PORT | Server port (default 8788) |
BASE_URL | Public URL of the server (OAuth issuer) |
DATABASE_URL | Postgres connection string |
MYFINANCE_MCP_EMAIL | Bootstrap user email |
MYFINANCE_MCP_PASSWORD_HASH | Bootstrap user password hash (see below) |
GOOGLE_CLIENT_ID | (optional) Google OAuth client ID for "Continue with Google" |
GOOGLE_CLIENT_SECRET | (optional) Google OAuth client secret |
RESEND_API_KEY | (optional) Resend key for new-signup email notifications |
NOTIFY_EMAIL | (optional) Where signup notifications go |
FROM_EMAIL | (optional) Verified sender for notifications |
AUTO_SYNC_INTERVAL_MS | (optional) Bank auto-sync tick, default hourly (syncs connections >20h stale); 0 disables |
Generate the password hash:
Put nginx (or any TLS-terminating proxy) in front and point BASE_URL at your domain. The static landing in site/ is optional - serve it from the same origin if you want one.
The e2e suite (154 checks) covers the full OAuth flow (discovery, dynamic registration, PKCE, refresh rotation), every tool, statement-import dedup semantics, ZenMoney sync against a stubbed Diff API, and GDPR deletion.
| Endpoint | Description |
|---|---|
POST /mcp | MCP endpoint (Bearer auth) |
GET /health | Health check |
GET /.well-known/oauth-authorization-server | OAuth metadata discovery |
GET /.well-known/oauth-protected-resource/mcp | Protected resource metadata |
POST /register | Dynamic client registration |
GET /authorize | OAuth authorization (sign-in page) |
POST /token | Token exchange |
GET /auth/google | Google sign-in start (when configured) |
GET /api/stats | Public aggregate counters (counts only, never amounts) |
MIT - Rteam FZE LLC
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/myfinance-mcp)<a href="https://allmcps.com/mcp/myfinance-mcp"><img src="https://allmcps.com/api/badge/myfinance-mcp?style=directory" alt="Myfinance Mcp on AllMCPs" /></a>