Skip to main content
Glama
bankstatemently

bankstatemently

Official

Adjudicate Transfers

adjudicate_transfers
Destructive

Resolve ambiguous transfer pairs by supplying a user verdict or letting the AI judge decide, returning an updated transfer list.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pairsNoPairs as list_transfers returned them. Required with verdict; omit to judge every open pair.
scopeNoOptional structural scope (WHO × WHEN). Omit to search across all your completed statements. "accounts" is a list of account/product chips ({ kind: "account" | "product", id }, the id of an account descriptor or product returned by a tool); "dateRange" bounds by transaction date (YYYY-MM-DD).
verdictNoThe user's verdict. Omit to let the judge decide.
amountMinNoSame floor as list_transfers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, so the agent already knows this mutates state; the description adds that the result is 'the updated list_transfers answer,' implying persistence of verdicts. However it never states what the adjudication actually changes, whether verdicts are reversible, or whether omitting pairs silently judges everything — gaps that matter for a destructive tool.

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?

Three short sentences, front-loaded with the core action, then the verdict rule, then the return value. No filler or restatement of the title.

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?

For a destructive, nested-schema tool with no output schema, the description covers the verdict branch and return shape but omits the consequences of adjudication (what is written, whether rejected pairs are removed) and the pairs-omitted behavior. Adequate to invoke, thin on consequences.

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 coverage is 100%, so the schema already documents pairs, scope, verdict and amountMin, making 3 the baseline. The description restates the verdict omission rule already present in the schema and does not explain that omitting pairs judges every open pair, nor what amountMin/scope interact with beyond the schema text.

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?

States a specific verb and resource ('Decide whether ambiguous pairs ... are transfers') and ties the input to the sibling tool that produced it ('pairs from list_transfers'), so an agent can distinguish it from list_transfers without opening the schema.

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?

Gives a clear conditional for the key decision: 'Pass "verdict" when the user has told you; leave it out to let the AI judge decide.' It implies the tool is used after list_transfers surfaces ambiguity, but it never explicitly says when not to call it or names an alternative path for resolving pairs manually.

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