Skip to main content
Glama

Bank statement PDF to transactions

bank_statement
Read-onlyIdempotent

Extract structured data from text-based bank statement PDFs at public URLs, including balances, transactions, and balance checks, with an Excel link for all rows.

Instructions

Read bank statement PDFs at public URLs into structured data. Each item is one statement: bank, masked account number, currency, period, opening/closing balance, total credits/debits, a balance check (ok or mismatch), and transactions (date, description, debit, credit, amount, balance; first 150 shown here) plus an Excel link with all rows. Text-based PDFs only, not scans. Cost: $15.00 per 1,000 statements ($0.015 each) on the user's Apify account. Latency: usually 10-40 s.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "pdf_urls": "<pdf_urls>"
    },
    "name": "bank_statement"
  }
}

Input Schema

NameRequiredDescriptionDefault
pdf_urlsYesDirect public links to PDF files (https://...). The file must download without a login.
date_orderNoHow to read dates like 03/04/2026: auto-detect, day-first or month-first.auto
pdf_passwordNoOptional. Password for protected PDFs. Leave empty otherwise.
max_statementsNoStop after this many statements.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations only cover the safety profile (readOnly, idempotent, non-destructive), and the description adds the behaviours an agent actually needs: per-statement billing, the 150-transaction preview cap with an Excel link containing all rows, a balance-check field that can report mismatch, and typical runtime. These are operational facts found nowhere in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by output shape, constraints and cost in a tight sequence with no filler. The long enumeration of returned fields is partially redundant since an output schema exists, which keeps it short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter, fully described schema with an output schema, the description covers the remaining unknowns: input restrictions (text PDFs, public URLs), output truncation and the full-data Excel link, pricing model, and expected latency. An agent has enough to invoke it correctly and set user expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so pdf_urls, date_order, pdf_password and max_statements are already explained by the schema itself. The description adds only marginal meaning, such as the public-link constraint reinforcing the pdf_urls requirement and the 150-row preview implying output truncation rather than input limits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource (read bank statement PDFs from public URLs into structured data) with the unit of output defined: one item per statement, listing bank, masked account, currency, period, balances, totals and transactions. That field list plainly separates it from generic PDF or document siblings such as pdf_tables, invoice and payslip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete eligibility rules that determine whether the tool can be used at all: text-based PDFs only, not scans, and links must be public and downloadable without a login. It also sets cost and latency expectations (roughly $0.015 per statement, 10-40 s). It stops short of explicitly saying when to pick a sibling extractor instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.