Self-hosted, read-only MCP server that connects your banks and investments via Plaid.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-josuem1109-personal-finance-mcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Self-hosted, read-only MCP server that connects your banks and investments via Plaid.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in finance
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
An MCP server for Massive.com Financial Market Data
Allow parsing of object rest/spread
Stock and crypto market data — 49 tools for quotes, technicals, options, SEC filings, and more.
MCP Security Weekly
Get CVE alerts and security updates for io.github.JosueM1109/personal-finance-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Unofficial. This project is not affiliated with, endorsed by, or sponsored by Plaid Inc. "Plaid" is a trademark of Plaid Inc. This is a self-hosted client that talks to Plaid's API using credentials you supply.
A self-hosted, read-only MCP server that connects your banks, credit cards, loans, and brokerage accounts (via Plaid) to an MCP client like Claude Code. Ask questions about your own finances in plain English — no third-party aggregator (Monarch, Mint, etc.) involved.
Example session (illustrative):
you : What did I spend on groceries last month?
claude : [calls get_transactions]
$487.23 across 14 transactions. Top merchants:
Whole Foods ($198), Trader Joe's ($156), Safeway ($89).
you : Any subscriptions I'm still paying for?
claude : [calls get_recurring_transactions]
7 active recurring outflows totaling $142/mo:
Netflix ($15.99), Spotify ($11.99), NYT ($4), ...
All 9 tools are read-only. Each returns {<data>: [...], "warnings": [...]} so one broken bank doesn't break the whole query.
| Tool | What it does |
|---|---|
list_accounts | Every account across every linked bank, with balances |
get_balances | Live current + available balances (optionally filtered by account) |
get_transactions | Transactions in a date range (up to 2 years back) |
search_transactions | Keyword search across merchant / name / counterparty |
get_recurring_transactions | Detected recurring inflow + outflow streams |
get_liabilities | Credit cards, student loans, mortgages with APRs and payment details |
get_investment_holdings | Current holdings with symbol + security metadata |
get_investment_transactions | Buy / sell / dividend history in a date range |
get_institutions_status | Health of each linked bank (surfaces re-auth needs) |
Requires Python 3.11+, a Plaid account (free Trial plan), and an MCP client.
client_id and production secret.git clone https://github.com/JosueM1109/personal-finance-mcp.git
cd personal-finance-mcp
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then fill in PLAID_CLIENT_ID and PLAID_SECRET
pytest -v # sanity check
Run once per bank you want to connect:
uvicorn link_helper:app --port 8765
Open http://localhost:8765, click Link a bank, complete Plaid Link. The terminal prints a line like PLAID_TOKEN_CHASE=access-prod-xxx... — paste it into .env and repeat for each bank.
python server.py # serves on http://localhost:8000/mcp
claude mcp add --transport http personal-finance http://localhost:800
... [View full README on GitHub](https://github.com/JosueM1109/personal-finance-mcp#readme)