Skip to main content
Glama

Bankstatemently

List Transactions

list_transactions
Read-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 transaction.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
orderNo
scopeNo
filterNo
sort_byNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeYes
transactionsYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds valuable behavioral details: the 50-row cap, that responses name the evaluated scope (document count + date range), and that each row includes its content_hash for citation. These go beyond annotations and inform the agent about limits and outputs, fully supporting transparency.

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

Conciseness5/5

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

The description is well-structured and front-loaded: it defines the key resource, states the action and cap, then default behavior, response details, and finally a redirect for credits. Every sentence conveys unique, necessary information without redundancy. It is concise given the tool's complexity.

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

Completeness3/5

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

While the description covers scope, cap, and response details, it fails to mention the 'filter' parameter, which is a core capability for narrowing by category, amount, direction, etc. It also omits sorting. Given an output schema exists, return values are defined, but parameter usage is incomplete. A knowledgeable agent would need to open the schema to understand all filtering options, making this a partial gap.

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 0%, so the description must compensate. It adds meaning for 'scope' by explaining it narrows to accounts/products and a date range, and hints at 'limit' via the 50-row cap. However, it entirely omits the 'filter' parameter (text, category, amount, etc.) and 'order'/'sort_by', leaving those to the schema alone. Partial compensation for a low-coverage schema merits a 3.

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?

The description states exactly what the tool does: 'Return a filtered list of transactions across your converted statements, capped at 50 rows.' It also defines the resource precisely ('a single line as printed on one account's statement') and implicitly distinguishes from list_transfers by focusing on transactions across converted statements. The explicit note about get_credits clarifies it is not a transaction, aiding differentiation.

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?

The description gives clear usage context: it explains default scope and how to narrow it via 'scope', and explicitly directs quota/credit questions to get_credits. However, it does not mention alternatives like list_transfers or aggregate, so guidance is partial. Still, the get_credits exclusion is a strong when-not signal, earning a 4.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Core tools are cleanly separated by resource: statements, transactions, transfers, credits, and benchmark all have dedicated entry points. The five analytics tools (aggregate, group_by, compare, time_series, top_n) share metric/filter language, but their distinct output shapes and careful descriptions prevent major confusion, with only group_by vs. time_series/top_n occasionally overlapping.

Naming Consistency4/5

Most tools follow a clear snake_case verb_noun pattern such as convert_statement, list_transactions, rate_statement, and dismiss_statement. The analytics tools (aggregate, compare, group_by, time_series, top_n) break that pattern, but they are still recognizable, consistently styled, and form a meaningful cluster.

Tool Count4/5

At 16 tools, this is slightly above the typical 3-15 well-scoped range, but the server covers a broad workflow: upload, conversion, retrieval, categorization, analytics, transfer matching, rating, credits, and benchmarking. Each tool maps to a distinct capability, so the count feels justified rather than bloated.

Completeness4/5

The tool surface covers the full statement lifecycle from upload and conversion through retrieval, categorization, analysis, rating, and dismissal, plus useful side capabilities like credits and benchmark evaluation. Minor gaps exist—no permanent deletion and no way to manually edit category mappings—but dismiss_statement and categorize_statement provide adequate workarounds.