About payfast
payfast is an MCP server for AI assistants working with PayFast merchant accounts. It covers transaction, subscription, and refund operations, with high-risk actions requiring human approval.
Key features
- 01Fetch transactions and query history
- 02Charge stored payment tokens
- 03Manage subscriptions
- 04Create and check refunds
- 05Query card transactions
- 06Sandbox mode and approval gates
Use cases
- 01Review merchant transaction history
- 02Pause or update a subscription
- 03Issue a full or partial refund
- 04Test payment operations in sandbox
MCP support
Exposes PayFast transaction, subscription, refund, and card-query tools to MCP clients. High-risk operations require human approval.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y payfast-mcpPAYFAST_MERCHANT_IDYour PayFast merchant IDPAYFAST_MERCHANT_KEYSecretYour PayFast merchant keyPAYFAST_PASSPHRASESecretYour PayFast API passphrasePAYFAST_ENVIRONMENTPayFast environment: 'sandbox' or 'production' (defaults to sandbox)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
14Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMEpayfast-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
- Node.js 18+
- A PayFast merchant account (sandbox or production)
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
Comments
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.