Comparison

BankBridge vs SimpleFIN for AI Agents

6 min read
There's no official SimpleFIN MCP server. SimpleFIN Bridge serves raw account and transaction JSON over one endpoint, so connecting it to an AI agent means running a community wrapper or writing your own. BankBridge is that layer already built: a hosted MCP server with 11 typed tools, OAuth 2.1, and live data for $5 a month per bank.

The short answer

There's no official SimpleFIN MCP server. SimpleFIN publishes a small, open protocol for read-only bank data, and SimpleFIN Bridge is the hosted service that speaks it. What you get is raw JSON from a single endpoint. Everything an AI agent needs on top of that (tool definitions, categorization, hosting, auth) is yours to build, or to borrow from a handful of community projects on GitHub.

BankBridge is that missing layer sold as a product. It's a hosted MCP server with 11 typed tools, live-fetched data, and two auth options: bbk_* API keys or OAuth 2.1. Connect a bank, paste a URL into your agent's config, start asking questions.

So this isn't really a tool-versus-tool comparison. It's build versus buy: a $15-a-year data feed plus a weekend of work, against a $5-a-month-per-bank server that's already done. Both are reasonable choices. The rest of this guide maps the gap so you can pick with open eyes.

What SimpleFIN Bridge gives you

SimpleFIN Bridge costs $1.50 a month or $15 a year, and one subscription covers up to 25 institutions. You connect your banks through its bank-connection layer, generate a setup token, claim it once, and get back an access URL with credentials baked in. From there, a single GET request to /accounts returns your data.

The data model is deliberately tiny. Accounts carry a name, currency, balance, and balance date. Transactions carry an id, a posted date, an amount, a raw description string, and sometimes a pending flag. That's the whole protocol.

For the money, it's remarkable. It's the cheapest legitimate read-only bank feed a developer can buy, which is why budgeting tools like Actual Budget support it and why the self-hosting crowd loves it.

The gap between raw JSON and an agent tool

Wrapping SimpleFIN in MCP is easy at the shallow end. Define one tool, call it get_accounts, fetch the JSON, hand it to the model. A competent developer does this in an afternoon, and the community wrappers you'll find are mostly this.

The problem shows up on the second question. SimpleFIN descriptions are whatever the bank sent: 'POS DEBIT SQ *COFFEE 4417' with no category, no cleaned merchant name, no notion of recurrence. Every question becomes 'fetch everything and let the model sort it out.'

What subscriptions am I paying for, and did any of them raise prices this year?

With raw SimpleFIN data, the model has to pull 90 days of transactions, guess which descriptor strings are the same merchant, infer billing cycles, and compare amounts. It'll often get there, but it burns context, takes longer, and misses things like a subscription whose descriptor changed mid-year. With a typed tool, that's one call to get_recurring_charges.

The build list to reach parity

Here's what BankBridge ships as tools: list_accounts, get_account, list_transactions, search_transactions, get_spending_summary, get_recurring_charges, get_monthly_cashflow, get_merchant_history, list_categories, list_holdings, and list_investment_transactions. To reach parity on top of SimpleFIN, you'd build most of that yourself.

The transaction tools need a categorization layer (the protocol has none), merchant normalization (one subscription can appear under several descriptor spellings), and recurring detection. The summary tools need aggregation across months and categories. Search needs an index, or at least a full local mirror of your history.

Two of the eleven can't be built at all. The protocol has no standard fields for holdings or investment activity, so brokerage questions are off the table.

Then there's serving it. A local stdio server is fine for Claude Code, Cursor, or Zed. But remote hosts like ChatGPT connectors and Claude on the web want a hosted server speaking OAuth 2.1. Now you're running infrastructure, and the thing you're protecting is an access URL that behaves like a bank credential.

Freshness and quotas

SimpleFIN Bridge refreshes account data roughly once every 24 hours, expects 24 or fewer API requests a day, and caps each query at 90 days of history. Those limits fit a nightly budget sync perfectly. They fit an agent conversation less well.

