Razorpay MCP Server
Razorpay's Official MCP Server
Razorpay MCP Server is an open-source mcp server by razorpay, written mainly in Go, with 231 GitHub stars and the MIT license. Its code was last updated Oct 30, 2026.
Razorpay MCP Server (Official)
The Razorpay MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with Razorpay APIs, enabling advanced payment processing capabilities for developers and AI tools.
Quick Start
Choose your preferred setup method:
- Remote MCP Server - Hosted by Razorpay, no setup required
- Local MCP Server - Run on your own infrastructure
Available Tools
Currently, the Razorpay MCP Server provides the following tools:
| Tool | Description | API | Remote Server Support |
|---|---|---|---|
capture_payment | Change the payment status from authorized to captured. | Payment | ✅ |
fetch_payment | Fetch payment details with ID | Payment | ✅ |
fetch_payment_card_details | Fetch card details used for a payment | Payment | ✅ |
fetch_all_payments | Fetch all payments with filtering and pagination | Payment | ✅ |
update_payment | Update the notes field of a payment | Payment | ✅ |
initiate_payment | Initiate a payment using saved payment method with order and customer details | Payment | ✅ |
resend_otp | Resend OTP if the previous one was not received or expired | Payment | ✅ |
submit_otp | Verify and submit OTP to complete payment authentication | Payment | ✅ |
create_payment_link | Creates a new payment link (standard) | Payment Link | ✅ |
create_payment_link_upi | Creates a new UPI payment link | Payment Link | ✅ |
fetch_all_payment_links | Fetch all the payment links | Payment Link | ✅ |
fetch_payment_link | Fetch details of a payment link | Payment Link | ✅ |
send_payment_link | Send a payment link via SMS or email. | Payment Link | ✅ |
update_payment_link | Updates a new standard payment link | Payment Link | ✅ |
create_order | Creates an order | Order | ✅ |
fetch_order | Fetch order with ID | Order | ✅ |
fetch_all_orders | Fetch all orders | Order | ✅ |
update_order | Update an order | Order | ✅ |
fetch_order_payments | Fetch all payments for an order | Order | ✅ |
create_refund | Creates a refund | Refund | ❌ |
fetch_refund | Fetch refund details with ID | Refund | ✅ |
fetch_all_refunds | Fetch all refunds | Refund | ✅ |
update_refund | Update refund notes with ID | Refund | ✅ |
fetch_multiple_refunds_for_payment | Fetch multiple refunds for a payment | Refund | ✅ |
fetch_specific_refund_for_payment | Fetch a specific refund for a payment | Refund | ✅ |
create_qr_code | Creates a QR Code | QR Code | ✅ |
fetch_qr_code | Fetch QR Code with ID | QR Code | ✅ |
fetch_all_qr_codes | Fetch all QR Codes | QR Code | ✅ |
fetch_qr_codes_by_customer_id | Fetch QR Codes with Customer ID | QR Code | ✅ |
fetch_qr_codes_by_payment_id | Fetch QR Codes with Payment ID | QR Code | ✅ |
fetch_payments_for_qr_code | Fetch Payments for a QR Code | QR Code | ✅ |
close_qr_code | Closes a QR Code | QR Code | ❌ |
fetch_all_settlements | Fetch all settlements | Settlement | ✅ |
fetch_settlement_with_id | Fetch settlement details | Settlement | ✅ |
fetch_settlement_recon_details | Fetch settlement reconciliation report | Settlement | ✅ |
create_instant_settlement | Create an instant settlement | Settlement | ❌ |
fetch_all_instant_settlements | Fetch all instant settlements | Settlement | ✅ |
fetch_instant_settlement_with_id | Fetch instant settlement with ID | Settlement | ✅ |
fetch_all_payouts | Fetch all payout details with A/c number | Payout | ✅ |
fetch_payout_by_id | Fetch the payout details with payout ID | Payout | ✅ |
fetch_tokens | Get all saved payment methods by customer ID or contact number | Token | ✅ |
revoke_token | Revoke a saved payment method (token) for a customer | Token | ✅ |
create_registration_link | Create a registration link (auth link) for subscription registration | Registration Link | ❌ |
detect_stack | Detect project language/framework for checkout integration | N/A (MCP Integration Helper) | ✅ |
integrate_razorpay_checkout | Generate end-to-end Razorpay Standard Checkout integration code for supported frameworks | N/A (MCP Integration Helper) | ✅ |
Use Cases
- Workflow Automation: Automate your day to day workflow using Razorpay MCP Server.
- Agentic Applications: Building AI powered tools that interact with Razorpay's payment ecosystem using this Razorpay MCP server.
Remote MCP Server (Recommended)
The Remote MCP Server is hosted by Razorpay and provides instant access to Razorpay APIs without any local setup. This is the recommended approach for most users.
Benefits of Remote MCP Server
- Zero Setup: No need to install Docker, Go, or manage local infrastructure
- Always Updated: Automatically stays updated with the latest features and security patches
- High Availability: Backed by Razorpay's robust infrastructure with 99.9% uptime
- Reduced Latency: Optimized routing and caching for faster API responses
- Enhanced Security: Secure token-based authentication with automatic token rotation
- No Maintenance: No need to worry about updates, patches, or server maintenance
Prerequisites
npx is needed to use mcp server.
You need to have Node.js installed on your system, which includes both npm (Node Package Manager) and npx (Node Package Execute) by default:
macOS
# Install Node.js (which includes npm and npx) using Homebrew
brew install node
# Alternatively, download from https://nodejs.org/
Windows
# Install Node.js (which includes npm and npx) using Chocolatey
choco install nodejs
# Alternatively, download from https://nodejs.org/
Verify Installation
npx --version
Usage with Cursor
Inside your cursor settings in MCP, add this config.
{
"mcpServers": {
"rzp-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.razorpay.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Basic <Base64(key:secret)>"
}
}
}
}
Replace key & secret with your Razorpay API KEY & API SECRET
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"rzp-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.razorpay.com/mcp",
"--header",
"Authorization: Basic <Merchant Token>"
]
}
}
}
Replace <Merchant Token> with your Razorpay merchant token. Check Authentication section for steps to generate token.
- Learn about how to configure MCP servers in Claude desktop: Link
- How to install Claude Desktop: Link
Usage with VS Code
Add the following to your VS Code settings (JSON):
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "merchant_token",
"description": "Razorpay Merchant Token",
"password": true
}
],
"servers": {
"razorpay-remote": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.razorpay.com/mcp",
"--header",
"Authorization: Basic ${input:merchant_token}"
]
}
}
}
}
Learn more about MCP servers in VS Code's agent mode documentation.
Authentication
The Remote MCP Server uses merchant token-based authentication. To generate your merchant token:
-
Go to the Razorpay Dashboard and navigate to Settings > API Keys
-
Locate your API Key and API Secret:
- API Key is visible on the dashboard
- API Secret is generated only once when you first create it. Important: Do not generate a new secret if you already have one
-
Generate your merchant token by running this command in your terminal:
echo <RAZORPAY_API_KEY>:<RAZORPAY_API_SECRET> | base64Replace
<RAZORPAY_API_KEY>and<RAZORPAY_API_SECRET>with your actual credentials -
Copy the base64-encoded output - this is your merchant token for the Remote MCP Server
Note: For local MCP Server deployment, you can use the API Key and Secret directly without generating a merchant token.
Local MCP Server
For users who prefer to run the MCP server on their own infrastructure or need access to all tools (including those restricted in the remote server), you can deploy the server locally.
Prerequisites
- Docker
- Golang (Go)
- Git
To run the Razorpay MCP server, use one of the following methods:
Using Public Docker Image (Recommended)
You can use the public Razorpay image directly. No need to build anything yourself - just copy-paste the configurations below and make sure Docker is already installed.
Note: To use a specific version instead of the latest, replace
razorpay/mcpwithrazorpay/mcp:v1.0.0(or your desired version tag) in the configurations below. Available tags can be found on Docker Hub.
Usage with Claude Desktop
This will use the public razorpay image
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"razorpay-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"RAZORPAY_KEY_ID",
"-e",
"RAZORPAY_KEY_SECRET",
"razorpay/mcp"
],
"env": {
"RAZORPAY_KEY_ID": "your_razorpay_key_id",
"RAZORPAY_KEY_SECRET": "your_razorpay_key_secret"
}
}
}
}
Please replace the your_razorpay_key_id and your_razorpay_key_secret with your keys.
- Learn about how to configure MCP servers in Claude desktop: Link
- How to install Claude Desktop: Link
Usage with VS Code
Add the following to your VS Code settings (JSON):
{
"mcpServers": {
"razorpay-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"RAZORPAY_KEY_ID",
"-e",
"RAZORPAY_KEY_SECRET",
"razorpay/mcp"
],
"env": {
"RAZORPAY_KEY_ID": "your_razorpay_key_id",
"RAZORPAY_KEY_SECRET": "your_razorpay_key_secret"
}
}
}
}
Please replace the your_razorpay_key_id and your_razorpay_key_secret with your keys.
- Learn about how to configure MCP servers in Claude desktop: Link
- How to install Claude Desktop: Link
Usage with VS Code
Add the following to your VS Code settings (JSON):
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "razorpay_key_id",
"description": "Razorpay Key ID",
"password": false
},
{
"type": "promptString",
"id": "razorpay_key_secret",
"description": "Razorpay Key Secret",
"password": true
}
],
"servers": {
"razorpay": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"RAZORPAY_KEY_ID",
"-e",
"RAZORPAY_KEY_SECRET",
"razorpay/mcp"
],
"env": {
"RAZORPAY_KEY_ID": "${input:razorpay_key_id}",
"RAZORPAY_KEY_SECRET": "${input:razorpay_key_secret}"
}
}
}
}
}
Learn more about MCP servers in VS Code's agent mode documentation.
Build from Docker (Alternative)
You need to clone the Github repo and build the image for Razorpay MCP Server using docker. Do make sure docker is installed and running in your system.
# Run the server
git clone https://github.com/razorpay/razorpay-mcp-server.git
cd razorpay-mcp-server
docker build -t razorpay-mcp-server:latest .
Once the razorpay-mcp-server:latest docker image is built, you can replace the public image(razorpay/mcp) with it in the above configurations.
Build from source
You can directly build from the source instead of using docker by following these steps:
# Clone the repository
git clone https://github.com/razorpay/razorpay-mcp-server.git
cd razorpay-mcp-server
# Build the binary
go build -o razorpay-mcp-server ./cmd/razorpay-mcp-server
Once the build is ready, you need to specify the path to the binary executable in the command option. Here's an example for VS Code settings:
{
"razorpay": {
"command": "/path/to/razorpay-mcp-server",
"args": ["stdio","--log-file=/path/to/rzp-mcp.log"],
"env": {
"RAZORPAY_KEY_ID": "<YOUR_ID>",
"RAZORPAY_KEY_SECRET" : "<YOUR_SECRET>"
}
}
}
Configuration
The server requires the following configuration:
RAZORPAY_KEY_ID: Your Razorpay API key IDRAZORPAY_KEY_SECRET: Your Razorpay API key secretLOG_FILE(optional): Path to log file for server logsTOOLSETS(optional): Comma-separated list of toolsets to enable (default: "all")READ_ONLY(optional): Run server in read-only mode (default: false)RAZORPAY_REGION(optional): Region of your Razorpay account:IN,SG,MYorUS(default: detected from the API key, elseIN)RAZORPAY_REGION_CONFIG(optional): Path to a YAML file that overrides region profiles
Command Line Flags
The server supports the following command line flags:
--keyor-k: Your Razorpay API key ID--secretor-s: Your Razorpay API key secret--log-fileor-l: Path to log file--toolsetsor-t: Comma-separated list of toolsets to enable--read-only: Run server in read-only mode--region: Region of your Razorpay account:IN,SG,MYorUS(default: detected from the API key, elseIN)--region-config: Path to a YAML file that overrides region profiles
Regions
The local server runs for one region at a time. The region decides:
- which Razorpay API host is called,
- which tools are available (products not offered in the region are hidden),
- the default currency and how amounts are described to the AI, taken from i18nify.
How the region is chosen:
--region/RAZORPAY_REGION, if set.- Otherwise the country in the API key: keys like
rzp_live_sg_…orrzp_test_us_…selectSGorUS. - Otherwise
IN, exactly as before. Malaysia keys carry no country code, so Malaysian accounts must set--region MY.
Setting a region that does not match the key's country (for example --region IN with an rzp_live_sg_… key) stops the server with an error.
| Region | API host | Not available |
|---|---|---|
IN | api.razorpay.com | none (all tools) |
SG | api-sg.razorpay.com | UPI payment links, QR codes, payouts, registration links, instant settlements, checkout integration |
MY | api.razorpay.com | UPI payment links, QR codes, payouts, instant settlements, checkout integration |
US | api-us.razorpay.com | UPI payment links, QR codes, payouts, registration links, instant settlements, checkout integration |
Region profiles live in pkg/region/profiles.
Region and --toolsets together: the region profile is the ceiling. It
decides which tools exist for the region; --toolsets (and --read-only)
only narrow that set further. Asking for a toolset with no tools in the region
(for example --toolsets payouts --region SG) stops the server with an error;
tools of a requested toolset that the region does not offer are left out and
logged. The same applies to profiles loaded with --region-config.
If you have accounts in more than one region, add one server per region in your MCP client, each with that region's keys:
{
"mcpServers": {
"razorpay-in": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "RAZORPAY_KEY_ID", "-e", "RAZORPAY_KEY_SECRET", "razorpay/mcp"],
"env": {
"RAZORPAY_KEY_ID": "your_india_key_id",
"RAZORPAY_KEY_SECRET": "your_india_key_secret"
}
},
"razorpay-sg": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "RAZORPAY_KEY_ID", "-e", "RAZORPAY_KEY_SECRET", "razorpay/mcp"],
"env": {
"RAZORPAY_KEY_ID": "your_singapore_key_id",
"RAZORPAY_KEY_SECRET": "your_singapore_key_secret"
}
},
"razorpay-my": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "RAZORPAY_KEY_ID", "-e", "RAZORPAY_KEY_SECRET", "-e", "RAZORPAY_REGION", "razorpay/mcp"],
"env": {
"RAZORPAY_KEY_ID": "your_malaysia_key_id",
"RAZORPAY_KEY_SECRET": "your_malaysia_key_secret",
"RAZORPAY_REGION": "MY"
}
}
}
}
With Docker, pass the region as -e RAZORPAY_REGION (needed for Malaysia, whose
keys carry no country). A --region-config file must also be mounted into the
container, for example -v /path/regions.yaml:/regions.yaml -e RAZORPAY_REGION_CONFIG=/regions.yaml.
A --region-config entry only needs the fields it changes; the rest are kept
from the built-in profile. For example, to serve only payment reads in SG:
SG:
tools: ["fetch_payment", "fetch_all_payments"]
Debugging the Server
You can use the standard Go debugging tools to troubleshoot issues with the server. Log files can be specified using the --log-file flag (defaults to ./logs)
License
This project is licensed under the terms of the MIT open source license. Please refer to LICENSE for the full terms.
Razorpay MCP Server alternatives
View more →Similar mcp servers in Other, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| Razorpay MCP Server (this page) razorpay | 231 | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Github MCP Server github | 34k | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Fastapi MCP tadata-org | 12k | MIT | Nov 24, 2025 | Scanned, no flagged issues |
| GhidraMCP LaurieWired | 12k | Apache-2.0 | Oct 10, 2026 | Scanned, no flagged issues |
| MCP Go mark3labs | 9.2k | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Git MCP idosal | 8.5k | Apache-2.0 | May 8, 2026 | Scanned, no flagged issues |