Home · Comparisons

MCP Bank Statement vs MainBook and bankstatementparser-mcp: which MCP server to pick

All three turn a bank statement into structured data from a chat. MainBook Bank Statement Converter (ai.mainbook/bank-statement-converter on the official registry) converts a PDF statement to a checked Excel, CSV or JSON file through a paid, account-gated cloud job. bankstatementparser-mcp parses CSV, OFX/QFX, SWIFT MT940 and ISO 20022 CAMT.053 content passed inline, one call at a time, with nothing kept between calls. Ours reads a bank's own CSV export, keeps everything as a local ledger, categorizes it with your rules, and reconciles it against your expense records.

The facts, read from each project

FactOursMainBookbankstatementparser-mcp
Tools11 (statement_import through license_activate)5 (convert_bank_statement, get_conversion, list_conversions, get_balance, output_folder)5 (list_supported_formats, detect_format, parse_statement, validate_statement, summarize_statement) plus 1 resource and 1 prompt
Input formatCSV export from Revolut, Wise, mBank, PKO BP, ING, N26, or a generic debit/credit layoutPDF statement onlyInline content: CSV, OFX/QFX, SWIFT MT940, ISO 20022 CAMT.053/pain.001
Account or key neededNo. No account, no keyYes, a MainBook account and either OAuth sign-in or an mb_live_ API keyNo. No account, no key
State between callsA persistent local ledger; re-importing the same file stores 0 duplicatesNone: each conversion is a paid job against that one fileNone: every tool call parses the inline content it was given and keeps nothing
Categorize by ruleYes, category_rules, substring or backtrack-safe regexNoNo
Reconcile against expense recordsYes, reconcile_expenses against mcp-expense-trackerNoNo
Detect subscriptionsYes, recurring_detect with an annualised costNoNo
Where the data livesLocal JSON in ~/.local/share/mcp-servers/bank-statement/MainBook's cloud service; results also written locally by stdio clientsNowhere; a private temp file per call, deleted on exit
LicenceMITMITApache-2.0
Cost of the serverFree tier, Pro $19 onceFree account tier, then paid page credits (price not stated in its README)Free, open source
Works with no networkYesNo, every conversion is a network job against MainBook's APIYes

When to pick MainBook

Pick it when the statement you have is a PDF and nothing else: no CSV export option, just a scanned or generated PDF from a bank that does not offer one. Its own worked example converts a 4-page, 63-transaction PDF and checks that opening balance plus credits minus debits equals the closing balance, flagging any row that does not fit rather than passing it through silently. That reconciliation-on-import step is real engineering we do not attempt, because we start from a CSV that already carries clean rows. The cost is an account, a browser sign-in or an API key, and a page-credit job for every conversion.

When to pick bankstatementparser-mcp

Pick it when the job is a one-off parse of a statement in a less common wire format: SWIFT MT940 or ISO 20022 CAMT.053, the formats banks exchange with each other rather than hand to a customer. It is part of an eight-server ISO 20022 suite from the same author, so camt053-mcp and reconcile-mcp in that suite go considerably deeper on those formats than anything here does. Nothing is stored between calls: every tool takes the statement content inline and returns structured rows in that one response, which is the right shape for a script but means there is no ledger to categorize, no re-import to dedupe, and no month-over-month summary without keeping the output yourself.

When to pick ours

Pick ours when the statement is an ordinary CSV export from a retail bank and the job repeats every month. There is no account and no per-conversion charge: import once, and every later import of the same file adds nothing, because each row is keyed on its date, amount, currency, account and description plus an occurrence index, not just the row's position in the file. Money in, money out and the net are reported per currency, never mixed. And it is the only one of the three that talks to another server on purpose: reconcile_expenses reads the expense tracker's receipts and reports which bank debits have nothing behind them and which receipts never reached the bank.

What we measured

The bank-statement package carries 28 automated tests, all passing, covering all seven bank shapes, the occurrence-index dedupe, concurrent imports and reconciliation against a seeded expense store. A 60-row fixture: 60 transactions stored, then 0 stored and 60 duplicates reported on re-importing the identical file. Eight concurrent imports of one file across two processes on one data directory still leave exactly the transactions that file contains. Neither MainBook's nor bankstatementparser-mcp's README states a test count.

Install lines

Ours, Claude Code:

claude mcp add bank-statement -- npx -y @theluckystrike/mcp-bank-statement

MainBook:

uvx mainbook-mcp auth login
claude mcp add-json mainbook '{"command":"uvx","args":["mainbook-mcp","~/Downloads"]}'

bankstatementparser-mcp:

pip install bankstatementparser-mcp
claude mcp add-json bankstatementparser '{"command":"bankstatementparser-mcp"}'

Exact config file paths per client are on the setup pages, and the longer walkthrough is in categorizing and reconciling a bank CSV export.

Questions

Can I run the bank statement server and MainBook at the same time?

Yes. Tool names do not collide: ours are statement_import, transactions_list and so on; MainBook's are convert_bank_statement, get_conversion. Nothing is shared between them, and they read different input formats, CSV against PDF.

Does MainBook or bankstatementparser-mcp categorize transactions or detect subscriptions?

No. Neither documents a category-rule tool or a recurring-charge detector. MainBook converts a PDF to a checked spreadsheet; bankstatementparser-mcp parses one statement per call into structured rows. Rules, reconciliation and recurring detection are specific to ours.

Which one reads a PDF statement?

MainBook, and only MainBook. Ours and bankstatementparser-mcp both read structured formats a bank already exports, CSV for ours, CSV/OFX/QFX/MT940/CAMT.053 for bankstatementparser-mcp; neither extracts a table from a PDF.

What does each cost?

MainBook needs a MainBook account and spends page credits per conversion at a price its README does not state. bankstatementparser-mcp is free and open source (Apache-2.0), with no account. Ours has a free tier (2 accounts, 12 months, 5 rules) and a one-time $19 Pro key, or $39 for every server in this collection.

Where can I read the competitor facts myself?

MainBook's tools, account requirement and PDF-only input come from its README at github.com/human-beyond/mainbook-mcp and its official registry entry for ai.mainbook/bank-statement-converter. bankstatementparser-mcp's tools, formats and licence come from its README at github.com/sebastienrousseau/bankstatementparser-mcp and its registry entry search results for 'statement'. All read on 2026-09-04.

Related

Product page · Setup per client · Guides · All comparisons