Skip to main content
Glama

ZEN MCP

npm version License: MIT

An MCP server that lets AI assistants work with the ZEN.com Payment Gateway: hosted payment links, transaction lookup, refunds, payouts, and reporting.

Project page

Unofficial. This project is not affiliated with, endorsed by, or maintained by ZEN.com.

What it does

Read-only tools:

  • List terminal payment methods and documented currencies.

  • Look up transactions, payment links, and payouts.

  • List payment links and request reconciliation reports.

  • Verify IPN webhook signatures locally.

Write tools:

  • Create hosted payment links and QR codes without handling card data.

  • Capture or cancel transactions and issue full or partial refunds.

  • Create payouts and customer records.

Related MCP server: maib-mcp

Disclaimer

This integration was built from public ZEN documentation without access to a live merchant account. Endpoint versions, request fields, response fields, signing details, and webhook behavior must be checked against ZEN's current OpenAPI or Postman collection before production use. Mock mode is included for evaluation without an account.

Install

Add the published package to Claude Code:

claude mcp add zen --env ZEN_API_KEY=your_terminal_api_key -- npx -y @krystiangw/zen-mcp

For Claude Desktop, add this entry to its MCP configuration:

{
  "mcpServers": {
    "zen": {
      "command": "npx",
      "args": ["-y", "@krystiangw/zen-mcp"],
      "env": {
        "ZEN_API_KEY": "your_terminal_api_key",
        "ZEN_PAYWALL_SECRET": "your_paywall_secret",
        "ZEN_IPN_SECRET": "your_ipn_secret",
        "ZEN_ENV": "sandbox"
      }
    }
  }
}

Configuration

Variable

Required

Description

ZEN_API_KEY

Outside mock mode

Terminal API Key sent in Authorization without a Bearer prefix

ZEN_PAYWALL_SECRET

Write operations

Checkout/paywall secret used to sign request bodies

ZEN_IPN_SECRET

Webhook verification

IPN secret used only by verify_webhook_signature

ZEN_ENV

No

sandbox (default) or production

ZEN_BASE_URL

No

API base URL override; takes priority over ZEN_ENV

ZEN_MOCK

No

1 or true enables deterministic offline responses

ZEN_HASH_ALG

No

sha224, sha256 (default), sha384, or sha512

In the ZEN merchant panel, go to my.zen.com → Shop settings → Terminal to find the Terminal API Key. Use sandbox first; the default API host is api.zen-test.com, although sandbox availability and onboarding requirements should be confirmed with ZEN.

No merchant account yet? You can open a ZEN business account. That is a referral link: it credits the author of this project if you sign up through it, and costs you nothing. Every other link in this README is a plain one.

Tools

Name

Type

Description

list_payment_methods

Read

List payment methods for the terminal

get_transaction

Read

Get a transaction by ZEN or merchant ID

list_payment_links

Read

List hosted payment links

get_payment_link

Read

Get one hosted payment link

get_payout

Read

Get a payout by ZEN ID

download_report

Read

Request a report download

list_supported_currencies

Read

List documented supported currencies

verify_webhook_signature

Read

Verify a ZEN IPN signature locally

create_payment_link

Write

Create a hosted checkout link and QR code

refund_transaction

Write, destructive

Issue a full or partial refund

capture_transaction

Write, destructive

Capture an authorized transaction

cancel_transaction

Write, destructive

Cancel a transaction

create_payout

Write, destructive

Send an outbound payout

create_customer

Write

Create a customer record

Security

  • Tools are read-only by default; operations that move or reverse money are marked destructive for MCP clients.

  • Secrets are read only from environment variables and are never tool arguments.

  • Payment acceptance uses ZEN-hosted links, so this server does not collect or transmit card numbers.

  • The signing algorithm follows public ZEN documentation, but nested-object and array flattening are not fully specified publicly. Verify it against the live API.

  • Verify every IPN webhook signature with ZEN_IPN_SECRET before trusting its contents.

  • Use least-privilege terminal credentials and keep human confirmation enabled for write tools.

Demo without an account

Run the server with deterministic canned API responses:

ZEN_MOCK=1 ZEN_IPN_SECRET=demo npx -y @krystiangw/zen-mcp

verify_webhook_signature does real cryptography instead of calling the API, so it needs a secret even in mock mode. Any value works for a demo.

From a development checkout:

npm install
npm run build
ZEN_MOCK=1 ZEN_IPN_SECRET=demo npm run inspect

Development

Requires Node.js 18 or newer.

npm install
npm run typecheck
npm run build
npm test
ZEN_MOCK=1 ZEN_IPN_SECRET=demo npm run inspect

