Spend reportHosted URL
Bank Statement
Import a bank CSV, categorise it and find the subscriptions.
Free tier needs no key. See the exact limits.
What you get
Recurring charges, mBank CSV
Last 3 months
| Charge | Every | PLN |
|---|---|---|
| Software plan | month | 49.00 |
| Software plan | month | 89.00 |
| Software plan | month | 120.00 |
| A month | 258.00 | |
Drop in the CSV export from your bank. It reads Revolut, Wise, mBank, PKO, ING, N26 and generic formats, sorts transactions into categories, summarises spend per currency, finds recurring charges and matches the statement against your expense log. With the local install, the data never leaves your machine.
Made for Freelancers, Small business owners, Bookkeepers
3 requests, start to finish
Example chats. Each one uses real tools of this server, named as they run. The people and firms are made up.
Example done on the free tier. Doing this every week? Pro removes the limit for $19, once. Free vs Pro
-
Example 1 · Freelance developer in Gdansk with an mBank accountFind forgotten subscriptions
Import my mBank CSV for the last 3 months and list every recurring charge.statement_importReads the mBank exportrecurring_detectGroups charges that repeat each month
A list of recurring charges with amount and cadence, for example 3 software plans at PLN 49, PLN 89 and PLN 120 a month.
Saves about 30 min (our estimate)
-
Example 2 · UK consultant with a Wise account in GBP and EURMonth-end summary for two currencies
Import my Wise statement, put Tesco and Sainsbury's under groceries, and summarise October by category.statement_importReads the Wise CSVcategory_rulesAdds rules for the two merchantsstatement_summaryTotals October by category per currency
October spend by category, with GBP and EUR kept apart, never mixed into one total.
Saves about 25 min (our estimate)
-
Example 3 · Bookkeeper for a Lisbon caféTie the bank to the expense log
Reconcile October's bank lines against the expense ledger. What's missing?reconcile_expensesMatches bank lines to logged expensestransactions_listLists the lines with no match
Matched pairs, plus bank lines with no expense and expenses with no bank line.
Saves about 40 min (our estimate)
Free and Pro, line by line
The free column is yours with no key. The Pro column costs $19 once, or comes with the $39 bundle.
Free
$0 no key
Pro
$19 once, lifetime
Saw a message that says the free tier allows a set number per month? That's the limit Pro removes. Paste the key where the token goes, or set MCP_LICENSE_KEY.
Or Pro on all 49 paid servers for $39 once. Get the bundle
Limits read from the code: servers/bank-statement/src/index.ts:25-35 (FREE_ACCOUNTS, FREE_WINDOW_MONTHS, FREE_RULES, FREE_RECONCILE_DAYS, FREE_RECURRING_*), :730 (statement_export)
Install
Works with Claude, Cursor, VS Code and other MCP clients. The hosted URL needs no install at all.
npm @theluckystrike/mcp-bank-statement
- Get a free token. It lasts 30 days and allows 600 calls per hour. Or open the connect page for a ready URL.
- Paste the URL with your token as a custom connector in your MCP client.
1. Free token
curl -s -X POST https://mcp.zovo.one/mcp/token
2. Connector URL (replace <token>)
https://mcp.zovo.one/mcp/bank-statement/t/<token>
Download the .mcpb bundle and open it. Claude Desktop installs it in one click.
Download bank-statement.mcpbAdd this to your MCP client config (Claude Desktop, Cursor, VS Code). Needs Node.js.
{
"mcpServers": {
"bank-statement": {
"command": "npx",
"args": [
"-y",
"@theluckystrike/mcp-bank-statement"
]
}
}
} One command in your terminal.
claude mcp add --transport http bank-statement https://mcp.zovo.one/mcp/bank-statement/t/<token> # or run it locally claude mcp add bank-statement -- npx -y @theluckystrike/mcp-bank-statement
Jobs this server does
All tools (10)
| Tool | What it does |
|---|---|
accounts_list | List the imported accounts: bank, currencies, transaction count, first and last date, and the closing balance when the file carried one. |
category_rules | Read the category rules, or pass rules to REPLACE the whole list. |
reconcile_expenses | Match bank debits against mcp-expense-tracker entries: same currency and amount, date within a few days. |
recurring_detect | Find charges that come back: debits grouped by counterparty and currency with a steady amount and interval, with cadence, typical amount, next due date and annual cost. |
statement_export | Call this tool to write BANK transactions of a date range to a .csv or .json file and return the path. |
statement_import | Call this tool to read a bank CSV into the local ledger. |
statement_summary | What was spent/received in a date range per the BANK ACCOUNT, grouped by category, month, account or counterparty. |
transaction_categorize | Set or clear the category on transactions by id, for a one-off no rule is worth writing for. |
transactions_list | List stored transactions in a date range, optionally for one account or category, or only the ones no rule has categorised yet. |
transactions_search | Find transactions whose description, counterparty, category or account contains the query. |
Questions
Does it connect to my bank?
Which banks are supported?
More in Bookkeeping
Amortization
Loan and lease schedules from the agreement, exact to the cent.
BookkeepingFree tier, Pro $19Hosted
ReportAsset Register
Fixed assets and depreciation on Polish, UK and US tax tables.
BookkeepingFree tier, Pro $19Hosted
CSVCash Book
One double-entry ledger built from your invoices, bank and expenses.
BookkeepingFree tier, Pro $19Hosted
Bank Statement Pro, $19 once