Skip to main content
Glama
jpbester
by jpbester

payfast-mcp

A Model Context Protocol (MCP) server for PayFast, South Africa's leading payment gateway. Enables AI assistants like Claude to securely interact with your PayFast merchant account.

Features

  • Transaction management — fetch transaction details, query history, process tokenized charges

  • Subscription management — fetch, pause, unpause, cancel, update, and ad-hoc charge subscriptions

  • Refund processing — create refunds (full or partial) and query refund status

  • Credit card queries — look up credit card transaction details

  • Sandbox support — defaults to sandbox mode for safe testing

  • Secure by design — credentials via environment variables only, sensitive data never logged

Available Tools

Tool

Description

Risk

ping

Test API connectivity

Low

transaction_fetch

Get transaction by ID

Low

transaction_history

Query transaction history

Low

transaction_charge

Charge a stored token

Medium

subscription_fetch

Get subscription details

Low

subscription_pause

Pause a subscription

High

subscription_unpause

Resume a subscription

Medium

subscription_cancel

Cancel a subscription

High

subscription_update

Update subscription terms

High

subscription_adhoc

Ad-hoc subscription charge

High

refund_create

Process a refund

High

refund_fetch

Get refund details

Low

creditcard_fetch

Query card transaction

Low

High-risk operations require human approval before execution.

Quick Start

Prerequisites

Installation

npm install -g payfast-mcp

Or run directly with npx:

npx payfast-mcp

Configuration

Set the following environment variables:

Variable

Required

Description

PAYFAST_MERCHANT_ID

Yes

Your PayFast Merchant ID

PAYFAST_MERCHANT_KEY

Yes

Your PayFast Merchant Key

PAYFAST_PASSPHRASE

Yes

Your PayFast API Passphrase

PAYFAST_ENVIRONMENT

No

sandbox (default) or production

You can also create a .env file in your working directory.

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "payfast": {
      "command": "npx",
      "args": ["-y", "payfast-mcp"],
      "env": {
        "PAYFAST_MERCHANT_ID": "your-merchant-id",
        "PAYFAST_MERCHANT_KEY": "your-merchant-key",
        "PAYFAST_PASSPHRASE": "your-passphrase",
        "PAYFAST_ENVIRONMENT": "sandbox"
      }
    }
  }
}

Claude Code

Add to your Claude Code settings:

claude mcp add payfast \
  -e PAYFAST_MERCHANT_ID=your-merchant-id \
  -e PAYFAST_MERCHANT_KEY=your-merchant-key \
  -e PAYFAST_PASSPHRASE=your-passphrase \
  -e PAYFAST_ENVIRONMENT=sandbox \
  -- npx -y payfast-mcp

Cursor

Add to your Cursor MCP config (.cursor/mcp.json for project-level, or ~/.cursor/mcp.json for global):

{
  "mcpServers": {
    "payfast": {
      "command": "npx",
      "args": ["-y", "payfast-mcp"],
      "env": {
        "PAYFAST_MERCHANT_ID": "your-merchant-id",
        "PAYFAST_MERCHANT_KEY": "your-merchant-key",
        "PAYFAST_PASSPHRASE": "your-passphrase",
        "PAYFAST_ENVIRONMENT": "sandbox"
      }
    }
  }
}

Codex

Add via the Codex CLI:

codex mcp add payfast \
  --env PAYFAST_MERCHANT_ID=your-merchant-id \
  --env PAYFAST_MERCHANT_KEY=your-merchant-key \
  --env PAYFAST_PASSPHRASE=your-passphrase \
  --env PAYFAST_ENVIRONMENT=sandbox \
  -- npx -y payfast-mcp

Or add directly to ~/.codex/config.toml:

[mcp_servers.payfast]
command = "npx"
args = ["-y", "payfast-mcp"]

[mcp_servers.payfast.env]
PAYFAST_MERCHANT_ID = "your-merchant-id"
PAYFAST_MERCHANT_KEY = "your-merchant-key"
PAYFAST_PASSPHRASE = "your-passphrase"
PAYFAST_ENVIRONMENT = "sandbox"

Development

# Clone the repo
git clone https://github.com/jpbester/payfast-mcp.git
cd payfast-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run with MCP Inspector
npm run inspect

License

MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jpbester/payfast-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server