personal-finance-mcp — Claude Code MCP server for your money
Brings your banks, cards, loans and brokerage accounts in through Plaid. Ask about your own finances in plain English, with no third-party aggregator in the middle.
Open on GitHubWhat personal-finance-mcp does
You host the server yourself, and every tool is read-only. Nine of them cover accounts, balances, transactions, recurring charges, liabilities and investment holdings. Responses carry a warnings list, so a single failing bank does not take the whole query down with it.
You need a Plaid account on the free Trial plan, plus Transactions, Liabilities and Investments switched on in the dashboard. Skip that step and tools come back empty, with PRODUCTS_NOT_SUPPORTED in warnings. Banks are linked one at a time: start uvicorn link_helper:app --port 8765, finish Plaid Link in the browser, then paste the printed token into .env. Running python server.py serves the endpoint at http://localhost:8000/mcp.
Putting this on a public host means gating the endpoint first. An open /mcp with your tokens inside hands over every linked account. OAuth 2.1, Cloudflare Access or a private network all work. The project is unaffiliated with Plaid Inc. and built for a single person per deployment.
What it helps with
- total up balances across every linked account
- pull transactions for a date range or by keyword
- spot subscriptions that are still charging
- read APRs and payment terms on cards and loans
- check which banks need re-authentication
Example prompts for the agent
- What's my total balance across all accounts?
- Which subscriptions am I still paying for?
How to install personal-finance-mcp
Install
The MCP registry has no launch command for it: see the repository README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about personal-finance-mcp
How do I install personal-finance-mcp in Claude Code?
Clone the repo and set up the environment: git clone https://github.com/JosueM1109/personal-finance-mcp.git, then cd personal-finance-mcp, python3.11 -m venv .venv && source .venv/bin/activate, pip install -r requirements.txt, cp .env.example .env and fill in PLAID_CLIENT_ID and PLAID_SECRET. Link your banks with uvicorn link_helper:app --port 8765, start python server.py, then register the server with claude mcp add --transport http personal-finance http://localhost:8000/mcp.
What does personal-finance-mcp do?
It exposes nine read-only tools: accounts, balances, transactions, keyword search, recurring streams, liabilities, investment holdings and investment transactions, plus institution status. All of it is pulled from Plaid using credentials you supply.
Why do tools return empty results when there is real data?
The Plaid products likely were not enabled when the bank was linked. Re-link it with Transactions, Liabilities and Investments active — the tool flags this case as PRODUCTS_NOT_SUPPORTED in warnings.