razorpay-recon-mcp
by QalaLabs
README.md
# Razorpay Reconciliation MCP Server
Daily payment reconciliation: Razorpay payments → Odoo orders → WhatsApp alerts.
## Architecture
```
Razorpay MCP Server (remote) ──┐
├── Razorpay Recon MCP ──→ Odoo (JSON-RPC)
Razorpay REST API (settlements) ┘ │ → WhatsApp (Convertway)
│
└── 8 Tools + Daily Cron (8 AM)
```
## Setup
### 1. Razorpay API Key
1. Login to [Razorpay Dashboard](https://dashboard.razorpay.com/) → Account & Settings → API Keys
2. Generate Key ID + Key Secret
3. Encode: `echo "key_id:key_secret" | base64`
4. Set `RAZORPAY_AUTH_HEADER=Basic <output>` in `.env`
### 2. Configure Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"razorpay-recon": {
"command": "node",
"args": ["dist/main.js"],
"cwd": "E:\\Razorpay MCP\\razorpay-recon"
}
}
}
```
### 3. Environment
Copy `.env.example` to `.env` and fill in:
| Variable | Required | Source |
|----------|----------|--------|
| `RAZORPAY_AUTH_HEADER` | Yes | Base64(key:secret) |
| `ODOO_*` | Yes | Odoo credentials |
| `CONVERTWAY_*` | For alerts | Convertway WhatsApp |
| `FINANCE_TEAM_PHONE` | For alerts | WhatsApp number |
### 4. Run
```bash
# Development (HTTP)
npm run dev
# Production (HTTP)
npm run build && npm start
# Backtest (read-only, no Odoo writes)
npm run backtest 30
```
## Tools
| Tool | Description |
|------|-------------|
| `get_payments` | Fetch payments for a date range |
| `get_refunds` | Fetch refunds for a date range |
| `get_settlements` | Fetch settlements for a date range |
| `reconcile_orders` | Match Razorpay payments to Odoo orders |
| `get_payout_status` | Fetch payout details |
| `run_daily_reconciliation` | Full 8 AM pipeline |
| `run_anomaly_detection` | Detect anomalies |
| `run_backtest` | Backtest over N days |
## Anomaly Alerts
| Condition | Alert |
|-----------|-------|
| Failed payment > ₹5,000 | WhatsApp → finance team |
| Unmatched settlement | WhatsApp → finance team |
| Refund volume spike > 1.5× 7-day avg | WhatsApp → finance team |
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues