
Qut Pay MCP server
Which MCP servers are Qut Pay's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-29
- Registry namekz.qut/mcpverified in the MCP registry
The registry name sits under qut.kz. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-29
- Tools9
- Server calls itselfqutpay
- Server version0.1.2
- Protocol version2025-06-18
On 2026-10-29 the server answered initialize and tools/list without a sign-in. First answer in 707 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 5 of the 7 days it takes to judge reliability.
Once connected
- Keep approval on for qutpay_cancel_invoice: they delete, send or pay without saying so.
- qutpay_create_invoice, qutpay_cancel_invoice change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 8 of 9 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 5 so far
- Use614 npm downloads a week
- Answeredmeasuring5 of the 7 daily checks it takes to print a share
- Median first answer972 ms
- Space in an agent's context≈ 1,310 tokensthe definitions of all its tools (9), which an agent carries on every turn
- Tool definitionsB · 85 of 100
- Typed results0 of 9 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 8 of 9
What an agent can do with it
- not sure · Accept Kaspi QR payments on websites
- not sure · Send payment invoices through a Telegram bot
- cannot · Pass payment webhooks into 1C or Bitrix24
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that delete, send or pay, marked as not destructive: qutpay_cancel_invoice
- Tools that change data, on a server that answers without a sign-in: qutpay_create_invoice, qutpay_cancel_invoice
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
qutpay_accountReturns the organization behind the API key: mode (sandbox or live), tariff and limits, connected Kaspi cashiers, provider status. Call this first.
qutpay_create_invoiceCreates an invoice (QR by default, or pushed to the customer's Kaspi.kz app with kind="phone"). Returns payUrl (hosted pay page), qrImageUrl, deepLink, expiresAt (~3 min). Always pass idempotencyKey (e.g. "order-1001") so a retry never…
qutpay_get_invoiceReads 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.
qutpay_list_invoicesLists invoices of the organization, newest first. Filter by status, externalOrderId, date range (ISO), limit ≤ 50, offset for paging.
qutpay_cancel_invoiceCloses a pending invoice. A QR may still be paid until expiresAt — then invoice.paid arrives anyway; handle it.
qutpay_refund_invoiceFull refund (omit amount) or partial refund of a paid invoice. Needs the refunds:write scope. With a LIVE key real money is returned to the customer, so confirm=true is required and the merchant must have asked for this refund explicitly.
qutpay_simulate_paymentCompletes a sandbox invoice as paid / failed / expired without Kaspi, so the whole flow including the merchant's webhook can be tested. Refuses to run with a live key.
qutpay_list_subscriptionsRead-only list of recurring invoice schedules. Needs the subscriptions:manage scope on the key.
qutpay_get_subscriptionReads a recurring invoice schedule by id (sub_…). Needs the subscriptions:manage scope.
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"qut": {
"type": "http",
"url": "https://api.qut.kz/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http qut https://api.qut.kz/mcpclaude.ai, ChatGPT and other clients: add https://api.qut.kz/mcp as a custom connector in the settings.
Also shipped through: npm
OpenAPI spec
24 paths, read 2026-10-29. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.