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:
| Field | Value |
|---|---|
| Name | Bankflow |
| URL | https://api.bankflow.app/api/mcp |
| Header name | X-API-Key |
| Header value | your 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.
| Tool | What it does |
|---|---|
list_statements | Finds statements, with each one's file name, bank, period, balances, currency, and status. |
get_statement | One statement's details. |
list_transactions | Transactions across your account or within one statement, filtered by date, category, money in or out, or description. |
summarize_spending | Your 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_insights | Totals, a category breakdown, and top merchants for one statement. |
export_statement_csv | One 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.