Skip to main content
Bankflow

Developers

How to Connect Claude and Other AI Assistants to Bankflow

Bankflow speaks the Model Context Protocol, so Claude, Claude Code, Cursor, and other MCP clients can read your statements and transactions and answer questions about them, with a read-only key.

Last verified in Bankflow on September 14, 2026.

What You Can Do

Connect an AI assistant to Bankflow and ask it about your money in plain language: "Who did I spend the most at last quarter?", "What did I spend on groceries in March?", "Give me my August statement as a CSV." The assistant reads your statements and transactions through Bankflow's Model Context Protocol (MCP) server and answers from them.

Everything the assistant can do is read-only. It can't upload, edit, or delete anything, and it can't spend credits.

Step 1: Create a Read-Only Key

In Bankflow, open API & Webhooks in the sidebar. Create a new key, give it a name you'll recognise (for example "Claude"), and leave the access level on Read only. That's the default, and it's the right choice for anything you hand to an assistant.

Copy the key when it's shown. It starts with bnfw_, and it won't be shown again.

Keys marked Read + write can also upload, edit, and delete statements and transactions, and spend parsing credits. Don't give one of those to an assistant. If you created a key before access levels existed, it has read and write access; replace it with a read-only key.

Step 2: Connect Your Assistant

Bankflow's MCP server is at:

https://api.bankflow.app/api/mcp

Claude, as a custom connector

In Claude, go to Settings, then Connectors, then Add custom connector, and enter:

FieldValue
NameBankflow
URLhttps://api.bankflow.app/api/mcp
Header nameX-API-Key
Header valueyour read-only key

The header fields are usually behind an Advanced or OAuth disclosure. Use X-API-Key here, not Authorization: Claude reserves the Authorization header for its own sign-in flow and won't accept one you type. Leave the OAuth client ID and secret empty.

Claude Code

The command line accepts any header, so the standard bearer token works:

claude mcp add --transport http bankflow https://api.bankflow.app/api/mcp \
  --header "Authorization: Bearer bnfw_your_key_here"

Claude Desktop, Cursor, and other clients

Anything that reads an mcpServers configuration takes this shape:

{
  "mcpServers": {
    "bankflow": {
      "type": "http",
      "url": "https://api.bankflow.app/api/mcp",
      "headers": { "Authorization": "Bearer bnfw_your_key_here" }
    }
  }
}

What the Assistant Can Use

Bankflow offers six tools. Each is marked read-only in the protocol itself, so your client can show you that before you approve it.

ToolWhat it does
list_statementsFinds statements, with each one's file name, bank, period, balances, currency, and status.
get_statementOne statement's details.
list_transactionsTransactions across your account or within one statement, filtered by date, category, money in or out, or description.
summarize_spendingYour top merchants, categories, or tags by spend across every statement. It groups the many spellings of one merchant together and converts currencies, so it can answer ranking questions the raw transaction list can't.
get_statement_insightsTotals, a category breakdown, and top merchants for one statement.
export_statement_csvOne statement's transactions as CSV.

Things to Know

  • Only statements that are turned on count in spending summaries, so a statement still under review contributes nothing. The tools say so in their answers rather than returning a confident zero.
  • Amounts are converted to one currency. If you don't ask for a particular one, Bankflow uses the currency most of your statements are in and tells the assistant which it used.
  • Spending with no known merchant is reported separately rather than ranked as if "Other" were a shop, so "who did I spend the most at" gets a real answer.
  • Calls count against your API rate limit and appear under Recent Requests on the API & Webhooks page, alongside your other API traffic.
  • Revoking the key disconnects the assistant. Revoke it from the API & Webhooks page at any time.
  • Keys go in a header, never in the URL. Bankflow deliberately doesn't accept keys in URLs, because URLs end up in logs, browser history, and referrers.

Checking a Key by Hand

To confirm the key and endpoint work before configuring a client, list the tools with curl:

curl -s https://api.bankflow.app/api/mcp \
  -H "X-API-Key: bnfw_your_key_here" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

The Accept header has to list both types. Leaving one out is the usual reason a hand-written request fails.

Next Step

To build your own integration instead, see the API reference.