Connect your bank. Add BankBridge to your agent. Ask it anything about your money — Claude Code, Gemini CLI, and Codex all work.
$5/mo per connected bank · Cancel anytime.
Questions you'd normally ask an accountant — answered instantly by your agent, against your actual numbers.
“How much did I spend on restaurants last month?”
You spent $812.34 on restaurants in March across 44 transactions. That's up $180 from February. Biggest single hit: $112.50 at Kona Grill on the 22nd.
“List every subscription I'm paying for.”
I found 9 recurring charges adding up to $187/mo: Netflix ($15.49), Spotify ($10.99), Notion ($10), Anthropic ($20), Dropbox ($119.88/yr), Figma ($15), 1Password ($3), iCloud+ ($2.99), NYT ($17). Want me to flag any you haven't used lately?
“Am I making more than I spend?”
Yes. In March you made $8,420 and spent $6,315 — +$2,105 net. Over the last 6 months your average savings rate is 23%.
“How are my holdings doing?”
Portfolio is at $26,590, up +$5,930 (+28.7%) vs. cost basis. Biggest gainer: AAPL +34.8%. Biggest drag: NVDA only +17% — you bought in late.
Numbers shown are illustrative. Your agent reads your actual accounts.
A few of the big ones, but the list goes much further — credit unions, brokerages, neobanks, all of it.





























