finance-mcp-server

finance-mcp-server

A personal finance tracker MCP server that imports Rocket Money data or connects banks via SimpleFIN to a local SQLite database, enabling Claude to analyze spending, subscriptions, cash flow, and debt payoff with complete privacy.

Category
Visit Server

README

finance-mcp-server

Your personal finance tracker as an MCP server. Import a Rocket Money CSV into a local SQLite database and ask Claude about it — spending, subscriptions, cash flow, merchant history, debt payoff. Everything stays on your machine; the only thing that leaves is the answer to a question you asked.

Finance HUD dashboard (synthetic demo data)

The bundled HUD (npm run hud) rendering a synthetic demo dataset — net worth, per-account balances, category spending, subscription price-hike flags, and a 30-day cash-flow projection with the low point marked.

The analytics engine in src/core/ is pure, dependency-free TypeScript, kept separate from the MCP and storage layers so a future app can share the same core.

Setup

npm install
npm run build

Import your data

Export your transactions from Rocket Money (Settings → Export Data → CSV), then:

npm run import -- "C:/path/to/rocket-money-export.csv"

Re-running with an updated export is safe — rows dedupe by a stable hash, so only genuinely new transactions are added. The database lives at data/finance.db (override with the FINANCE_DB_PATH env var).

Real-time balances (SimpleFIN)

Live account balances and ongoing transaction sync via SimpleFIN Bridge (read-only bank aggregation, ~$15/yr). Get a one-time setup token from bridge.simplefin.org (My Account), then:

npm run link -- "<paste-setup-token>"

This claims the token into a durable access URL stored locally in data/finance.db (it never leaves your machine) and runs an initial 365-day sync. After that, balances are live and you can finance_sync (or just ask Claude to sync) to pull new transactions — no more CSV exports needed for ongoing data. The CSV import stays useful for the historical backfill before your bank's sync window.

You can also link from within Claude via the finance_link_bank tool, but the CLI keeps the token out of the chat transcript.

Local HUD (dashboard)

A glanceable dashboard that reads finance.db fresh on every load — net worth + account balances, this month's spending by category, subscriptions with price-hike flags, and a 30-day cash-flow sparkline with the low point marked. Fully offline (no CDN, no external calls); localhost only.

npm run hud       # → http://localhost:4321  (Ctrl+C to stop)

Leave it running and bookmark it; it self-refreshes every 2 minutes and re-reads the DB, so once your bank is linked the balances stay current. Override the port with HUD_PORT.

Use it with Claude

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "finance": {
      "command": "node",
      "args": ["/absolute/path/to/finance-mcp-server/dist/index.js"],
      "env": { "FINANCE_DB_PATH": "/absolute/path/to/finance-mcp-server/data/finance.db" }
    }
  }
}

Claude Code — claude mcp add finance -- node /absolute/path/to/finance-mcp-server/dist/index.js

Then ask things like:

  • "What did I spend on gas last quarter?"
  • "List my subscriptions and flag any price hikes."
  • "How much have I paid Amazon over the last year?"
  • "Forecast my cash flow for the next 30 days starting from $1,200."
  • "Given these balances and APRs, avalanche vs snowball — which saves more?"

Tools

Tool What it does
finance_import_csv Import a Rocket Money CSV (idempotent)
finance_data_overview Count, date span, per-category totals
finance_search_transactions Filter by date/category/merchant/amount/flow
finance_spending_by_category Inflow/outflow by category over a range
finance_list_subscriptions Recurring charges + price-hike flags
finance_cash_flow_forecast N-day projection with low-point warning
finance_merchant_history Every charge from a merchant + summary
finance_debt_payoff_plan Avalanche/snowball simulation
finance_link_bank Connect a bank via a SimpleFIN setup token
finance_balances Live per-account balances + net worth
finance_sync Pull new transactions + refresh balances
finance_disconnect_bank Forget the SimpleFIN connection
finance_add_category_rule Map a merchant substring → category (recategorizes matches)
finance_list_category_rules List rules + re-apply them across the store
finance_remove_category_rule Delete a rule

Fixing miscategorized transactions

CSV history carries Rocket Money's own categories, but transactions synced live from SimpleFIN only have raw bank descriptors, so many land in other. Fix them with rules — just tell Claude, e.g. "categorize anything from Menards as shopping." Each rule matches a case-insensitive substring against the merchant name / descriptor, recategorizes all matches immediately (past and future), and sticks for every later import/sync.

Privacy

data/ and all *.csv files are gitignored. Real transaction history is never committed and never sent anywhere except when you ask Claude a question that requires reading it. The screenshot above is generated from synthetic data.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured