A Model Context Protocol (MCP) server that helps Claude generate and manage UPI payment deeplinks using Setu's payment infrastructure.
The server implements the following payment management tools:
-
create-payment-link: Create a new UPI payment link
- Required inputs:
amount
: Amount to be paid in paisebill_id
: Unique identifier for the paymentpayee_name
: Name of the payee
- Optional input:
note
: Transaction note
- Returns payment link details including UPI ID and short URL
- Required inputs:
-
expire-payment: Expire an existing payment link
- Required input:
bill_id
: The bill ID of the payment to expire
- Required input:
-
initiate-refund: Initiate a refund for a payment
- Required inputs:
bill_id
: The bill ID of the paymentrefund_type
: Type of refund ("FULL" or "PARTIAL")
- Required inputs:
-
check-payment-status: Check the status of a payment
- Required input:
bill_id
: The bill ID of the payment
- Returns current payment status
- Required input:
-
mock-payment: Simulate a payment (sandbox mode only)
- Required inputs:
bill_id
: The bill ID of the paymentupi_id
: The UPI ID for the payeeamount
: Amount to be paid in Rupees
- Required inputs:
The server requires the following environment variables:
UPI_DEEPLINKS_SCHEME_ID=your-scheme-id
UPI_DEEPLINKS_SECRET=your-secret
UPI_DEEPLINKS_PRODUCT_INSTANCE_ID=your-product-instance-id
SETU_AUTH_TYPE=OAUTH # Optional, defaults to OAUTH
SETU_MODE=SANDBOX # Optional, defaults to SANDBOX
MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"setu_mcp_upi_deeplinks": {
"command": "uvx",
"args": [
"setu_mcp_upi_deeplinks"
],
"env": {
"UPI_DEEPLINKS_SCHEME_ID": "your-scheme-id",
"UPI_DEEPLINKS_SECRET": "your-secret",
"UPI_DEEPLINKS_PRODUCT_INSTANCE_ID": "your-product-instance-id"
}
}
}
}
- Sync dependencies and update lockfile:
uv sync
- Build package distributions:
uv build
- Publish to PyPI:
uv publish
Note: Set PyPI credentials via environment variables or command flags:
- Token:
--token
orUV_PUBLISH_TOKEN
- Or username/password:
--username
/UV_PUBLISH_USERNAME
and--password
/UV_PUBLISH_PASSWORD
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
Launch the MCP Inspector via npm
:
npx @modelcontextprotocol/inspector uv --directory /<path>/setu-mcps/upi-deeplinks run setu_mcp_upi_deeplinks
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.