Add it to Claude Code
claude mcp add africa-payments-mcp -- africa-payments-mcpMake your agent remember this setup
africa-payments-mcp's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Unified interface for M-Pesa, Paystack, and MTN MoMo
- Natural language payment processing and fund requests
- Cross-provider transaction status checking
- Automated refund processing
- AI-native design for integration with LLM agents
Tools 4
process_paymentProcess a payment transaction across supported providers using natural languagerequest_fundsRequest funds from a customercheck_transactionCheck the status of a payment transactionprocess_refundProcess a refund for a specific orderEnvironment Variables
MPESA_CONSUMER_KEYAPI key for M-Pesa integrationMPESA_CONSUMER_SECRETAPI secret for M-Pesa integrationPAYSTACK_SECRET_KEYSecret key for Paystack integrationTry it
Original README from kenyaclaw/africa-payments-mcp
🌍 Africa Payments MCP
The missing piece for African fintech. One MCP server. Every major African payment provider. Natural language payments.
✨ What if accepting payments was as easy as sending a message?
# "Send KES 5,000 to Mary via M-Pesa"
# "Request $100 from a customer in Nigeria"
# "Check if that MTN MoMo payment came through"
# "Process a refund for order #12345"
No more wrestling with 5 different APIs. No more juggling documentation.
Just natural language that works across M-Pesa, Paystack, MTN MoMo, and more.
<em>See it in action with Claude, ChatGPT, Cursor, and any MCP client</em>
🎬 See It In Action
| Demo with Claude | Demo with Cursor |
|---|---|
![]() |
![]() |
💡 Why Africa Payments MCP?
The Problem 😤
Africa has the world's most innovative payment systems—M-Pesa, Paystack, Flutterwave, MTN MoMo, Chipper Cash—but integrating them is a nightmare:
- 🔀 Fragmented APIs: M-Pesa uses SOAP. Paystack uses REST. MTN MoMo uses something entirely different.
- 📚 Scattered Documentation: Hours spent hunting for the right docs
- 🔧 Different Auth Methods: API keys, OAuth, basic auth—each one unique
- 🐛 Edge Cases Everywhere: Each provider has quirks that break your code
- ⏱️ Weeks of Integration Time: Before you process a single payment
The Solution 🎯
One MCP server. Every provider. Natural language.
// Instead of this...
const mpesa = new MpesaAPI({ consumerKey, consumerSecret, passkey });
await mpesa.authenticate();
const result = await mpesa.stkPush({ phone, amount, accountRef });
// Just say this:
"Send KES 5,000 to 254712345678 via M-Pesa"
The Impact 🚀
- ⚡ Ship in hours, not weeks — Your first payment working today
- 🧠 AI-native from day one — Built for the era of AI agents
- 🌍 Truly Pan-African — One integration covers the continent
- 🔓 Open Source — MIT licensed, community-driven
- 🛠️ Developer-First — Built by Africans who understand the pain
🚀 Quick Start
One-Line Installer (Recommended)
curl -fsSL https://raw.githubusercontent.com/kenyaclaw/africa-payments-mcp/main/scripts/install.sh | bash
Or with wget:
wget -qO- https://raw.githubusercontent.com/kenyaclaw/africa-payments-mcp/main/scripts/install.sh | bash
Manual Installation
1. Install
npm install -g @kenyaclaw/africa-payments-mcp
2. Configure
Interactive wizard (recommended):
africa-payments-mcp init
# Beautiful interactive setup with emoji and progress indicators
Auto-detect existing credentials:
africa-payments-mcp detect --output config.json
# Automatically finds MPESA_*, PAYSTACK_* env vars and config files
3. Connect to Your AI
Add to your MCP client configuration:
{
"mcpServers": {
"africa-payments": {
"command": "africa-payments-mcp",
"env": {
"MPESA_CONSUMER_KEY": "your_key",
"PAYSTACK_SECRET_KEY": "your_key"
}
}
}
}
4. Start Accepting Payments
Open Claude, ChatGPT, Cursor, or any MCP client and just ask:
"Send KES 5,000 to Mary via M-Pesa"
🐳 Docker Quick Start
Run with Docker (no Node.js installation required):
# Pull the latest image
docker pull kenyaclaw/africa-payments-mcp:latest
# Run with a config file
docker run -v $(pwd)/config.json:/app/config/config.json \
kenyaclaw/africa-payments-mcp:latest
# Or run with environment variables
docker run -e MPESA_CONSUMER_KEY=xxx \
-e MPESA_CONSUMER_SECRET=xxx \
-e PAYSTACK_SECRET_KEY=xxx \
kenyaclaw/africa-payments-mcp:latest
Docker Compose
version: '3.8'
services:
africa-payments:
image: keny

