mcpField
Q
Qut Pay (Kaspi QR payments)

Qut Pay (Kaspi QR payments)

Remote
api.qut.kzFinance0Updated 3d ago

About Qut Pay (Kaspi QR payments)

Qut Pay MCP connects AI agents to Qut Pay for Kaspi QR payments in Kazakhstan, using KZT. It supports invoice operations and sandbox payment-flow testing through Qut Pay's API.

Key features

  1. 01Create QR or phone-pushed invoices
  2. 02Check, list, and cancel invoices
  3. 03Issue full or partial refunds
  4. 04Simulate payment outcomes in sandbox
  5. 05Read recurring invoice schedules

Use cases

  1. 01Create Kaspi QR checkout invoices
  2. 02Test payment flows without real transfers
  3. 03Check invoice status or refund a payment

MCP support

The MCP server exposes Qut Pay account, invoice, refund, sandbox simulation, and subscription tools, plus integration resources and prompts. It supports local setup and a hosted Streamable HTTP endpoint.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.qut.kz/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://api.qut.kz/mcpAuth required
Packages
npm@qutpay/mcp0.1.2

Tools

Details

From the project README

@qutpay/mcp — Qut Pay MCP server

Model Context Protocol server for Qut Pay: lets an AI agent (Claude Code, Claude Desktop, Cursor, Windsurf, VS Code Copilot, ChatGPT developer mode…) create Kaspi QR invoices, read their status, refund, and test the whole flow in sandbox through the Qut Pay API. Kazakhstan only, KZT only. Qut Pay is an independent service, not affiliated with Kaspi Bank.

Install

You need an API key from the Qut Pay cabinet (https://qut.kz/app → Integrations → API keys). Start with a sandbox key (qp_test_…) — no real money moves, payments are simulated.

Claude Code:

claude mcp add qutpay -e QUTPAY_API_KEY=qp_test_… -- npx -y @qutpay/mcp

Cursor one-click: Add to Cursor (then set your key). Cursor / Windsurf / Claude Desktop / VS Code (mcp.json, claude_desktop_config.json):

{
  "mcpServers": {
    "qutpay": {
      "command": "npx",
      "args": ["-y", "@qutpay/mcp"],
      "env": { "QUTPAY_API_KEY": "qp_test_…" }
    }
  }
}

The key is read only from the environment and is never printed by the server. Optional QUTPAY_BASE_URL (default https://api.qut.kz).

Remote (hosted) endpoint

No install: https://api.qut.kz/mcp (Streamable HTTP), key in Authorization: Bearer qp_…. Claude Code: claude mcp add --transport http qutpay https://api.qut.kz/mcp --header "Authorization: Bearer qp_test_…"; Cursor/VS Code mcp.json: { "url": "https://api.qut.kz/mcp", "headers": { "Authorization": "Bearer qp_test_…" } }. Without a key the endpoint lists tools and serves docs; tool calls answer unauthorized.

Tools

ToolWhat it does
qutpay_accountOrganization, mode (sandbox/live), tariff and limits, cashiers, provider status — call first
qutpay_create_invoiceCreate an invoice (QR, or pushed to the customer's Kaspi.kz app with kind: "phone"); returns payUrl, qrImageUrl, deepLink, expiresAt. Pass idempotencyKey per order
qutpay_get_invoiceStatus of one invoice (live: true asks Kaspi right now)
qutpay_list_invoicesList with filters: status, externalOrderId, from/to, limit ≤ 50
qutpay_cancel_invoiceClose an open invoice
qutpay_refund_invoiceFull or partial refund (scope refunds:write); with a live key requires confirm: true
qutpay_simulate_paymentSandbox only: mark an invoice paid / failed / expired, webhooks are delivered for real
qutpay_list_subscriptions, qutpay_get_subscriptionRead recurring invoice schedules (scope subscriptions:manage)

Resources: qutpay://skill (agent skill — the integration procedure), qutpay://docs/integration, qutpay://docs/webhook-verify, qutpay://docs/errors, qutpay://docs/openapi. Prompts: integrate-checkout (stack), verify-sandbox (amount).

API keys and webhook endpoints are deliberately not manageable from the MCP server: the merchant creates them in the cabinet, and the agent asks for them.

Typical session

  1. qutpay_account → mode is sandbox.
  2. qutpay_create_invoice { amount: 100, externalOrderId: "test-1", idempotencyKey: "test-1" } → payUrl.
  3. qutpay_simulate_payment { id } → paid; the merchant's webhook receives invoice.paid.
  4. qutpay_get_invoice { id } → paid.

Docs

MIT.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.