Create an account with just your email. Magic link — no passwords.
Securely link your accounts in a few clicks. Read-only — we never move money.
Copy your MCP config into Claude Code, Gemini CLI, or Codex. Done.
First-class installers for Claude and ChatGPT. Standard HTTP MCP for everything else — 20+ integrations and counting.
The fastest way in. Runs inside Claude Code — just paste your API token when it asks.
Read the guide →/plugin marketplace add bankbridge/bankbridge-plugin /plugin install bankbridge
A signed .mcpb bundle. Drop it on Claude Desktop, paste your token, done. Credentials live in your OS keychain.
Read the guide →# download bankbridge.mcpb # double-click it
Settings → Connectors → Developer Mode → Import remote MCP. Paste your URL + API token. Plus, Pro, Business, Enterprise, or Edu on web.
Read the guide →URL: https://bankbridge.money/api/mcp Header: Authorization: Bearer ldgr_...
Eleven tools across accounts, transactions, spending, and investments. Your agent decides which to call.
“How much did I spend on food last month?”
{
transactions: [
{ date: "2026-03-28", merchant: "Blue Bottle", amount: 6.50 },
{ date: "2026-03-27", merchant: "Whole Foods", amount: 84.23 },
{ date: "2026-03-25", merchant: "Sweetgreen", amount: 14.95 },
... 41 more
],
total_count: 44,
has_more: false
}“What's my cashflow for March?”
{
income: 8420.00,
expenses: 6315.47,
net: 2104.53,
top_expense_categories: [
{ category: "RENT_AND_UTILITIES", amount: 2400.00 },
{ category: "FOOD_AND_DRINK", amount: 812.34 },
{ category: "TRANSPORTATION", amount: 340.12 }
]
}“Show me all my Netflix charges.”
{
merchant: "Netflix",
charge_count: 24,
first_charge: "2024-04-12",
last_charge: "2026-03-12",
average_amount: 15.49,
total_spent: 371.76
}“What are my recurring subscriptions?”
[
{ merchant: "Netflix", amount: 15.49, frequency: "monthly" },
{ merchant: "Spotify", amount: 10.99, frequency: "monthly" },
{ merchant: "Notion", amount: 10.00, frequency: "monthly" },
{ merchant: "Anthropic", amount: 20.00, frequency: "monthly" },
{ merchant: "Dropbox", amount: 119.88, frequency: "yearly" }
]“How are my investments doing?”
[
{ ticker: "AAPL", qty: 50.0, value: 12405.00, gain_loss: 3205.00 },
{ ticker: "MSFT", qty: 24.0, value: 9901.20, gain_loss: 2101.20 },
{ ticker: "NVDA", qty: 30.0, value: 4284.00, gain_loss: 624.00 }
]“Break down my spending by category.”
[
{ group: "RENT_AND_UTILITIES", total: 2400.00, count: 4 },
{ group: "FOOD_AND_DRINK", total: 812.34, count: 44 },
{ group: "TRANSPORTATION", total: 340.12, count: 18 },
{ group: "ENTERTAINMENT", total: 120.00, count: 6 }
]$5 per connected bank per month. No minimums. No caps. Prorated automatically when you add or remove a bank.
Billed monthly via Stripe. First bank starts your subscription at $5/mo.
No mainstream competitor can say that. Most cache your financial history server-side for speed. We fetch live on every question.
Every question your agent asks live-fetches from Plaid in real time. We store only the single access token needed to call Plaid on your behalf. No transaction cache. No query log.
We can see your transactions. We can’t move money.
AES-256-GCM for access tokens. TLS 1.3 for everything else.
Cancel or delete your account anytime — your access token is revoked with Plaid and deleted from our servers within seconds.
We use the same banking infrastructure Venmo and Robinhood rely on.
Every tool your agent can call, with an example input and the exact shape it returns. Amounts are in dollars. Positive transaction amounts = money spent, negative = money received.
list_accountsAll connected accounts with current balances. No input — returns everything your agent has access to.
{}{
"accounts": [
{
"id": "acc_blgvvBlXw3",
"name": "My Checking",
"official_name": "ACME Bank Everyday Checking",
"institution": "ACME Bank",
"type": "depository",
"subtype": "checking",
"mask": "0000",
"current_balance": 110.00,
"available_balance": 100.00,
"limit": null,
"currency": "USD",
"last_updated": "2026-04-12T09:14:22Z",
"needs_reauth": false
},
{
"id": "acc_3gE5gUdEC7",
"name": "My Credit Card",
"institution": "ACME Bank",
"type": "credit",
"subtype": "credit card",
"mask": "3333",
"current_balance": 410.00,
"available_balance": null,
"limit": 2000.00,
"currency": "USD",
"last_updated": "2026-04-12T09:14:22Z",
"needs_reauth": false
}
]
}get_accountFull detail for a specific account by id.
{ "account_id": "acc_blgvvBlXw3" }{
"id": "acc_blgvvBlXw3",
"name": "My Checking",
"official_name": "ACME Bank Everyday Checking",
"institution": "ACME Bank",
"institution_id": "ins_109508",
"type": "depository",
"subtype": "checking",
"mask": "0000",
"current_balance": 110.00,
"available_balance": 100.00,
"limit": null,
"currency": "USD",
"last_synced_at": "2026-04-12T09:14:22Z",
"needs_reauth": false
}list_transactionsTransactions with filters — date range, amount range, category, account, pending. Paginated. Newest first. Positive amount = money spent, negative = money received.
{
"category": "FOOD_AND_DRINK",
"start_date": "2026-03-01",
"end_date": "2026-03-31",
"limit": 50
}{
"transactions": [
{
"id": "tx_lPNjeW1nR6",
"account_id": "acc_3gE5gUdEC7",
"account_name": "My Credit Card",
"account_mask": "3333",
"date": "2023-09-24",
"datetime": "2023-09-24T11:01:01Z",
"name": "PURCHASE WM SUPERCENTER #1700",
"merchant_name": "Walmart",
"amount": 72.10,
"currency": "USD",
"category": "GENERAL_MERCHANDISE",
"category_detailed": "GENERAL_MERCHANDISE_SUPERSTORES",
"pending": false,
"payment_channel": "in store"
}
],
"total_count": 342,
"returned": 1,
"offset": 0,
"has_more": true
}search_transactionsCase-insensitive substring match on both the raw transaction name and the merchant name.
{ "query": "Netflix", "limit": 10 }{
"transactions": [
{
"id": "tx_abc123",
"account_id": "acc_3gE5gUdEC7",
"account_name": "My Credit Card",
"account_mask": "3333",
"date": "2026-03-12",
"name": "NETFLIX.COM",
"merchant_name": "Netflix",
"amount": 15.49,
"currency": "USD",
"category": "ENTERTAINMENT",
"category_detailed": "ENTERTAINMENT_TV_AND_MOVIES",
"pending": false,
"payment_channel": "online"
}
],
"total_count": 24,
"returned": 1,
"offset": 0,
"has_more": true
}get_spending_summaryAggregate spending (expenses only) grouped by category, merchant, month, or week. Top N groups by total.
{
"group_by": "category",
"start_date": "2026-03-01",
"end_date": "2026-03-31",
"limit": 5
}{
"group_by": "category",
"start_date": "2026-03-01",
"end_date": "2026-03-31",
"groups": [
{ "group": "RENT_AND_UTILITIES", "total": 2400.00, "transaction_count": 4, "average": 600.00 },
{ "group": "FOOD_AND_DRINK", "total": 812.34, "transaction_count": 44, "average": 18.46 },
{ "group": "TRANSPORTATION", "total": 340.12, "transaction_count": 18, "average": 18.90 },
{ "group": "ENTERTAINMENT", "total": 120.00, "transaction_count": 6, "average": 20.00 },
{ "group": "GENERAL_MERCHANDISE","total": 94.23, "transaction_count": 3, "average": 31.41 }
]
}get_recurring_chargesAuto-detected subscriptions. Classifies by median interval between charges — weekly, biweekly, monthly, quarterly, yearly.
{ "min_occurrences": 3 }{
"recurring": [
{ "merchant": "Netflix", "amount": 15.49, "frequency": "monthly", "last_charge": "2026-04-12", "charge_count": 24, "total_spent": 371.76 },
{ "merchant": "Spotify", "amount": 10.99, "frequency": "monthly", "last_charge": "2026-04-08", "charge_count": 18, "total_spent": 197.82 },
{ "merchant": "Anthropic", "amount": 20.00, "frequency": "monthly", "last_charge": "2026-04-03", "charge_count": 11, "total_spent": 220.00 },
{ "merchant": "Dropbox", "amount": 119.88, "frequency": "yearly", "last_charge": "2025-11-14", "charge_count": 3, "total_spent": 359.64 }
]
}get_monthly_cashflowIncome vs. expenses for a month, plus top income sources and expense categories.
{ "month": "2026-03" }{
"month": "2026-03",
"income": 8420.00,
"expenses": 6315.47,
"net": 2104.53,
"top_income_sources": [
{ "source": "ACME Corp Payroll", "amount": 8200.00 },
{ "source": "Stripe payout", "amount": 220.00 }
],
"top_expense_categories": [
{ "category": "RENT_AND_UTILITIES", "amount": 2400.00 },
{ "category": "FOOD_AND_DRINK", "amount": 812.34 },
{ "category": "TRANSPORTATION", "amount": 340.12 }
]
}get_merchant_historyAll transactions for a specific merchant plus aggregate stats. Fuzzy substring match — same engine as search_transactions.
{ "merchant": "Netflix" }{
"merchant": "Netflix",
"charge_count": 24,
"total_spent": 371.76,
"average_amount": 15.49,
"first_charge": "2024-04-12",
"last_charge": "2026-04-12",
"transactions": [
{
"id": "tx_nflx24", "account_name": "My Credit Card", "account_mask": "3333",
"date": "2026-04-12", "name": "NETFLIX.COM", "merchant_name": "Netflix",
"amount": 15.49, "category": "ENTERTAINMENT", "pending": false
}
],
"total_matching": 24,
"has_more": true
}list_categoriesTransaction categories actually present in your data, with counts and totals. Use before filtering by category to see what's available.
{}{
"categories": [
{ "category": "RENT_AND_UTILITIES", "transaction_count": 24, "total_amount": 14400.00 },
{ "category": "FOOD_AND_DRINK", "transaction_count": 186, "total_amount": 3420.12 },
{ "category": "GENERAL_MERCHANDISE","transaction_count": 92, "total_amount": 2104.84 },
{ "category": "TRANSPORTATION", "transaction_count": 48, "total_amount": 1286.40 },
{ "category": "ENTERTAINMENT", "transaction_count": 41, "total_amount": 612.80 },
{ "category": "INCOME", "transaction_count": 24, "total_amount": 50520.00 }
]
}list_holdingsCurrent investment positions with gain/loss vs. cost basis. cost_basis, gain_loss, and gain_loss_pct may be null if the institution doesn't report cost basis for that security.
{}{
"holdings": [
{
"id": "hold_aapl_001", "account_id": "acc_brk_001", "account_name": "Brokerage",
"ticker": "AAPL", "name": "Apple Inc.", "type": "equity",
"quantity": 50.0, "price": 248.10, "value": 12405.00,
"cost_basis": 9200.00, "gain_loss": 3205.00, "gain_loss_pct": 34.84,
"currency": "USD"
},
{
"id": "hold_nvda_001", "account_id": "acc_brk_001", "account_name": "Brokerage",
"ticker": "NVDA", "name": "NVIDIA Corporation", "type": "equity",
"quantity": 30.0, "price": 142.80, "value": 4284.00,
"cost_basis": 3660.00, "gain_loss": 624.00, "gain_loss_pct": 17.05,
"currency": "USD"
},
{
"id": "hold_msft_001", "account_id": "acc_brk_001", "account_name": "Brokerage",
"ticker": "MSFT", "name": "Microsoft Corporation", "type": "equity",
"quantity": 24.0, "price": 412.55, "value": 9901.20,
"cost_basis": 7800.00, "gain_loss": 2101.20, "gain_loss_pct": 26.94,
"currency": "USD"
}
]
}list_investment_transactionsBuys, sells, cash events, fees, transfers. Dividends appear as type='cash' + subtype='dividend' — filter by the `subtype` field to isolate them.
{ "type": "sell", "start_date": "2020-01-01" }{
"transactions": [
{
"id": "inv_pK99jB9e7m",
"account_id": "acc_brk_001",
"account_name": "Brokerage",
"date": "2020-05-28",
"name": "SELL Awesome Fund Institutional Class",
"type": "sell",
"subtype": "sell",
"ticker": "AWSMX",
"security_name": "Awesome Fund Institutional Class",
"quantity": -47.74,
"price": 27.53,
"amount": -1289.01,
"fees": 7.99,
"currency": "USD"
}
],
"total_count": 1,
"returned": 1,
"offset": 0,
"has_more": false
}