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.
You could. You’d rebuild everything below, then maintain it against 29 evolving agent clients. Or pay $5 a month.
| BankBridge | Build it yourself | PDF-statement flow | |
|---|---|---|---|
| Works with Claude, ChatGPT, Cursor, Gemini, Codex + 24 more | Yes (pre-filled snippets) | You ship it | No agent integration |
| Live-fetch in real time, no caching | Yes | You build it | Stale the moment you export |
| OAuth 2.1 + DCR + PKCE for multi-user apps | Yes | You implement the spec | N/A |
| Twelve ready tools (spend, cashflow, recurring, holdings…) | Built in | You design + maintain | Re-parse every statement |
| Six-layer cancellation safety | Built in | You design it (or bleed) | N/A |
| Zero bank data cached | Yes | Your choice | Whole PDF in context |
| Monthly cost | $5 per bank | Aggregator + hosting + your time | Free (but lossy) |
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.
Click Add to Claude on our docs page — we copy the URL, open the connector dialog, you click Connect. Syncs to Claude mobile + Cowork + Desktop automatically.
Read the guide →1. claude.ai → Settings → Connectors → Add custom connector 2. URL: https://bankbridge.money/api/mcp 3. Leave Advanced settings empty — OAuth is auto-discovered. 4. Click Connect, sign in to BankBridge, click Allow. (No token needed — OAuth handles it.)
The fastest way in for developers. Runs inside Claude — paste your API token when the plugin asks.
Read the guide →/plugin marketplace add bankbridge-money/bankbridge-plugin /plugin install bankbridge # When prompted for an API token, paste: # bbk_your_api_key_here
Click Add to Cursor on our docs page. Cursor opens with BankBridge pre-filled — confirm, paste your bearer, ask away.
Read the guide →{
"mcpServers": {
"bankbridge": {
"url": "https://bankbridge.money/api/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer bbk_your_api_key_here"
}
}
}
}BankBridge ships 19 polished prompt templates — monthly reports, subscription audits, budget drafts, portfolio checks. In Claude iOS and Android, they appear under the + button in the input bar. In Claude Desktop and Cowork, same place. In Claude Code, type / and pick one. One tap fills the full multi-step prompt; your agent does the rest.
Plus 13 more: /balances, /weekly-review, /spending-by, /compare-months, /category-deep-dive, /cashflow-trend, /dividends, /monthly-chart, /category-pie, /tax-prep, /duplicate-check, /fraud-check, /monthly-report.
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 in real time. We store only the single access token needed to connect to your bank. 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 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
}