Razorpay MCP Server
by hahahamid
README.md
# rzp-mcp
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that exposes the Razorpay API as tools for Claude and other LLM clients. Interact with your Razorpay account using natural language.
```
"Check if payment pay_xyz went through"
"List my last 10 orders from this month"
"Issue a ₹200 partial refund on payment pay_abc"
"What was settled to my account last week?"
```
## Tools
| Tool | Description |
|------|-------------|
| `razorpay_fetch_payment` | Fetch full payment details by ID |
| `razorpay_payment_status` | Quick status check — status, amount, captured, method |
| `razorpay_capture_payment` | Capture an authorized payment |
| `razorpay_create_order` | Create a new order |
| `razorpay_fetch_order` | Fetch an order by ID |
| `razorpay_list_orders` | List orders with date/status filters |
| `razorpay_issue_refund` | Issue a full or partial refund |
| `razorpay_fetch_refund` | Check refund status |
| `razorpay_fetch_settlement` | Fetch a settlement by ID |
| `razorpay_list_settlements` | List settlements with date filters |
## Setup
### 1. Get your Razorpay API keys
Go to [Razorpay Dashboard → Settings → API Keys](https://dashboard.razorpay.com/app/keys) and generate a key pair.
Use **test mode** keys (`rzp_test_...`) while getting started.
### 2. Configure Claude Desktop
Add this to your Claude Desktop config file:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"razorpay": {
"command": "npx",
"args": ["-y", "rzp-mcp"],
"env": {
"RAZORPAY_KEY_ID": "rzp_test_xxxxxxxxxxxx",
"RAZORPAY_KEY_SECRET": "your_secret_here"
}
}
}
}
```
Restart Claude Desktop. You should see the Razorpay tools available.
## Running as HTTP server
For remote/web clients, run in HTTP mode:
```bash
RAZORPAY_KEY_ID=rzp_test_xxx RAZORPAY_KEY_SECRET=yyy npx rzp-mcp http
```
This starts:
- **Streamable HTTP** at `http://localhost:3000/mcp` (MCP spec 2025-11-25)
- **Legacy SSE** at `http://localhost:3000/sse` (backwards-compatible)
Set `PORT` env var to change the port (default: 3000).
## Auth
Credentials are passed exclusively via environment variables — never as tool arguments.
```
RAZORPAY_KEY_ID=rzp_live_xxxxxxxxxxxx
RAZORPAY_KEY_SECRET=your_secret_here
```
The server validates credentials at startup and exits with a clear error message if they are missing.
## Amount units
Razorpay uses the **smallest currency unit** for all amounts:
- **INR:** paise (₹500.00 = `50000`)
- **USD:** cents ($10.00 = `1000`)
All tool descriptions explicitly document this to prevent mistakes.
## Development
```bash
git clone https://github.com/hahahamid/razorpay-mcp
cd razorpay-mcp
npm install
npm test # run unit tests
npm run build # build to dist/
```
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues