unified-pay-cli
Universal CLI and MCP server providing unified payment links, customer prefilling, expiring checkouts, refund management, fee comparison, and HMAC-verified webhook proxying across Stripe, Razorpay, and LemonSqueezy.
README
<div align="center">
๐ณ unified-pay-cli
The Universal Payment Gateway CLI & Model Context Protocol (MCP) Server for Stripe, Razorpay & LemonSqueezy.
<p align="center"> Create checkout links interactively, query live transactions, track and issue refunds, stream & forward webhook payloads with cryptographic signature verification - or let AI agents manage payment workflows autonomously over MCP. </p>
<!-- DEMO PREVIEW --> <p align="center"> <img src="./assets/demo.gif" alt="unified-pay demo" width="750px" /> </p>
</div>
๐ Highlights
- โก Zero Installation Required: Run instantly on demand via
npx unified-pay-cli. - ๐ฏ Multi-Provider Engine: Standardized interface across Stripe, Razorpay, and LemonSqueezy.
- ๐ ๏ธ Smart Payment Link Generation: Interactive terminal UI prompts or direct scripted CLI flags.
- ๐ Full Transaction & Refund Lifecycle: Live status checks, recent transaction listings, partial/full refunds, and dedicated refund progress tracking.
- ๐ก Webhook Station & Forwarding Proxy: Built-in HTTP listener (
pay listen) that intercepts, color-codes, and forwards webhook events directly to your local backend (--forward http://localhost:3000/api/webhooks). - ๐ Cryptographic Signature Verification: Built-in HMAC-SHA256 verification (
--secret) protecting your local development from forged or tampered webhook payloads. - ๐ค Native Model Context Protocol (MCP): Connect your payment stack to GitHub Copilot, Cursor, or Claude Desktop so AI can create links, verify signatures, and track invoices from natural language prompts.
โก Quick Start
1. Installation
Install globally or run on demand via npx:
# Global install (recommended for daily CLI use)
npm install -g unified-pay-cli
# Or run instantly with npx
npx unified-pay-cli --help
2. Configure Credentials
# Stripe
pay config --stripe-key sk_test_51...
# Razorpay
pay config --razorpay-id rzp_test_... --razorpay-secret ...
# LemonSqueezy (Optional)
pay config --lemonsqueezy-key lms_... --lemonsqueezy-store 12345
๐ป CLI Command Reference
1. Create Payment Links (pay link)
# Interactive mode (prompts for provider, amount, description)
pay link
# Scriptable flag mode
pay link --provider razorpay --amount 350000 --currency INR --desc "2-Hour Technical Consultation"
pay link --provider stripe --amount 2500 --currency USD --desc "Pro Tier Subscription"
2. Inspect Transactions (pay txn)
# List recent transactions
pay txn list --provider razorpay --limit 5
# Check specific payment details
pay txn status pay_Oq7Jk8LmNx9 --provider razorpay
3. Issue & Track Refunds (pay refund)
pay handles the separate lifecycle of charges vs. refund entities:
# Issue a refund (full or partial in minor units)
pay refund create pay_Oq7Jk8LmNx9 --provider razorpay --amount 10000
# Track live refund progression
pay refund status rfnd_TRNTRFvhQ6NDKx --provider razorpay
# List all past refunds
pay refund list --provider razorpay
4. Webhook Station, Verification & Proxy (pay listen)
Catch real-time webhook events during local development without complex tunneling setups:
# 1. Basic listener
pay listen --port 4242
# 2. Listener with HMAC-SHA256 signature verification
pay listen --port 4242 --secret my_webhook_signing_secret
# 3. Listener with signature verification + proxy forwarding to local backend
pay listen --port 4242 --secret my_webhook_secret --forward http://localhost:3000/api/webhooks
๐ค Model Context Protocol (MCP) Integration
Turn your AI assistant into an autonomous billing and payment operator.
1. For Claude Desktop (claude_desktop_config.json) / Cursor (mcp.json)
{
"mcpServers": {
"unified-pay": {
"command": "npx",
"args": ["-y", "unified-pay-cli"]
}
}
}
2. For VS Code Copilot (.vscode/mcp.json)
{
"servers": {
"unified-pay": {
"type": "stdio",
"command": "npx",
"args": ["-y", "unified-pay-cli"]
}
}
}
3. Available AI Tools
| Tool Name | Description |
|---|---|
| create_payment_link | Creates checkout URLs with custom amount, currency, and note. |
| list_transactions | Fetches recent charges and verification statuses. |
| get_payment_status | Inspects lifecycle state for a specific payment ID (pay_xxx, ch_xxx). |
| create_refund | Triggers a full or partial refund. |
| get_refund_status | Tracks the live status of a refund ID (rfnd_xxx, re_xxx). |
| list_refunds | Lists historical refund records. |
| verify_webhook_signature | Verifies HMAC-SHA256 authenticity of incoming Stripe/Razorpay payloads. |
4. Example AI Prompts
Use unified-pay to generate a INR 3,500 Razorpay payment link for "2-Hour Technical Consultation" and draft a WhatsApp message for the client.
Check if payment ID pay_Oq7Jk8LmNx9 on Razorpay was successfully captured.
Issue a full refund for Stripe charge ch_3Mtw1234 using unified-pay.
Verify if this incoming Razorpay webhook payload and signature are authentic using my signing secret.
๐งช Testing & Verification
# Run unit tests
npm test
# Run tests in watch mode
npm run test:watch
๐ ๏ธ Development
# 1. Clone the repository
git clone https://github.com/your-username/unified-pay-cli.git
cd unified-pay-cli
# 2. Install dependencies
npm install
# 3. Build TypeScript
npm run build
# 4. Symlink globally for local testing
npm link
๐ License
Distributed under the MIT License. See LICENSE for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.