UPI payment links and QR codes, UPI error help, and GST, MSMED and MDR calculators for India.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Write a rupee amount in words the Indian way (lakh and crore), as on invoices, receipts and cheques. For example 125050.50 → "One Lakh Twenty Five Thousand Fifty Rupees and Fifty Paise Only".
Amount in rupees, up to ₹99,99,99,999.99.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http upi-tools https://www.proupiqr.in/mcp/
Write a rupee amount in words the Indian way (lakh and crore), as on invoices, receipts and cheques. For example 125050.50 → "One Lakh Twenty Five Thousand Fifty Rupees and Fifty Paise Only".
| Argument | Type | Description |
|---|---|---|
| amount* | number | string | Amount in rupees, up to ₹99,99,99,999.99. |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": [
"number",
"string"
],
"description": "Amount in rupees, up to ₹99,99,99,999.99."
}
}
}Calculate Indian GST on an amount, exact to the paisa: add GST to a price before tax, or take it out of a GST-inclusive price, split into CGST + SGST (sale within a state) or IGST (between states).
| Argument | Type | Description |
|---|---|---|
| amount* | number | string | Amount in rupees, e.g. 1000 or "2499.50". |
| supply | string | intra_state (CGST + SGST, the default) or inter_state (IGST). |
| rate_percent* | number | string | GST rate in percent, e.g. 5, 18 or 40. |
| price_includes_gst | boolean | true if the amount already includes GST (default false: GST is added on top). |
{
"type": "object",
"required": [
"amount",
"rate_percent"
],
"properties": {
"amount": {
"type": [
"number",
"string"
],
"description": "Amount in rupees, e.g. 1000 or \"2499.50\"."
},
"supply": {
"enum": [
"intra_state",
"inter_state"
],
"type": "string",
"description": "intra_state (CGST + SGST, the default) or inter_state (IGST)."
},
"rate_percent": {
"type": [
"number",
"string"
],
"description": "GST rate in percent, e.g. 5, 18 or 40."
},
"price_includes_gst": {
"type": "boolean",
"description": "true if the amount already includes GST (default false: GST is added on top)."
}
}
}Calculate the interest a buyer owes a micro or small enterprise (Udyam-registered supplier) for paying late, under Section 16 of India's MSMED Act: three times the RBI Bank Rate (17.25% a year as of 7 Oct 2026), compounded monthly, from the day after the payment deadline (the agreed credit period, at most 45 days). Exact to the paisa.
| Argument | Type | Description |
|---|---|---|
| amount* | number | string | Unpaid invoice amount in rupees. |
| paid_on | string | Payment date, YYYY-MM-DD. Leave out to count up to today. |
| credit_days | integer | Agreed credit period in days (default 45; the Act caps it at 45). |
| invoice_date* | string | Date the goods or services were accepted, YYYY-MM-DD (use the invoice date if unsure). |
{
"type": "object",
"required": [
"amount",
"invoice_date"
],
"properties": {
"amount": {
"type": [
"number",
"string"
],
"description": "Unpaid invoice amount in rupees."
},
"paid_on": {
"type": "string",
"description": "Payment date, YYYY-MM-DD. Leave out to count up to today."
},
"credit_days": {
"type": "integer",
"minimum": 0,
"description": "Agreed credit period in days (default 45; the Act caps it at 45)."
},
"invoice_date": {
"type": "string",
"description": "Date the goods or services were accepted, YYYY-MM-DD (use the invoice date if unsure)."
}
}
}Work out the UPI merchant discount rate (MDR) on a payment under the rules from 15 October 2026: 0.4% on person-to-merchant UPI payments above ₹2,000 (capped at ₹300), a flat ₹5 for essential-sector merchants and 0.02% for capital markets. Person-to-person payments, payments of ₹2,000 or less and small P2PM merchants (up to ₹1 lakh a month) pay nothing. Shows the 18% GST on the MDR and what the merchant keeps.
| Argument | Type | Description |
|---|---|---|
| amount* | number | string | One UPI payment, in rupees. |
| category | string | standard merchant (default), essential sector, capital markets, or p2p (person to person). |
| gst_registered | boolean | true if the merchant is GST-registered and can claim the GST on MDR as input tax credit. |
| small_merchant | boolean | true if the UPI ID is a small P2PM merchant (up to ₹1 lakh a month on UPI QR). |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": [
"number",
"string"
],
"description": "One UPI payment, in rupees."
},
"category": {
"enum": [
"standard",
"essential",
"capital",
"p2p"
],
"type": "string",
"description": "standard merchant (default), essential sector, capital markets, or p2p (person to person)."
},
"gst_registered": {
"type": "boolean",
"description": "true if the merchant is GST-registered and can claim the GST on MDR as input tax credit."
},
"small_merchant": {
"type": "boolean",
"description": "true if the UPI ID is a small P2PM merchant (up to ₹1 lakh a month on UPI QR)."
}
}
}Create a UPI payment link (upi://pay) for an Indian UPI ID. On a phone it opens PhonePe, Google Pay, Paytm, BHIM or any UPI app with the payee, amount and note filled in. Use it to collect a payment, split a bill or put on an invoice. Returns the link and a proupiqr.in page with its QR code and printable poster. Amounts are exact to the paisa; nothing is stored. It never moves money: the payer approves the payment in their own UPI app.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional note shown to the payer and on statements, e.g. "Invoice 42". Up to 80 characters. |
| amount | number | string | Optional amount in rupees, e.g. 499 or "1250.50". Leave it out and the payer types the amount. |
| upi_id* | string | Payee UPI ID (VPA), e.g. ramesh@okaxis or 9876543210@ybl. |
| payee_name* | string | Name the payer's UPI app shows: the shop, business or person. |
{
"type": "object",
"required": [
"upi_id",
"payee_name"
],
"properties": {
"note": {
"type": "string",
"description": "Optional note shown to the payer and on statements, e.g. \"Invoice 42\". Up to 80 characters."
},
"amount": {
"type": [
"number",
"string"
],
"description": "Optional amount in rupees, e.g. 499 or \"1250.50\". Leave it out and the payer types the amount."
},
"upi_id": {
"type": "string",
"description": "Payee UPI ID (VPA), e.g. ramesh@okaxis or 9876543210@ybl."
},
"payee_name": {
"type": "string",
"description": "Name the payer's UPI app shows: the shop, business or person."
}
}
}Explain a failed UPI payment from its error code or message (e.g. U30, ZM, XH, Z9, U16, or "debit has been failed"): what it means, which side caused it, whether money was debited and when it comes back, and what the payer or merchant should do next. Covers 42 common NPCI and bank codes.
| Argument | Type | Description |
|---|---|---|
| code* | string | The code the UPI app or bank shows (e.g. U30), or words from the error message. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code the UPI app or bank shows (e.g. U30), or words from the error message."
}
}
}Find the free Pro UPI QR tool for a task: invoices, receipts, rent receipts, salary slips, quotations, GST and MSME tools, UPI QR posters and stickers, calculators and guides. Returns matching tools with links; they run in the browser with no signup.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many tools to return (default 5). |
| query* | string | What the user wants to make or do, e.g. "rent receipt for HRA" or "restaurant table QR". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many tools to return (default 5)."
},
"query": {
"type": "string",
"description": "What the user wants to make or do, e.g. \"rent receipt for HRA\" or \"restaurant table QR\"."
}
}
}Generate a UPI payment QR code (PNG image) for an Indian UPI ID that PhonePe, Google Pay, Paytm, BHIM and every UPI app can scan, optionally with a fixed amount and note. Also returns the upi:// link and a proupiqr.in page to download a printable counter poster or stickers. Nothing is stored. It never moves money: the payer approves the payment in their own UPI app.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional note shown to the payer and on statements, e.g. "Invoice 42". Up to 80 characters. |
| size | integer | Image width in pixels (default 512). |
| amount | number | string | Optional amount in rupees, e.g. 499 or "1250.50". Leave it out and the payer types the amount. |
| upi_id* | string | Payee UPI ID (VPA), e.g. ramesh@okaxis or 9876543210@ybl. |
| payee_name* | string | Name the payer's UPI app shows: the shop, business or person. |
{
"type": "object",
"required": [
"upi_id",
"payee_name"
],
"properties": {
"note": {
"type": "string",
"description": "Optional note shown to the payer and on statements, e.g. \"Invoice 42\". Up to 80 characters."
},
"size": {
"type": "integer",
"maximum": 1000,
"minimum": 200,
"description": "Image width in pixels (default 512)."
},
"amount": {
"type": [
"number",
"string"
],
"description": "Optional amount in rupees, e.g. 499 or \"1250.50\". Leave it out and the payer types the amount."
},
"upi_id": {
"type": "string",
"description": "Payee UPI ID (VPA), e.g. ramesh@okaxis or 9876543210@ybl."
},
"payee_name": {
"type": "string",
"description": "Name the payer's UPI app shows: the shop, business or person."
}
}
}Read a UPI payment link (the upi://pay… text inside a payment QR code) and check it: who gets paid, the amount, the note and any merchant fields, with warnings about anything malformed or risky, such as an AutoPay mandate posing as a payment. Use it before paying from a QR someone sent, or to find out why apps reject a QR.
| Argument | Type | Description |
|---|---|---|
| link* | string | The upi://pay?… link, e.g. the text decoded from a QR code. |
{
"type": "object",
"required": [
"link"
],
"properties": {
"link": {
"type": "string",
"description": "The upi://pay?… link, e.g. the text decoded from a QR code."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.