Roadmap

  • Raw card charges only after a deliberate PCI/security design; they are excluded from the MVP.

  • Recurring and one-click payments after the tokenization flow is verified.

  • Consumer ZEN features such as cashback and personal cards if ZEN publishes a supported API.

  • Remote Streamable HTTP transport and OAuth after the stdio MVP.

License

MIT

Available Tools

14 tools
cancel_transactionCancel transactionB
Destructive

Destructive write: cancel a ZEN transaction. This may prevent or reverse payment processing; confirm before use.

NameRequiredDescriptionDefault
idYes
idempotencyKeyNo
capture_transactionCapture transactionA
Destructive

Destructive write: capture an authorized transaction, causing funds to be collected. Confirm before use.

NameRequiredDescriptionDefault
idYes
amountNo
idempotencyKeyNo
create_customerCreate customerC

Write operation: create a customer record in ZEN for future payment flows; this stores personal data.

NameRequiredDescriptionDefault
emailYes
phoneNo
lastNameNo
firstNameNo
idempotencyKeyNo
create_payoutCreate payoutA
Destructive

Highest-risk destructive write: send money outward through ZEN. Verify recipient, channel, currency, and amount before use.

NameRequiredDescriptionDefault
amountYes
currencyYes
customerEmailNo
customerPhoneNo
idempotencyKeyNo
paymentChannelYes
customerLastNameNo
customerFirstNameNo
merchantTransactionIdYes
download_reportDownload reportB
Read-only

Read-only: request a transaction or settlement report download from ZEN.

NameRequiredDescriptionDefault
formatNo
endDateNo
startDateNo
reportTypeNo
get_payoutGet payoutA
Read-only

Read-only: retrieve a ZEN payout by its ZEN ID.

NameRequiredDescriptionDefault
zenIdYes
get_transactionGet transactionA
Read-only

Read-only: retrieve a transaction by exactly one ZEN ID or merchant transaction ID.

NameRequiredDescriptionDefault
zenIdNo
merchantTransactionIdNo
list_payment_methodsList payment methodsA
Read-only

Read-only: list payment methods available to the configured ZEN terminal.

NameRequiredDescriptionDefault

No parameters

list_supported_currenciesList supported currenciesA
Read-only

Read-only: list currencies confirmed in the public ZEN documentation.

NameRequiredDescriptionDefault

No parameters

refund_transactionRefund transactionA
Destructive

Destructive write: return all or part of a payment to the customer. Confirm the transaction and amount before use.

NameRequiredDescriptionDefault
zenIdNo
amountNo
transactionIdNo
idempotencyKeyNo
verify_webhook_signatureVerify webhook signatureA
Read-only

Read-only: verify a ZEN IPN webhook signature using the configured IPN secret.

NameRequiredDescriptionDefault
payloadYes
signatureYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.1
    • First observedcancel_transaction
    • First observedcapture_transaction
    • First observedcreate_customer
    • First observedcreate_payment_link
    • First observedcreate_payout
    • First observeddownload_report
    • First observedget_payment_link
    • First observedget_payout
    • First observedget_transaction
    • First observedlist_payment_links
    • First observedlist_payment_methods
    • First observedlist_supported_currencies
    • First observedrefund_transaction
    • First observedverify_webhook_signature

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource and action: payment methods, transactions, payment links, payouts, reports, currencies, customers, and webhook verification are clearly separated. Even similar operations like refund, capture, and cancel are differentiated by their descriptions and intended effects.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, using clear verbs such as list, get, create, refund, capture, cancel, download, and verify. There are no mixed conventions or vague action words.

Tool Count5/5

With 14 tools, the server is well-scoped for a payment platform covering transactions, payment links, payouts, reports, and customers. Each tool provides a meaningful capability without unnecessary redundancy or bloat.

Completeness4/5

Core payment workflows are well covered: creating/retrieving payment links, retrieving and managing transactions, creating/retrieving payouts, downloading reports, and verifying webhooks. Minor gaps exist, such as no list transactions endpoint, no update/delete for payment links, and no customer read/update operations, but these are workable.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for PayMongo payment gateway (Philippines). Supports payment intents, sources, payments, refunds, and checkout sessions via Basic Auth.
    24
    16 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for MAIB e-commerce payments (Moldova). Supports payments, refunds, recurring billing, one-click payments, and transaction status via OAuth 2.0.
    8
    13 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Bank of Georgia iPay payment gateway, enabling payment orders, refunds, recurring payments, and pre-authorization via OAuth 2.0 + JWT.
    8
    16 npm
    MIT