Personal Finance MCP

by JosueM1109

471 downloads Not rated yet

About

Self-hosted, read-only MCP server for personal finance. Connect your banks, credit cards, loans, and brokerage accounts via Plaid and query them from Claude Code in plain English — no third-party aggregator involved.

Explore

- Nine read-only tools: list_accounts, get_balances, get_transactions, search_transactions, get_recurring_transactions, get_liabilities, get_investment_holdings, get_investment_transactions, and get_institutions_status
- Self-hosted and single-tenant – one deployment per person
- No third‑party aggregator; connects directly via Plaid
- All tools are read‑only, never mutating financial data
- Credentials stored in environment variables, never on disk

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Personal Finance MCP
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Requires Python 3.11+, a Plaid account (free Trial plan, 10 Items), and an MCP client.

1. Sign up at plaid.com → Trial plan → enable Transactions, Liabilities, Investments.
2. Clone the repo, install requirements, copy .env.example to .env, fill in Plaid credentials.
3. Run uvicorn link_helper:app --port 8765 once per bank to generate access tokens.
4. Run python server.py — serves on http://localhost:8000/mcp.
5. Add to Claude Code:
``
claude mcp add --transport http personal-finance http://localhost:8000/mcp
``

Full setup, deployment (Docker, Fly.io, Raspberry Pi, Prefect Horizon), and security notes in the GitHub README.

list_accounts

Every account across every linked bank, with balances

get_balances

Live current + available balances

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

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)

| Tool | What it does |
| --- | --- |
| list_accounts | Every account across every linked bank, with balances |
| get_balances | Live current + available balances |
| 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 |
| 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) |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "personal finance mcp": {
            "personal-finance": {
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "--rm",
                    "-p",
                    "8000:8000",
                    "-e",
                    "PLAID_CLIENT_ID",
                    "-e",
                    "PLAID_SECRET",
                    "-e",
                    "PLAID_ENV",
                    "personal-finance-mcp"
                ],
                "env": {
                    "PLAID_CLIENT_ID": "<YOUR_PLAID_CLIENT_ID>",
                    "PLAID_SECRET": "<YOUR_PLAID_SECRET>",
                    "PLAID_ENV": "production"
                }
            }
        }
    }
}

McpServers

{
    "personal-finance": {
        "command": "docker",
        "args": [
            "run",
            "-i",
            "--rm",
            "-p",
            "8000:8000",
            "-e",
            "PLAID_CLIENT_ID",
            "-e",
            "PLAID_SECRET",
            "-e",
            "PLAID_ENV",
            "personal-finance-mcp"
        ],
        "env": {
            "PLAID_CLIENT_ID": "<YOUR_PLAID_CLIENT_ID>",
            "PLAID_SECRET": "<YOUR_PLAID_SECRET>",
            "PLAID_ENV": "production"
        }
    }
}
A self-hosted, read-only MCP server that connects your banks, credit cards, loans, and brokerage accounts (via Plaid) to Claude Code. Ask questions about your own finances in plain English — no Monarch, no Mint, no third-party aggregator. > Unofficial. Not affiliated with Plaid Inc. Self-hosted client using credentials you supply.

What you can ask

- "What's my total balance across all accounts?" - "Show me transactions over $100 in the last 30 days." - "Which subscriptions am I still paying for?" - "How much did I spend on groceries last month?" - "Any bank that needs re-authentication?"

Tools (9, all read-only)

| Tool | What it does | | --- | --- | | list_accounts | Every account across every linked bank, with balances | | get_balances | Live current + available balances | | 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 | | 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) |

Quickstart

Requires Python 3.11+, a Plaid account (free Trial plan, 10 Items), and an MCP client. 1. Sign up at plaid.com → Trial plan → enable Transactions, Liabilities, Investments. 2. Clone the repo, install requirements, copy .env.example to .env, fill in Plaid credentials. 3. Run uvicorn link_helper:app --port 8765 once per bank to generate access tokens. 4. Run python server.py — serves on http://localhost:8000/mcp. 5. Add to Claude Code: `` claude mcp add --transport http personal-finance http://localhost:8000/mcp ` Full setup, deployment (Docker, Fly.io, Raspberry Pi, Prefect Horizon), and security notes in the GitHub README.

Security

- Single-tenant. One deployment per person. Don't share. - Read-only. No tool mutates state at any institution. - Tokens live in env vars, never on disk.
.env` is gitignored. - You own Plaid compliance — you're the Plaid customer under your own account.

License

MIT
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.