Skip to content
Agentmart
Submit a tool

Bankstatemently

Convert PDF bank statements into structured transactions, accounts, and balances.

Connector by bankstatemently · GitHub account verified by the MCP Registry

IndexedMITRemote (HTTP)★ 1
Write a review

Chalk Labs

Need help deploying Bankstatemently?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/bankstatemently-bankstatemently-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://api.bankstatemently.com/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Convert PDF bank statements into structured transactions, accounts, and balances.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.

Tools
13 read · 6 write · 3 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 22

From the running server's own tool list (tools/list) on Oct 25, 2026.

Read 13 · Look things up without changing anything.

  • aggregate
  • compare
  • evaluate_benchmark
  • get_credits
  • get_statement
  • group_by
  • list_memories
  • list_outflows
  • list_statements
  • list_transactions
  • list_transfers
  • time_series
Show 1 more tools
  • top_n

Write 6 · Create, change, send or run things.

  • adjudicate_outflows
  • adjudicate_transfers
  • categorize_statement
  • convert_statement
  • create_memory
  • request_upload

Delete 3 · Delete, drop, revoke or wipe things.

  • dismiss_statement
  • rate_statement
  • update_memory

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • X-API-Key

Network hosts it talks to 4

  • api.bankstatemently.com · found in remote endpoint, install command, code
  • bankstatemently.com · found in code
  • github.com · found in code
  • glama.ai · found in code

Tools (22)

As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • adjudicate_outflowsAdjudicate Outflows

    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" out to let the AI judge decide the named rows, or every unresolved row. Returns the updated list_outflows answer.

  • adjudicate_transfersAdjudicate Transfers

    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.

  • aggregateAggregate Transactionsread-only

    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 defaults to all your completed statements; pass "scope" to narrow to specific accounts/products and/or a date range. For "how many credits do I have" / processing quota / remaining pages, use get_credits instead — that is not a transaction.

  • categorize_statementCategorize Transactions

    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 credits (pooled per page, same rate as the categorize toggle on the website) the first time — free on every re-fetch after. Every response includes a "summary" field: use it as the single source of truth for what happened.

  • compareCompare Transaction Groupsread-only

    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 specific accounts/products and/or a date range.

  • convert_statementConvert Bank Statement

    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 pdf_url for a public HTTPS link. If your host has no way to reference the attached file at all (no pdf_file/pdf_url equivalent), call request_upload first and pass its upload_id here instead. The base64 pdf parameter is a last resort only, for a caller with no other way to reference the file. To convert several statements in one call, pass upload_ids (the array from a single request_upload call mad…

  • create_memoryCreate Memory

    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.

  • dismiss_statementDismiss Statementcan change or delete data

    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 is not a delete: it marks the document dismissed and leaves stored data/artifacts untouched.

  • evaluate_benchmarkEvaluate Benchmarkread-only

    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 accuracy, integrity score, and an overall score. Only statements marked published: true in the catalog can be evaluated — held-out statements return an error. transactions[].originalData is optional but strongly recommended: fetch it via get_statement with data_mode: "original" and pass it through verbatim — an absent originalData scores that transaction's raw-fidelity (parsed) dimension 0; never …

  • get_creditsGet Credit Balanceread-only

    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 credit = 1 page of bank statement processing. Also reports your plan's operational limits (max pages per upload, max upload size, daily spend cap) so you can size a multi-file batch correctly before starting it.

  • get_statementGet Statement Dataread-only

    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 data inline, renderable in chat. The other formats (csv, xlsx, qbo, xero) return a time-limited download link instead: present it as a normal link. data_mode selects which projection of the data you get: omit it for each output_format's existing default behavior. "normalized" is the cleaned, interpreted view; "original" includes each transaction's raw column values exactly as printed on the source P…

  • group_byGroup Transactionsread-only

    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 counterparty, else a printed account mask (••1234), else the description's name tokens, so a rail word or reference number never splits one payee; a line with no key groups under "unknown". Scope defaults to all your completed statements; pass "scope" to narrow to specific accounts/products and/or a date range.

  • list_memoriesList Memoriesread-only

    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.

  • list_outflowsList Money That Left Your Accountsread-only

    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 mask that names one of your accounts and no matched credit was found: ask for that account's statement), "account" (a printed account mask for an account outside your statements: request that account's statements; an in-kind move such as securities, crypto or escrow starts as a wire to that account and becomes visible only once the receiving statement is uploaded), "cash" (cash out: where it went can…

  • list_statementsList Statementsread-only

    Browse your previously converted bank statements with pagination and optional status filter.

Show 7 more tools
  • list_transactionsList Transactionsread-only

    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 defaults to all your completed statements; pass "scope" to narrow to specific accounts/products and/or a date range. Every response names the scope it actually evaluated (document count + covered date range) and each returned row carries its source document's content_hash so you can cite it. For "how many credits do I have" / processing quota / remaining pages, use get_credits instead — that is not a t…

  • list_transfersMatch Transfers Between Accountsread-only

    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 and date aligned); account-level successions (an account closing into a successor) are matched too. A payment to an outside party is not a transfer here: only movements with both sides visible in your statements are matched. THE way to answer any "was money moved between my accounts" / "did I transfer X" question — never try to answer a money-moved-between-accounts question with list_transactions + …

  • rate_statementRate Statement Conversioncan change or delete data

    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 bankstatemently.com. Calling this again for the same document updates your existing rating without clearing feedback already submitted for it. Returns the stored rating state in the response — there is no separate tool to read your own rating back. Every response includes a "summary" field: use it as the single source of truth for what happened.

  • request_uploadRequest Upload URL

    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_url equivalent for this host) — e.g. a code-execution sandbox that can see the file on disk but has no URL for it. Playbook: (1) check your sandbox's uploads/attachments directory first — if the file isn't there yet, the mount can lag behind the conversation; ask the user to re-attach or wait a moment and check again before calling this tool. (2) Call request_upload to get upload_url and upload_id.…

  • time_seriesTransaction Time Seriesread-only

    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 accounts/products and/or a date range.

  • top_nTop Transaction Groupsread-only

    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 date range.

  • update_memoryUpdate Memorycan change or delete data

    Rename or rescope an existing named memory, or update its situation. The default memory is immutable. Free to use — no credits consumed.

Signals

Stars
1
Forks
0
Open issues
0
Last commit
Oct 10, 2026 (20 days ago)
Last release
Oct 6, 2026 (24 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.bankstatemently/bankstatemently-mcp
Version
2.1.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Bankstatemently running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Bankstatemently?

CallGet help
Cite this page

Bankstatemently MCP server. Agent Mart. https://agentmart.dev/connectors/bankstatemently-bankstatemently-mcp (last updated 2026-10-25)