Skip to main content
Glama

Get transactions

mofi_transactions_get
Read-onlyIdempotent

Find an owned transaction by transactionId, list all, or AND untagged where predicates. Legacy id lookups and tagged selectors remain accepted; continue legacy cursors with the same selector. Search matches description or merchant substrings. Periods require startDate, endDate and timezone. Pages contain 1-1000 rows (default 500); totalCount counts all matches. Money uses { amount, currency }: exact decimal magnitude plus CREDIT/DEBIT direction. operationType is raw; category carries provider and normalized values. Unknown/generic PURCHASE codes add no classification; known category labels can. Conflicting signals have no economic type; mixed vehicle tax/fee labels are not guessed. statementId links are included. Mofi stores POSTED when status is missing. For the same user, connection, and account, reimports with the same provider ID update the existing row; no prior versions are retained. Distinct IDs are not linked or deduplicated as pending-to-posted transitions. Pass page.nextCursor unchanged.

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": {
      "mode": "<mode>"
    },
    "name": "mofi_transactions_get"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoLegacy alias for transactionId.
modeYesfindOne requires transactionId (legacy id accepted instead); query requires where; findAll accepts page.
pageNoKeyset page.
whereNoRequired for query. Untagged AND predicates or legacy tagged selectors.
transactionIdNofindOne UUID; replaces legacy id.

Output Schema

NameRequiredDescriptionDefault
dataNo
metaNo
modeNo
pageNo
errorNoTyped error (code, message, retryable, details); set when isError is true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare a safe, idempotent read, and the description still adds substantial behavior beyond them: page size bounds, what totalCount counts, money encoding with CREDIT/DEBIT direction, raw operationType versus normalized category, the POSTED default when status is missing, and statementId linkage. Most importantly it discloses reimport dedupe semantics (same user/connection/account plus provider ID updates in place, no prior versions kept) and that pending-to-posted transitions are not linked, which an agent could not infer from annotations alone.

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

Conciseness3/5

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

Everything is packed into one undifferentiated block with no grouping of modes, pagination, and result semantics, so the reader must parse a wall of compressed clauses. Individual sentences are dense but not padded, and the mode enumeration is front-loaded. Fragments like 'known category labels can' are grammatically incomplete and cost clarity.

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

Completeness4/5

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

For a five-parameter tool with a nested discriminated where union and an output schema, the definition covers modes, pagination, cursor continuity, and data interpretation thoroughly. The notable omission is result ordering: keyset pagination implies a defined sort order, and the description never states what it is. findOne miss/error behavior is also unstated.

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 the enum modes, page limits, cursor handling, and the discriminated where variants are already fully documented. The description largely restates these (search matches description or merchant substrings, periods require three fields, 1-1000 rows default 500). Its genuinely additive content, such as the meaning of generic PURCHASE codes and conflicting classification signals, concerns result interpretation rather than parameter meaning.

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

Purpose4/5

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

The opening sentence names a specific verb and resource (find an owned transaction) and enumerates the three access shapes: findOne by transactionId, list all, or AND untagged where predicates. It clearly separates findOne from the list/query paths. It stops short of stating how it differs from siblings such as mofi_spending_get, and the telegraphic phrasing ('AND untagged where predicates') takes a second read.

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 usable conditions: legacy id and tagged selectors remain accepted, legacy cursors must be continued with the same selector, periods require startDate/endDate/timezone, and page.nextCursor must be passed unchanged. It also points at mofi_classifications_get as the source of normalizedCode. It never says when to prefer this over mofi_spending_get or mofi_statements_get, and offers no explicit exclusions.

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.