Bankstatemently
io.github.bankstatemently/bankstatemently-mcpConvert PDF bank statements into structured transactions, accounts, and balances.
Watch this dependency
Get before/after evidence when observed tools, schemas, authentication access, availability or the endpoint changes.
Inspect evidence and set up a watch Share public evidence report
Score: 100/100
Handshake verified by our own probe.
why this score
Tools · 22
Mint a single-use upload URL for pushing a conversation-attached PDF to Bankstatemently before converting it. Use this ONLY when you have no other way to reference the attached file (no pdf_file/pdf_u…
Convert a bank statement PDF into structured data or a spreadsheet. When the user attaches a PDF in the conversation, it arrives automatically as pdf_file — never encode it yourself. Otherwise, pass p…
Fetch the full converted data for a previously processed document. Use this after convert_statement returns a "processing" status, or to re-fetch results. output_format "json" (default) returns the da…
Run AI transaction categorization on a previously processed document, then return its category mappings. Returns cached categories with no charge if this document was already categorized. Consumes cre…
Browse your previously converted bank statements with pagination and optional status filter.
Hide a failed, rejected, or cancelled document from future list_statements results. Use this only when the user asks to clear a terminal failed/rejected/cancelled conversion from their history. This i…
Decide whether ambiguous pairs from list_transfers are transfers. Pass "verdict" when the user has told you; leave it out to let the AI judge decide. Returns the updated list_transfers answer.
Decide where an "unresolved" debit from list_outflows went (the documents' claims conflict and nothing settles them). Pass "verdict" and "transactionIds" when the user has told you; leave "verdict" ou…
Your remaining Bankstatemently credits — the processing quota, NOT credit/debit transactions. Use for: how many credits do I have, remaining pages, plan limits, quota, how many pages can I upload. 1 c…
List your memories, default memory first. The default memory covers the whole workspace. Named memories include name, situation and scope. Free to use — no credits consumed.
Create a named memory: a scoped lens over your accounts and dates with a user-authored name, optional situation ("bookkeeping", "divorce" or "estate"), and ChatScope. Free to use — no credits consumed…
Rename or rescope an existing named memory, or update its situation. The default memory is immutable. Free to use — no credits consumed.
Report how well a previously converted bank statement was parsed: submit a 1-5 rating, optionally with structured feedback at any rating. Your rating counts toward the average ratings shown on banksta…
Score parsed bank statement transactions against the Bankstatemently benchmark ground truth. Accepts a statement_id (e.g. "bsb-001") or content_hash, plus your parsed transactions. Returns extraction …
A transaction is a single line as printed on one account's statement — one side of any movement. Return a filtered list of transactions across your converted statements, capped at 50 rows. Scope defau…
Compute a single metric (sum/average/count/max/min) over a filtered set of transactions across your converted statements. Results are per-currency — never sum across currencies yourself. Scope default…
Group transactions by a dimension (month/category/counterparty/account/currency) and apply a metric to each group. Results are per-currency. The "counterparty" dimension keys on the printed counterpar…
Return the top N groups ranked by metric (descending), per-currency for monetary metrics. Scope defaults to all your completed statements; pass "scope" to narrow to specific accounts/products and/or a…
Side-by-side metric comparison for two filtered groups of transactions (e.g. one category vs another, one month vs another). Scope defaults to all your completed statements; pass "scope" to narrow to …
Compute a time series by grouping transactions into week or month buckets and applying a metric — useful for trends. Scope defaults to all your completed statements; pass "scope" to narrow to specific…
Match transfers between your own accounts. A transfer is TWO transactions — a debit leaving one of your accounts and a credit arriving in another — matched as two sides of the same movement (amount an…
Every debit that left your accounts — in no confirmed transfer between your own accounts, and not a fee — each in ONE destination whose kind is also its next step: "own-account" (a printed account mas…
Resources · 16
Bankstatemently Open Benchmark for bank statement parsing — 15 synthetic statements across 3 difficulty tiers, 12 countries, 9 languages, and 30+ parsing challenges.
benchmark://catalog
Singapore standard format with separate credit/debit columns and dedicated account summary page
benchmark://statements/bsb-001
US credit card with inverted signs, posting dates, and wrapped merchant descriptions
benchmark://statements/bsb-002
European format with comma decimal separator and period thousands
benchmark://statements/bsb-003
Hong Kong bank statement with separate account tables, credit/debit columns, multi-line descriptions, and value date
benchmark://statements/bsb-004
French Canadian bank statement with dates embedded in description, two-digit years, credit-debit columns, and space thousands separator
benchmark://statements/bsb-005
Mexican bank statement with Spanish headers, dual balance timeline, and partial-year dates
benchmark://statements/bsb-006
Canadian credit card with French headers, split date columns, and cashback sections
benchmark://statements/bsb-007
Australian bank statement with date-time dual columns, scanned PDF, and date format variations
benchmark://statements/bsb-008
UK bank statement with value date column, currency symbol amounts, and no table grid lines
benchmark://statements/bsb-009
Indian bank stress test with 500 transactions, payment method column, and pagination challenges
benchmark://statements/bsb-010
Hong Kong bilingual statement with multiple accounts, multi-currency, and end-of-day balance
benchmark://statements/bsb-011
Singapore credit card with Chinese-only headers, inverted sign convention, scanned PDF, and fee sections
benchmark://statements/bsb-012
Kazakhstan multi-currency statement with 9-column layout, fee column, and dual currency display
benchmark://statements/bsb-013
Thai bilingual statement with Buddhist era dates, payment method column, and balance validation
benchmark://statements/bsb-014
Malaysian bilingual credit card with header-only currency symbol, scanned PDF, and multiple tables
benchmark://statements/bsb-015
Prompts · 4
Use when the user attaches a bank statement PDF or asks for CSV/XLSX/QBO/Xero export of a converted statement. Do not use for spending analysis, reconciliation, or benchmark scoring — those have their…
Use when the user asks to categorize spending, group by merchant or category, rank top merchants, or show monthly trends on converted statements. Do not use for first-time PDF conversion, period recon…
Use when the user asks to check statement coverage, missing periods, balance continuity, or cross-account transfers. Do not use for converting a new PDF, spending categorization, or benchmark scoring.
Use when the user asks to convert and score a published Bankstatemently benchmark statement. Do not use for ordinary user-statement conversion, spending analysis, or reconciliation.
How to use
Add to your Claude Desktop / Cursor / Cline MCP config:
{
"mcpServers": {
"bankstatemently": {
"url": "https://api.bankstatemently.com/mcp",
"transport": "streamable-http"
}
}
}