Agents are chatty. One money-review session can make a dozen tool calls without trying:

Compare my spending this month to last month, then break the biggest category down by merchant.

BankBridge live-fetches on every call and caches nothing on its servers, so a charge that posted this morning is in your next answer. To be fair to SimpleFIN, if your questions are weekly and retrospective, daily freshness is plenty. If you're asking 'did that refund land yet,' it isn't.

Where SimpleFIN wins

Price, first and clearly. $15 a year covers up to 25 institutions. Four banks on BankBridge cost $20 a month. If your only constraint is dollars, SimpleFIN wins and it isn't close.

It also wins on ownership. The protocol is open, the data flows to code you wrote, and nothing sits between you and the JSON. If you self-host your budgeting stack, run a homelab, or just enjoy the build, that's worth real money to you, and SimpleFIN respects it.

And if you already pay for SimpleFIN to feed Actual Budget or a similar tool, a small MCP wrapper for occasional agent questions costs nothing but the time to write it. That's a fine place to be.

How to decide

Pick SimpleFIN if you want the cheapest possible feed, you enjoy the build, daily data is fresh enough, you don't need investment tools, and your agent runs locally in something like Claude Code or Cursor.

Pick BankBridge if you'd rather ask questions today than build this weekend, you use remote hosts like ChatGPT or Claude on the web, you want live balances, or you hold investments you'd like your agent to see. It's $5 a month per connected bank, cancel anytime, with 29 host integrations documented step by step.

The math worth running: the wrapper itself is a fun weekend, but the categorization, recurring detection, and merchant normalization layers are the real product, and they're never quite finished. Descriptors mutate, banks rename things, edge cases pile up. If maintaining all that costs you even an hour a month, you're saving about $3.50 per bank and paying for it in evenings.

What did I spend on groceries last month, and is that trending up?

With BankBridge, that works the minute you connect. With SimpleFIN, it works after you've built the thing that makes it work. Both paths get there. Only one of them is your project.

FAQ

Is there an official SimpleFIN MCP server?

No. SimpleFIN publishes a data protocol, not an MCP server. A few community projects wrap SimpleFIN Bridge in MCP, including a Cloudflare Worker and a self-hosted finance app with an MCP endpoint. If you want a supported, hosted MCP server for bank data, that's what BankBridge is.

How much does SimpleFIN Bridge cost compared to BankBridge?

SimpleFIN Bridge costs $1.50 per month or $15 per year and covers up to 25 institutions. BankBridge costs $5 per month per connected bank, cancel anytime. SimpleFIN is cheaper on raw dollars; BankBridge includes the MCP server, typed tools, hosting, and auth you'd otherwise build yourself.

Does SimpleFIN include transaction categories or merchant names?

No. The SimpleFIN protocol returns transactions with an id, date, amount, and raw description string. There are no standard fields for categories, cleaned merchant names, or recurring-charge detection, so an agent built on it has to infer those from descriptors, or you have to build that layer yourself.

Can I see investment holdings through SimpleFIN?

Not through the core protocol. SimpleFIN's data model covers accounts and transactions only, with no standard fields for holdings or investment activity. BankBridge includes list_holdings and list_investment_transactions, so an agent can review positions and investment transactions alongside regular bank accounts.

How fresh is the data in each service?

SimpleFIN Bridge updates roughly once every 24 hours and expects 24 or fewer API requests per day. BankBridge live-fetches from your bank on every tool call and caches nothing on its servers, so a charge that posted minutes ago shows up in your agent's next answer.

Can I use SimpleFIN with Claude Desktop or ChatGPT?

Yes, with work. You'd write or run a local MCP wrapper for Claude Desktop, Claude Code, or Cursor. Remote hosts like ChatGPT connectors need a hosted server with OAuth 2.1, which means running infrastructure yourself. BankBridge supports both patterns out of the box with API keys or OAuth.