Skip to main content
Glama
klodr

mercury-invoicing-mcp

mercury_list_transactions

Read-only

List transactions for a Mercury deposit account, with optional filters (date range, status, search).

Instructions

List transactions for a Mercury deposit account, with optional filters (date range, status, search).

USE WHEN: auditing deposit-account activity, reconciling a statement, or building a per-account ledger view. Filters server-side: status, start, end, search, limit, offset.

⚠️ Omitting start does NOT mean "all history". Mercury silently returns only a recent window — roughly the last month — with nothing in the response to say it truncated. Observed on a real account: 60 transactions without start, 391 for the same account with start set. Always pass start when auditing a period, and page with offset until a call returns fewer than limit rows.

DO NOT USE: for IO Credit transactions (use mercury_list_credit_transactions, which targets the IO Credit account surface). For Treasury, use mercury_list_treasury_transactions.

RETURNS (default detail: "compact"): { transactions: [{ id, amount, status, kind, postedAt, counterpartyName, categoryName, hasAttachment, ... }] }. hasAttachment is always present, true or false — it answers "which transactions are still missing a receipt". Receipt URLs are never returned here (a pre-signed S3 URL is ~2.4 kB and is a 12-hour bearer credential); get one deliberately via mercury_get_transaction_attachment. Pass detail: "full" for every Mercury field.

Input Schema

NameRequiredDescriptionDefault
endNoFilter posted on/before this date (YYYY-MM-DD)
limitNoMax results to return (1-500). Default: 500
startNoFilter posted on/after this date (YYYY-MM-DD)
detailNoPayload shape. "compact" (default) projects to identifying fields and reports receipts as a boolean. "full" returns every Mercury field — attachment URLs are stripped in both modes.
offsetNoPagination offset
searchNoSearch query (counterparty name, memo, etc.)
statusNoFilter by transaction status
accountIdYesThe Mercury account ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.20.3
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "Payload shape. \"compact\" (default) projects to identifying fields and reports receipts as a boolean. \"full\" returns every Mercury field — attachment URLs are stripped in both modes.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  2. Addedv0.15.6
  3. Removedv0.15.5
  4. Addedv0.15.4
  5. Removedv0.15.2
  6. Changed1 schema field changedv0.12.0
    • addedInput schema / additionalProperties
      Added value: +false
  7. First observedv0.9.1

TDQS

A4.7/5.0
Behavior4/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses that omitting `start` silently truncates to a recent window with no response signal, gives a concrete observed 60-vs-391 data point, prescribes offset paging until a short page, and explains that attachment URLs are deliberately stripped because they are 12-hour bearer credentials. That is exactly the kind of hidden behavior annotations cannot convey. It stops short of 5 only because it does not state auth/permission requirements or rate limits.

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-loaded with the one-line purpose, then clearly sectioned USE WHEN / warning / DO NOT USE / RETURNS. Every sentence carries operational weight — the truncation warning, sibling redirects, and receipt-URL rationale all change agent behavior; no filler.

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?

With no output schema, the description compensates by sketching the compact response shape and confirming `hasAttachment` is always present, plus where receipt URLs must be fetched instead. Adequate for an 8-parameter read tool; only minor gaps remain (error behavior, exact default window boundary).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds semantics the schema lacks: the trap that `start` is effectively required for a bounded audit, that `offset` must be used to page past `limit`, which filters run server-side, and what `detail: "compact"` vs `"full"` actually changes in the payload. This materially changes how the parameters must be set.

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 (list transactions for a Mercury deposit account) and immediately names the account surface it covers. It explicitly disambiguates from the two nearest siblings, mercury_list_credit_transactions and mercury_list_treasury_transactions, so an agent can route correctly without opening schemas.

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?

Gives explicit USE WHEN scenarios (auditing, reconciliation, ledger view) and an explicit DO NOT USE section naming the alternative tools for the cases it does not cover. Nothing about tool selection 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.