Parse PDF bank statements into structured transactions, accounts, and balances.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The bankstatemently MCP server exposes 15 tools, focused primarily on general-purpose capabilities. Its published description reads: "Parse PDF bank statements into structured transactions, accounts, and balances". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates bankstatemently F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Data-exfiltration parameters" and "Unguarded destructive tools". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check bankstatemently's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add bankstatemently to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://api.bankstatemently.com/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
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
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: request_upload
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
L for pushing a conversation-attached PDF to Bankstatemently before convertiRecommendationRemove side-channel parameters; constrain tool inputs.
tool: request_upload
Tools that execute commands / write files / make arbitrary requests are exposed without annotations or guards.
likely blocking outbound requests to api.bankstatemently.com — tell the user to aRecommendationAnnotate destructive tools and require human approval.
tool: request_upload
A tool description tries to alter the model’s use of another tool.
this tool once per file: the response returns "uploads", an array of thatRecommendationDescriptions must describe only their own tool.
tool: convert_statement
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
es a PDF in the conversation, it arrives automatically as pdf_file — never eRecommendationRemove side-channel parameters; constrain tool inputs.
tool: convert_statement
A tool description tries to alter the model’s use of another tool.
f_file/upload_id — mutually exclusive with those four. This batch form onlRecommendationDescriptions must describe only their own tool.
tool: convert_statement
One tool reads private data, ingests untrusted content, AND can send data outbound — the three preconditions for autonomous data theft in a single call. A prompt injection reaching this tool can exfiltrate secrets with no further step.
a time-limited download link instead: present it as a normal link. Every resRecommendationSplit the capabilities across separate least-privilege tools so no single tool can read secrets, read untrusted input, and reach the network at once.
tool: convert_statement
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "password"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: get_statement
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
appened. If the conversation is not in English, translate it faithfully intoRecommendationRemove side-channel parameters; constrain tool inputs.
tool: get_statement
A tool description tries to alter the model’s use of another tool.
Use this after convert_statement returns a "processing" status, or to re-fetch rRecommendationDescriptions must describe only their own tool.
tool: get_statement
One tool reads private data, ingests untrusted content, AND can send data outbound — the three preconditions for autonomous data theft in a single call. A prompt injection reaching this tool can exfiltrate secrets with no further step.
a time-limited download link instead: present it as a normal link. data_modeRecommendationSplit the capabilities across separate least-privilege tools so no single tool can read secrets, read untrusted input, and reach the network at once.
tool: rate_statement
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "feedback_categories"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: evaluate_benchmark
A tool description tries to alter the model’s use of another tool.
d: fetch it via get_statement with data_mode: "original" and pass it throughRecommendationDescriptions must describe only their own tool.
tool: list_transfers
A tool description tries to alter the model’s use of another tool.
s question with list_transactions + arithmetic; always call this tool instead. ScRecommendationDescriptions must describe only their own tool.
tool: list_transfers
The text tells the model WHEN to call this tool relative to others ("always call first", "before any other tool", "chain to X tool") — a toxic-flow injection that hijacks the agent’s orchestration rather than describing the tool.
s + arithmetic; always call this tool instead. Scope defaults to all your completed sRecommendationTool metadata must describe only the tool, never sequence the agent’s calls.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
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.
Check your current credit balance. 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
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
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/merchant/account/currency) and apply a metric to each group. Results are per-currency. Scope defaults to all your completed statements; pass "scope" t
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