Local-first personal finance MCP. Aggregates bank, brokerage, credit, and loan accounts via Plaid.β¦
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)
Local-first personal finance MCP. Aggregates bank, brokerage, credit, and loan accounts via Plaid. Writes balances, holdings, and transactions to your local Obsidian-style markdown vault. Access tokens stay in macOS Keychain. Never sends data anywhere except plaid.com.
Accounts.md.Investments.md.Cash Flow.md.Most personal-finance SaaS (Mint, Copilot, YNAB, Monarch) puts your bank data on their servers and charges you for the privilege. This MCP:
chase, citi, etc.).Open Claude Code, paste:
Requires macOS (for Keychain) and Python 3.11+. After install, set your Plaid credentials in .env at the plugin root (see SETUP.md for the Plaid signup walkthrough).
If it shows blockers, follow them. Once green:
Open the returned link_token in Plaid's Link demo page (paste the token in the field labeled "Link Token", then click "Open Plaid Link"). Complete bank auth in the browser. Copy the public_token from the success page.
Repeat for each bank.
Your vault's Accounts.md, Investments.md, and Cash Flow.md now have auto-sync blocks with current data. Re-run any time.
| Tool | What it does |
|---|---|
healthcheck | Verify Plaid creds, vault path, keychain access. |
link_start(alias) | Start linking a new bank. Returns link_token. |
link_complete(alias, public_token) | Exchange public_token, store in Keychain. |
list_linked | List linked institutions + last-sync timestamps. |
unlink(alias) | Remove an institution. Revokes Plaid item + deletes Keychain entry. |
sync_balances([alias]) | Pull current balances β Accounts.md. |
sync_holdings([alias]) | Pull investment positions β Investments.md. |
sync_transactions([alias]) | Cursor-based transaction sync β SQLite. |
sync_liabilities([alias]) | Pull credit + loan details. |
sync_all([alias]) | All of the above in sequence. |
rollup_month(month) | Compute monthly income/expense rollup β Cash Flow.md. |
audit_tail(n) | Last N audit-log entries. |
access_token lives in macOS Keychain (security CLI), service name finance-mcp, account name = your institution alias.client_id + secret live in .env (chmod 600). Never committed (in .gitignore).~/.claude/finance-mcp/data.db (not in your vault).FINANCE_MCP_FINANCE_FOLDER. Set to empty string to disable vault writes entirely.user_good / pass_good). Free forever. Use this first.Set via PLAID_ENV in .env. Switch by re-linking all institutions (tokens are environment-bound).
jkoelker/schwab-mcp β Direct Charles Schwab Trader API for options, trade placement, and deep position data beyond what Plaid exposes.tomasgesino/schwab-mcp β Schwab wheel-strategy management with dry-run-default trading.finance-mcp covers Schwab basic balances and holdings via Plaid; the above are the route for Schwab power-user features.
This plugin sends a single anonymous install signal to myceliumai.co the first time it loads in a Claude Code session on a given machine.
What is sent:
slack-mcp)0.1.0)What is NOT sent:
Why: Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.
Opt out: Set the environment variable MYCELIUM_NO_PING=1 before launching Claude Code. The hook will skip the network call entirely. Already-pinged installs leave a sentinel at ~/.mycelium/onboarded-<plugin> β delete it if you want to reset state.
MIT. See LICENSE.
For users who can't use the plugin marketplace yet, the manual flow:
Then register with Claude Code by adding to your vault's .mcp.json (project scope) or ~/.claude.json (user scope, via claude mcp add):
Restart Claude Code. Tools appear under mcp__finance__*.
Built by Adelaida Diaz-Roa. Full install or team version at diazroa.com.
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/local-first-personal-finance-mcp)<a href="https://allmcps.com/mcp/local-first-personal-finance-mcp"><img src="https://allmcps.com/api/badge/local-first-personal-finance-mcp?style=directory" alt="Local First personal finance MCP on AllMCPs" /></a>