MCP server for PayFast — AI assistants interact with South Africa's payment gateway
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.
| 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.
npm install -g payfast-mcp
Or run directly with npx:
npx payfast-mcp
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.
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"
}
}
}
}
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
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"
}
}
}
}
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"
# 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
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y payfast-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jpbester-payfast": {
"command": "npx",
"args": [
"-y",
"payfast-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencepayfast-mcpnpmio.github.jpbester/payfast works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.