Live bank data for your finance agent.
Building an agent that answers questions about money? Point it at one remote MCP endpoint. Each of your users signs in with OAuth and connects their own banks. You skip the bank-data developer account and its approval process, the token storage, and the per-bank plumbing.
How it works
- 1.
Register your client
Your app registers itself with Dynamic Client Registration (RFC 7591) at /oauth/register. Public clients (no secret, PKCE only) and confidential clients (client_secret_post) both work. Most MCP client libraries do this for you from the discovery metadata.
- 2.
Each user signs in and links their banks
Send the user through the OAuth 2.1 authorization-code flow with PKCE (S256) at /oauth/authorize. They sign in to BankBridge, connect their own banks, and approve your app. You never handle bank credentials.
- 3.
Call the MCP endpoint with that user's token
The token endpoint returns a bearer token scoped to that one user (scope mcp:tools) plus a refresh token that rotates on every use and lasts 90 days. Every tool call your agent makes with it reads only that user's banks.
What your agent gets
12 tools, the same set every BankBridge user gets. 11 read data; the 12th returns a link the user opens to add another bank. All of them are read-only against the bank: nothing can move money.
list_accounts: Balances and types for every connected account.get_account: Detail lookup for one account by id.list_transactions: Transactions filtered by date, amount, category or account (paginated).search_transactions: Substring search over transaction name and merchant.get_spending_summary: Spending grouped by category, merchant, month or week.get_recurring_charges: Detected subscriptions, bills and other recurring charges.get_monthly_cashflow: Income vs expenses for a month plus top sources and categories.get_merchant_history: Every charge from one merchant plus totals and cadence.list_categories: Spending categories present in the user's data.list_holdings: Current investment positions with cost basis and gain/loss.list_investment_transactions: Buys, sells, dividends, fees and transfers.connect_bank: Returns a URL the user opens once to link another bank.
Every call fetches live from the user’s banks. Amounts come back in dollars. If one bank fails while others succeed, the result still returns with a warnings array and a reconnect link, so your agent can tell the user what to fix. The server also ships 19 MCP prompts (monthly report, subscriptions audit, budget draft, and more).
Compared with wiring a bank-data API yourself
You can build this. You’d need a bank-data developer account approved for production, an OAuth server your users trust, the tools themselves, and cleanup that stops per-connection billing when a user leaves. Then you’d keep it working across every agent client your users bring.
| BankBridge | Build it yourself | |
|---|---|---|
| Bank-data developer account and production approval | Not needed | You apply and wait |
| OAuth 2.1 + Dynamic Client Registration + PKCE | Built in | You implement the spec |
| 12 tools (search, spending, cashflow, recurring, holdings...) | Built in | You design and maintain them |
| Live fetch, no stored transactions | Yes | Your choice, your liability |
| Partial failures and reconnect links | Warnings array per call | You build it |
| Connection cleanup when a user cancels | Built in, with an audit log | You build it, or keep paying for dead connections |
| Setup guides for 29 agent hosts | Yes | You write them |
| Cost | $5 per bank per month, paid by each user | Provider fees, hosting, and your time |
Try it without an account
The demo key bbk_demo returns consistent sample data for a made-up person, so you can wire up your client before anyone signs up.
curl -s https://bankbridge.money/api/mcp \
-H "Authorization: Bearer bbk_demo" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_accounts","arguments":{}}}'Endpoints
https://bankbridge.money/api/mcphttps://bankbridge.money/.well-known/oauth-authorization-serverhttps://bankbridge.money/.well-known/oauth-protected-resourcehttps://bankbridge.money/oauth/registerhttps://bankbridge.money/oauth/authorizehttps://bankbridge.money/oauth/tokenhttps://bankbridge.money/oauth/revokehttps://bankbridge.money/.well-known/mcp/server-card.jsonPricing and privacy
Each user has their own BankBridge subscription: $5 per month per connected bank, or $50 per year. BankBridge stores no balances, transactions, or holdings, and neither do you unless you choose to. Details on the security page.
Building something with many users, or need a setup that isn’t covered here? Email hello@greatwork.company with what you’re building.