Skip to main content
Glama

Summarize a page of payment totals

list_payments
Read-onlyIdempotent

Use this when the user wants to aggregate one bounded page of recorded Veterical payments by currency and status; this is not a full revenue or settlement report. Returns totals and counts by currency and status for one page of payments, newest first (20 by default), with a cursor for the rest (no client, pet or card data). Not for refunds or charging a client.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPayments to summarize in this page, from 1 to 100; defaults to 20
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
endTimeNoOnly payments dated before this ISO 8601 date-time
clinicIdNoOnly this clinic (24 lowercase hexadecimal characters); every clinic when absent
startTimeNoOnly payments dated at or after this ISO 8601 date-time

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalsYesOne row per currency and status within this page only. Transaction identifiers and dates, animal or owner linkage, line items, discounts, payment methods, card or bank data and processor identifiers are never returned.
nextCursorYesCursor for the next page; null on the last page
recordsSummarizedYesHow many payment records this page summarized
moreRecordsAvailableYesTrue when older payments exist beyond this page

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / totals / items / properties / amountMissingCount
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / totals / items / required
      Previous value: -[
      -  "currency",
      -  "status",
      -  "paymentCount",
      -  "totalAmount"
      -]New value: +[
      +  "currency",
      +  "status",
      +  "paymentCount",
      +  "totalAmount",
      +  "amountMissingCount"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / clinicId / description
      Previous value: -"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"New value: +"Only this clinic (24 lowercase hexadecimal characters); every clinic when absent"
    • changedInput schema / properties / cursor / description
      Previous value: -"nextCursor from the previous page with the same filters; omit for the first page"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
    • changedOutput schema / properties / nextCursor / description
      Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
  3. Changed9 schema fields changed
    • changedInput schema / properties / clinicId / description
      Previous value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"
    • changedInput schema / properties / cursor / description
      Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page"
    • changedInput schema / properties / endTime / description
      Previous value: -"Only records dated before this ISO 8601 time"New value: +"Only payments dated before this ISO 8601 date-time"
    • addedInput schema / properties / limit / description
      Added value: +"Payments to summarize in this page, from 1 to 100; defaults to 20"
    • changedInput schema / properties / startTime / description
      Previous value: -"Only records dated at or after this ISO 8601 time"New value: +"Only payments dated at or after this ISO 8601 date-time"
    • addedOutput schema / properties / moreRecordsAvailable / description
      Added value: +"True when older payments exist beyond this page"
    • addedOutput schema / properties / nextCursor / description
      Added value: +"Pass as cursor to get the next page; null on the last page"
    • addedOutput schema / properties / recordsSummarized / description
      Added value: +"How many payment records this page summarized"
    • addedOutput schema / properties / totals / description
      Added value: +"One row per currency and status within this page only. Transaction identifiers and dates, animal or owner linkage, line items, discounts, payment methods, card or bank data and processor identifiers are never returned."
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context — and it does: results are newest-first, 20 per page by default, a cursor fetches the rest, and no client/pet/card data is returned. Only the exact shape of the totals/counts is left unspecified, and that is largely carried by the output schema.

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

Conciseness4/5

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

Three sentences, each load-bearing: scope, return/ordering/pagination behavior, and exclusions. The middle sentence is denser than ideal with its parenthetical, but nothing is redundant and the critical scoping constraint is front-loaded.

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?

With an output schema present, the description need not enumerate return fields, and it still covers pagination, ordering, default page size, data exclusions, and filter semantics for a tool whose parameters are all optional. Nothing an agent needs in order to call this correctly is missing.

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 all five parameters (limit, cursor, startTime, endTime, clinicId) are already documented in the schema, which sets the baseline at 3. The description adds only the default page size of 20 and the newest-first ordering, not new per-parameter meaning.

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 ('aggregate ... recorded Veterical payments by currency and status') and explicitly bounds the scope as 'one bounded page', distinguishing it from a full revenue or settlement report. An agent can tell this apart from siblings like list_subscriptions or show_clinic_overview without opening a 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?

Gives both when-to-use ('when the user wants to aggregate one bounded page') and explicit when-not ('this is not a full revenue or settlement report', 'Not for refunds or charging a client'). The exclusions actively route the agent away from misuse rather than leaving it to inference.

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.

Resources