Skip to main content
Glama

Qut Pay (Kaspi QR payments)

Get invoice status

qutpay_get_invoice
Read-only

Reads one invoice by id (inv_…). live=true asks Kaspi right now instead of the cached status. Status flow: new → pending → paid | failed | expired | cancelled; paid → partially_refunded → refunded.

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": {
      "id": "<id>"
    },
    "name": "qutpay_get_invoice"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
liveNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint and openWorldHint, but the description adds real value: the live flag triggers an outbound call to Kaspi (implying latency/cost and freshness trade-off), and the status state machine documents the possible values and transitions an agent will encounter. Missing is any note on failure modes (unknown id, Kaspi outage) or what happens when a live lookup disagrees with the cache.

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 clauses in two sentences, front-loaded with the action, then the parameter nuance, then the state flow. No filler and nothing restated from the schema.

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 and no parameter descriptions in the schema, the description covers the essentials: how to identify the invoice, the live flag, and the status domain. It omits what the returned object contains (amount, currency, timestamps, payment method), which would round it out for an agent that must act on the result.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does: it gives the id format (inv_…) and fully explains the semantics of live (bypass cache, query upstream). The mention of cached-vs-live also implies default behavior for live when omitted, though it never states the default explicitly.

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?

"Reads one invoice by id (inv_…)" states a specific verb plus resource and scopes it to a single record, which is exactly what separates it from sibling qutpay_list_invoices. The id-prefix format hint further pins down the target.

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?

It clearly explains when to set live=true (fetch fresh from Kaspi instead of the cached status), which is the only real usage decision for this tool. It stops short of naming alternatives or exclusions — e.g. no pointer to qutpay_refund_invoice / qutpay_cancel_invoice for acting on a paid invoice.

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.