Skip to main content
Glama
rutvikdumre

personal-finance-mcp

by rutvikdumre

personal-finance-mcp (local)

Read-only MCP server that lets Claude query your bank and credit card accounts (Chase, Amex, and most US banks) through Plaid's free Trial plan (up to 10 connections). Runs locally, on 127.0.0.1 only. Your keys never leave your machine.

Based on JosueM1109/personal-finance-mcp (MIT), vendored at upstream commit 33e0343 after a code review. The original README is in docs/UPSTREAM_README.md.

Changes from upstream

File

Why

run_local.py

Upstream server.py binds 0.0.0.0 with no auth, which exposes every linked account to anyone on the same Wi-Fi. It also never loads .env. This launcher binds 127.0.0.1 and loads .env. Always start the server with this file.

setup.py

One-time setup: virtualenv, dependencies, Plaid keys (hidden input), bank linking with automatic token capture into .env, and Claude Code registration.

Upstream files are unchanged.

Related MCP server: sophtron-mcp

Setup

Needs Python 3.11+ and a Plaid account on the Trial plan (dashboard.plaid.com). In Plaid, enable the Transactions, Liabilities and Investments products, then copy your Client ID and Production secret from Build → Keys.

git clone https://github.com/rutvikdumre/personal-finance-mcp.git
cd personal-finance-mcp
python3 setup.py        # Windows: py setup.py
  1. Paste the Client ID and Production secret when prompted.

  2. A browser opens at localhost:8765. Link each bank or card, then press Enter in the terminal.

  3. Start the server (leave the terminal open):

    .venv/bin/python run_local.py            # macOS / Linux
    .venv\Scripts\python.exe run_local.py    # Windows
  4. In Claude Code, run claude mcp add --scope user --transport http personal-finance http://127.0.0.1:8000/mcp. setup.py does this for you if the claude CLI is installed.

  5. Ask Claude: "list my accounts".

To link another bank or fix one that needs re-authentication, run python3 setup.py again.

Tools (all read-only)

list_accounts · get_balances · get_transactions · search_transactions · get_recurring_transactions · get_liabilities · get_investment_holdings · get_investment_transactions · get_institutions_status

No tool can move money or change anything at a bank.

Security

  • .env holds the Plaid secret and the per-bank access tokens. It's gitignored and set to chmod 600 on macOS/Linux. Never commit it.

  • Fork or clone freely; your secrets live only in your local .env, never in the repo.

  • If a token leaks, revoke it in the Plaid dashboard and rotate the secret.

  • Don't expose port 8000 to the internet without adding auth first (see docs/DEPLOYMENT.md). Remote access for claude.ai is a separate, later step.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with Plaid's Transactions API to sync, search, and analyze financial transactions from linked bank accounts using natural language queries.
    -
  • A
    license
    B
    quality
    F
    maintenance
    Query bank accounts, credit cards, and transactions via Sophtron's financial data API. Works with Claude Desktop and any MCP-compatible client.
    10
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to analyze personal finances by reading bank CSVs or connecting to Plaid for live transactions, categorizing spending, flagging overspending against benchmarks, and generating actionable reports and savings tips.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables Claude to read UK bank account data—balances, transactions, cards, standing orders, direct debits, and identity—through TrueLayer's Data API, with local caching and optional live refreshes. It is read-only by design, requiring consent and never moving money.
    12
    1
    MIT