Skip to main content
Glama
nz-openbank-mcp

nz-openbank-mcp

Search Transactions

txn_search_transactions
Read-only

Search settled bank transactions by case-insensitive text match on description or merchant name within a date window, returning matching transactions for free-text lookups.

Instructions

Case-insensitive substring search across description and merchant name.

Searches settled transactions in a date window until limit matches are found. Without start_date the window is the 90 NZ days ending on end_date, or ending today. Use for free-text lookups; prefer get_transactions when filtering by account or amount. Returns {"transactions": [...], "truncated": bool} with the same shape and meaning as get_transactions.

Input Schema

NameRequiredDescriptionDefault
limitNoMax matches returned, 1 to 500 (default 50).
queryYesSubstring to match (case-insensitive).
end_dateNoLatest NZ day as YYYY-MM-DD (inclusive) or an ISO 8601 timestamp (UTC if it has no offset); defaults to no upper bound.
start_dateNoEarliest NZ day as YYYY-MM-DD (inclusive) or an ISO 8601 timestamp (UTC if it has no offset); defaults to 90 days back.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.1.6
    • addedInput schema / properties / end_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Latest NZ day as YYYY-MM-DD (inclusive) or an ISO 8601\ntimestamp (UTC if it has no offset); defaults to no upper bound."
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Max matches returned (default 50)."New value: +"Max matches returned, 1 to 500 (default 50)."
    • addedInput schema / properties / limit / maximum
      Added value: +500
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / start_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Earliest NZ day as YYYY-MM-DD (inclusive) or an ISO 8601\ntimestamp (UTC if it has no offset); defaults to 90 days back."
      +}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

readOnlyHint already covers the safety profile, so the description earns credit for adding substantive behavior: only settled transactions are searched (pending ones excluded despite sibling pending tools), matching stops once `limit` is reached, and the default window is 90 NZ days ending today. It stops short of covering performance or ordering of results, so it is not exhaustive.

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?

Front-loads the matching semantics, then the date-window behavior, then the usage routing and return shape. Every sentence carries information an agent needs; no filler.

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?

An output schema exists, yet the description still names the return shape and its equivalence to get_transactions, which is useful for chaining. Combined with the settled-only constraint and window defaults, an agent can call this correctly without further reading.

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 all four parameters are already documented, including the 90-day default and the 1-500 range on limit. The description restates the default window rather than adding new syntax or format detail, so baseline 3 applies.

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: case-insensitive substring search across description and merchant name, restricted to settled transactions. The scope plus the explicit contrast with get_transactions lets an agent tell the two apart without opening either schema.

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

Usage Guidelines5/5

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

"Use for free-text lookups; prefer get_transactions when filtering by account or amount" gives both the when-to-use and the named alternative with the condition that selects it. Nothing is left to inference.

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