cinetpay-mcp
Official# cinetpay-mcp
MCP Server for CinetPay — integrate mobile money payments into Claude, Cursor, and any MCP-compatible AI assistant.
## What it does
This MCP server connects your AI assistant to the CinetPay API, enabling natural language interactions with mobile money payments across Africa.
**Ask your assistant:**
- "What's the balance on the CI account?"
- "Check the status of payment ORDER-12345"
- "Initialize a payment of 5000 XOF for customer jean@email.com"
- "Send 1000 XOF to +2250707000001 via Orange Money"
- "What payment methods are available in Senegal?"
## Available Tools
| Tool | Description |
|------|-------------|
| `get_balance` | Get account balance for a country |
| `check_payment_status` | Check payment status by ID |
| `initialize_payment` | Create a new payment (returns payment URL) |
| `create_transfer` | Send money to a phone number |
| `check_transfer_status` | Check transfer status by ID |
| `list_payment_methods` | List operators for a country |
| `list_configured_countries` | Show configured countries |
## Installation
### Claude Code
```bash
claude mcp add cinetpay -- npx cinetpay-mcp
```
Then set your environment variables in `.claude/settings.json`:
```json
{
"mcpServers": {
"cinetpay": {
"command": "npx",
"args": ["cinetpay-mcp"],
"env": {
"CINETPAY_API_KEY_CI": "sk_test_...",
"CINETPAY_API_PASSWORD_CI": "your_password"
}
}
}
}
```
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"cinetpay": {
"command": "npx",
"args": ["cinetpay-mcp"],
"env": {
"CINETPAY_API_KEY_CI": "sk_test_...",
"CINETPAY_API_PASSWORD_CI": "your_password"
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json`:
```json
{
"mcpServers": {
"cinetpay": {
"command": "npx",
"args": ["cinetpay-mcp"],
"env": {
"CINETPAY_API_KEY_CI": "sk_test_...",
"CINETPAY_API_PASSWORD_CI": "your_password"
}
}
}
}
```
## Configuration
### Environment Variables
#### Multi-country (recommended)
Set credentials per country using the pattern `CINETPAY_API_KEY_{COUNTRY}` / `CINETPAY_API_PASSWORD_{COUNTRY}`:
```bash
# Côte d'Ivoire
CINETPAY_API_KEY_CI=sk_test_...
CINETPAY_API_PASSWORD_CI=your_password
# Sénégal
CINETPAY_API_KEY_SN=sk_test_...
CINETPAY_API_PASSWORD_SN=your_password
# Cameroun
CINETPAY_API_KEY_CM=sk_live_...
CINETPAY_API_PASSWORD_CM=your_password
```
#### Single country
```bash
CINETPAY_API_KEY=sk_test_...
CINETPAY_API_PASSWORD=your_password
CINETPAY_COUNTRY=CI # Default: CI
```
#### Optional
```bash
CINETPAY_BASE_URL=https://api.cinetpay.co # Default: auto-detected from key prefix
CINETPAY_FORCE_IPV4=true # Force IPv4 DNS resolution
```
### Environments
| Key prefix | API URL | Environment |
|---|---|---|
| `sk_test_...` | `https://api.cinetpay.net` | Sandbox |
| `sk_live_...` | `https://api.cinetpay.co` | Production |
The server auto-detects the environment from your API key prefix.
## Supported Countries
| Country | Code | Operators |
|---------|------|-----------|
| Côte d'Ivoire | CI | Orange Money, Moov, MTN, Wave |
| Sénégal | SN | Orange Money, Free, Expresso, Wave |
| Cameroun | CM | Orange Money, MTN |
| Burkina Faso | BF | Orange Money, Moov, Wave |
| Mali | ML | Orange Money, Moov |
| Togo | TG | Moov, TMoney |
| Guinée | GN | Orange Money, MTN |
| Bénin | BJ | Moov, MTN |
| RD Congo | CD | Orange Money, Airtel, M-Pesa, Africell |
| Niger | NE | Airtel, Moov, Zamani |
## Security
- API credentials are read from environment variables only — never hardcoded
- The server uses the [cinetpay-js](https://www.npmjs.com/package/cinetpay-js) SDK with all its security features:
- HTTPS enforcement
- Credential sanitization in logs
- ES2022 private fields
- Environment mismatch detection
- Each user runs their own MCP server instance with their own credentials
## Support
For CinetPay API questions: **support@cinetpay.com**
## License
MIT
TDQS
Scored across 7 tools
Each tool targets a distinct resource and action: balance, transfer status, payment status, payment initialization, transfer creation, and listing operations. The two status-checking tools are clearly separated by transaction type (payment vs transfer).
All tool names follow a consistent verb_noun snake_case pattern: get_, check_, initialize_, create_, list_. The verbs and nouns are predictable and match the operation performed.
Seven tools is well-scoped for a payment-focused MCP server. Each tool covers a necessary aspect of the payment/transfer lifecycle without bloat or redundancy.
The core lifecycle is covered: initialize payment, check payment status, create transfer, check transfer status, get balance, and list required configuration/methods. Minor gaps exist such as refund/cancel operations, but agents can likely complete typical payment flows.