io.github.theluckystrike/bank-statement-csv-categorize-reconcile-ledger

io.github.theluckystrike/bank-statement-csv-categorize-reconcile-ledger · v0.22.6 · finance-and-payments

io.github.theluckystrike/bank-statement-csv-categorize-reconcile-ledger is healthy: it completed an MCP handshake in 1875 ms and exposes 15 tools.

Import a bank CSV, categorise it, summarise it per currency and reconcile it against your expenses.

Endpoint: https://mcp.zovo.one/mcp/bank-statement (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count15
Latency1875 ms
Last checked (UTC)2026-10-16T16:55:42.918Z

Health history

Checked (UTC)StatusLatencyError
2026-10-16T16:55:42.918ZHealthy1875
2026-10-15T11:00:10.144ZHealthy1427

Tools (15)

statement_importCall this tool to read a bank CSV into the local ledger. Columns detected from headers (date, description, amount, currency, balance); amounts use the file's locale; stored lines skipped. Returns detected/stored/skipped.
transactions_listList stored transactions in a date range, optionally for one account or category, or only the ones no rule has categorised yet. Totals are reported per currency and never added across currencies.
transactions_searchFind transactions whose description, counterparty, category or account contains the query. Case-insensitive substring search, never a regex, so a query with brackets in it cannot hang the server.
category_rulesRead the category rules, or pass rules to REPLACE the whole list. A plain match is a substring; a regex compiles only if it cannot backtrack exponentially. An empty match is refused. Free: 5 rules.
transaction_categorizeSet or clear the category on transactions by id, for a one-off no rule is worth writing for. Every id is checked first, so one unknown id refuses the whole call. category_rules matches by text instead.
statement_summaryWhat was spent/received in a date range per the BANK ACCOUNT, grouped by category, month, account or counterparty. For "what did I spend in August" once imported. Totals are per currency, never summed or converted.
reconcile_expensesMatch bank debits against mcp-expense-tracker entries: same currency and amount, date within a few days. Reports matches, unmatched bank lines, expenses never hitting the bank. Read-only. Free: 31 days; Pro: any range.
recurring_detectFind 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. Free: 3 months, 5 charges.
statement_exportExport the BANK transactions of a date range (a month, a quarter, a year) as .csv or .json and return a download link valid for one hour. This is the tool for "export September" once a statement has been imported. Nothing partial is ever written.
accounts_listList the imported accounts: bank, currencies, transaction count, first and last date, and the closing balance when the file carried one. Start here for the account names transactions_list and statement_export take.
license_statusReport this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
license_activateTurn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
bank_uploadSend a bank export to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with bank_upload and then pass its name as `path` to statement_import. Give exactly one of content (the export as text, header row included - this is the normal case for a CSV), con
bank_filesList the statement files stored for your token, with their sizes.
bank_delete_uploadDelete one statement file stored for your token. The transactions already imported from it are kept; transactions_list and the summary still see them.