# Qut Pay (Kaspi QR payments) (remote · api.qut.kz)

Kaspi QR payments (Kazakhstan) via Qut Pay: create invoices, check status, refund, sandbox tests.

- Trust score: 70/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.qut.kz`: 70/100 (this document), [markdown](https://verifymcp.io/servers/kz-qut-mcp/api.md), [page](https://verifymcp.io/servers/kz-qut-mcp/api)
- npm · `@qutpay/mcp`: 33/100, [markdown](https://verifymcp.io/servers/kz-qut-mcp/qutpay-mcp.md), [page](https://verifymcp.io/servers/kz-qut-mcp/qutpay-mcp)

## Channel facts

- Endpoint: `https://api.qut.kz/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (qutpay_refund_invoice).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1010 tokens (~72/item across 14 items; 9 tools + 5 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 80/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 41% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Qut Pay (Kaspi QR payments) MCP server?

Qut Pay (Kaspi QR payments) is a hosted endpoint at https://api.qut.kz/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http kz-qut-mcp 'https://api.qut.kz/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "kz-qut-mcp": {
      "url": "https://api.qut.kz/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "kz-qut-mcp": {
      "type": "http",
      "url": "https://api.qut.kz/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.kz-qut-mcp]
url = "https://api.qut.kz/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kz-qut-mcp": {
      "type": "remote",
      "url": "https://api.qut.kz/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add kz-qut-mcp --url 'https://api.qut.kz/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  kz-qut-mcp:
    url: "https://api.qut.kz/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "kz-qut-mcp": {
      "Transport": "http",
      "Url": "https://api.qut.kz/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add kz-qut-mcp -t streamable-http -u 'https://api.qut.kz/mcp'
```

### Other

```json
{
  "mcpServers": {
    "kz-qut-mcp": {
      "type": "http",
      "url": "https://api.qut.kz/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 66, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-26 (score 66)

First indexed and scored.

## MCP tools (9)

### `qutpay_account` (~41 tokens)

Qut Pay account and mode

Returns the organization behind the API key: mode (sandbox or live), tariff and limits, connected Kaspi cashiers, provider status. Call this first.

### `qutpay_create_invoice` (~252 tokens)

Create a Kaspi invoice

Creates 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 creates a second invoice. Amount in KZT, ≤ 2 decimals; whole tenge for kind="phone".

Input parameters:

- `amount` (number, required): Amount in KZT, e.g. 2500 or 1500.5
- `customer` (object)
- `description` (string): Shown to the customer, e.g. "Order #1001"
- `externalOrderId` (string): Your order id; later GET /invoices?externalOrderId finds it
- `failUrl` (string)
- `idempotencyKey` (string): Unique per order; same key → same invoice
- `kind` (string): "qr" (default) or "phone" (invoice pushed into the customer's Kaspi.kz app; needs customer.phone)
- `metadata` (object): Returned unchanged in webhooks
- `successUrl` (string)

### `qutpay_get_invoice` (~70 tokens)

Get invoice status

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.

Input parameters:

- `id` (string, required)
- `live` (boolean)

### `qutpay_list_invoices` (~97 tokens)

List invoices

Lists invoices of the organization, newest first. Filter by status, externalOrderId, date range (ISO), limit ≤ 50, offset for paging.

Input parameters:

- `externalOrderId` (string)
- `from` (string): ISO date/time, inclusive
- `limit` (integer)
- `offset` (integer)
- `status` (string)
- `to` (string): ISO date/time, exclusive

### `qutpay_cancel_invoice` (~44 tokens)

Cancel an open invoice

Closes a pending invoice. A QR may still be paid until expiresAt — then invoice.paid arrives anyway; handle it.

Input parameters:

- `id` (string, required)

### `qutpay_refund_invoice` (~103 tokens)

Refund a paid invoice

Full 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.

Input parameters:

- `amount` (number): Omit for a full refund
- `confirm` (boolean): Required (true) with a live key
- `id` (string, required)
- `reason` (string)

### `qutpay_simulate_payment` (~66 tokens)

Simulate a payment (sandbox only)

Completes 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.

Input parameters:

- `id` (string, required)
- `status` (string): Default "paid"

### `qutpay_list_subscriptions` (~44 tokens)

List scheduled invoices (subscriptions)

Read-only list of recurring invoice schedules. Needs the subscriptions:manage scope on the key.

Input parameters:

- `limit` (integer)
- `status` (string)

### `qutpay_get_subscription` (~36 tokens)

Get one subscription

Reads a recurring invoice schedule by id (sub_…). Needs the subscriptions:manage scope.

Input parameters:

- `id` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/kz-qut-mcp/api#diagnostics

## Score history

- 2026-11-05: 70
- 2026-11-04: 70
- 2026-11-03: 69
- 2026-11-02: 69
- 2026-11-01: 68
- 2026-10-31: 68
- 2026-10-30: 67
- 2026-10-29: 67
- 2026-10-28: 67
- 2026-10-27: 66
- 2026-10-26: 66

## Common questions

### What is the Qut Pay (Kaspi QR payments) MCP server?

Qut Pay (Kaspi QR payments) is an MCP server listed in the public MCP registry as kz.qut/mcp. Kaspi QR payments (Kazakhstan) via Qut Pay: create invoices, check status, refund, sandbox tests. This page covers its hosted endpoint (https://api.qut.kz/mcp).

### Is the Qut Pay (Kaspi QR payments) MCP server safe to use?

Qut Pay (Kaspi QR payments) scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Qut Pay (Kaspi QR payments) MCP server expose?

Qut Pay (Kaspi QR payments) exposes 9 tools: qutpay_account, qutpay_create_invoice, qutpay_get_invoice, qutpay_list_invoices, qutpay_cancel_invoice, and 4 more. Their descriptions and schemas cost roughly 753 tokens of context every time the server is loaded.

### Does the Qut Pay (Kaspi QR payments) MCP server require authentication?

No. We connected to Qut Pay (Kaspi QR payments) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Qut Pay (Kaspi QR payments) MCP server still maintained?

Qut Pay (Kaspi QR payments) is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.qut.kz/mcp
- Authorisation metadata: https://api.qut.kz/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/kazprose/qutpay-docs
- Website: https://api.qut.kz/docs/guide/en/mcp
- Changelog RSS feed: https://verifymcp.io/servers/kz-qut-mcp/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/kz-qut-mcp/api.json
- HTML version of this page: https://verifymcp.io/servers/kz-qut-mcp/api
