Connect Bankstatemently and your agent gets 16 tools, among them aggregate, categorize_statement, compare. It answers at https://api.bankstatemently.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Convert PDF bank statements into structured transactions, accounts, and balances.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
aggregate | 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 Inputs: filter, metric, scope |
categorize_statement | 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 Inputs: document_id |
compare | 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 Inputs: filterA, filterB, metric, scope |
convert_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 Inputs: pdf_file, pdf, pdf_url, upload_id, upload_ids, password |
dismiss_statement | 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 di Inputs: document_id |
evaluate_benchmark | 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 overal Inputs: statement_id, content_hash, accounts, transactions |
get_credits | 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 process |
get_statement | 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 Inputs: document_id, output_format, data_mode, offset, limit |
group_by | Group transactions by a dimension (month/category/merchant/account/currency) and apply a metric to each group. Results are per-currency. Scope defaults to all your completed statements; pass "scope" to narrow to specific accounts/products a Inputs: filter, dimension, metric, scope |
list_statements | Browse your previously converted bank statements with pagination and optional status filter. Inputs: limit, offset, status |
list_transactions | 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; pa Inputs: filter, limit, sort_by, order, scope |
list_transfers | 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 successio Inputs: amountMin, scope |
rate_statement | Report how well a previously converted bank statement was parsed: submit a 1-5 rating, optionally with structured feedback (only accepted when the rating is 3 or below) and use-case tags. Calling this again for the same document updates you Inputs: document_id, rating, feedback_categories, feedback, use_case, use_case_other |
request_upload | 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 co Inputs: count |
time_series | 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. Inputs: filter, bucket, metric, scope |
top_n | 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. Inputs: filter, dimension, metric, n, scope |
Every block below points at https://api.bankstatemently.com/mcp. Pick your client and copy.
claude mcp add --transport http bankstatemently https://api.bankstatemently.com/mcp
{
"mcpServers": {
"bankstatemently": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.bankstatemently.com/mcp"]
}
}
}{
"mcpServers": {
"bankstatemently": {
"url": "https://api.bankstatemently.com/mcp"
}
}
}{
"servers": {
"bankstatemently": {
"type": "http",
"url": "https://api.bankstatemently.com/mcp"
}
}
}{
"context_servers": {
"bankstatemently": {
"url": "https://api.bankstatemently.com/mcp"
}
}
}{
"mcpServers": {
"bankstatemently": {
"serverUrl": "https://api.bankstatemently.com/mcp"
}
}
}{
"mcpServers": {
"bankstatemently": {
"url": "https://api.bankstatemently.com/mcp"
}
}
}name: Bankstatemently
version: 0.0.1
schema: v1
mcpServers:
- name: Bankstatemently
type: streamable-http
url: https://api.bankstatemently.com/mcp{
"mcpServers": {
"bankstatemently": {
"httpUrl": "https://api.bankstatemently.com/mcp"
}
}
}{
"mcpServers": {
"bankstatemently": {
"type": "http",
"url": "https://api.bankstatemently.com/mcp"
}
}
}{
"mcpServers": {
"bankstatemently": {
"url": "https://api.bankstatemently.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.bankstatemently.com%2Fmcp&type=streamable_http&id=bankstatemently&name=Bankstatemently
It answered our last check on 18 October 2026 in 264 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
16, as returned by the server's own tools/list on 31 August 2026: aggregate, categorize_statement, compare, convert_statement, dismiss_statement, evaluate_benchmark, get_credits, get_statement, and 8 more.
It answered our last check on 18 October 2026 in 264 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.bankstatemently.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.bankstatemently. Endpoint host: api.bankstatemently.com. ARD identifier: urn:air:io.github.bankstatemently:mcp:bankstatemently-mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.