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.
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 connectors for Claude Code and Claude Desktop. Plain HTTP for everything else.
The fastest way in. Runs inside Claude Code — just paste your API token when it asks.
/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.
# download bankbridge.mcpb # double-click it
Works with any MCP-speaking client. Point it at the endpoint, add an Authorization header, you're in.
url: https://bankbridge.money/api/mcp header: Authorization: Bearer ldgr_...
Once BankBridge is connected, your agent can answer questions you'd normally ask an accountant — instantly, anytime.
Twelve 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.
We can see your transactions. We can’t move money.
AES-256-GCM for access tokens. TLS 1.3 for everything else.
Delete your data or close your account anytime from settings.
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_transactionFull detail for one transaction by id.
{ "transaction_id": "tx_lPNjeW1nR6" }{
"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"
}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
}