@cashfreepayments/cashfree-here
v1.0.2
Published
Cashfree payment plugin for MCP Apps SDK
Readme
Cashfree Here
Cashfree HERE is a payment plugin that renders interactive payment UIs directly inside AI chat interfaces like ChatGPT and Claude. It works with any host that supports the MCP Apps standard.
Features
- Payment Methods: UPI Intent (GPay, PhonePe, Paytm, BHIM), UPI QR Code, Credit/Debit Cards
- MCP-Native Runtime: One bridge implementation for all MCP Apps hosts, ChatGPT-compatible via Apps SDK MCP support
- Production-Ready: TypeScript with full type safety, automatic payment reconciliation, error handling, sandbox and production environments
Installation
npm install @cashfreepayments/cashfree-hereUsage
Option 1: Using MCP Apps ext-apps helpers
Use registerAppResource and registerAppTool from @modelcontextprotocol/ext-apps/server for automatic metadata handling.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import {
registerAppResource,
registerAppTool,
} from "@modelcontextprotocol/ext-apps/server";
import {
registerCashfreeWidget,
cashfreeUpiTool,
cashfreeCardPaymentTool,
} from "@cashfreepayments/cashfree-here";
const server = new McpServer({
name: "My Payment Server",
version: "1.0.0",
});
// 1. Register the Widget Resource
registerAppResource(
server,
...registerCashfreeWidget({ widgetBaseUrl: "http://localhost:3000" })
);
// 2. Register Payment Tools
registerAppTool(server, ...cashfreeUpiTool({ environment: "production" }));
registerAppTool(
server,
...cashfreeCardPaymentTool({
environment: "production",
clientId: process.env.CASHFREE_CLIENT_ID!,
clientSecret: process.env.CASHFREE_CLIENT_SECRET!,
})
);Option 2: Using standard MCP SDK / OpenAI Apps SDK
Use server.registerResource and server.registerTool directly if you're not using the ext-apps helpers.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import {
registerCashfreeWidget,
cashfreeUpiTool,
cashfreeCardPaymentTool,
} from "@cashfreepayments/cashfree-here";
const SERVER_URL = "http://localhost:3000";
const server = new McpServer({
name: "My Payment Server",
version: "1.0.0",
});
// 1. Register Widget Resource
server.registerResource(
...registerCashfreeWidget({ widgetBaseUrl: SERVER_URL })
);
// 2. Register Payment Tools
server.registerTool(...cashfreeUpiTool({ environment: "production" }));
server.registerTool(
...cashfreeCardPaymentTool({
environment: "production",
clientId: process.env.CASHFREE_CLIENT_ID!,
clientSecret: process.env.CASHFREE_CLIENT_SECRET!,
})
);Configuration
interface CashfreeToolConfig {
environment: "sandbox" | "production";
clientId?: string; // Required only for card payments
clientSecret?: string; // Required only for card payments
}Tool Input Schemas
// UpiTool
{ paymentSessionId: string; paymentApp?: "bhim" | "gpay" | "paytm" | "phonepe" | "qr" }
// CardPaymentTool
{ paymentSessionId: string; customerId: string }Architecture
AI App (Claude / ChatGPT)
|
| Tool Invocation
v
MCP Server
- UpiTool (UPI Intent + QR)
- CardPaymentTool (Card Payments)
|
| Widget State
v
Payment Widget (React)
- PaymentRouter
- UPI Intent View
- UPI QR View
- Card View
- Success / Error Views
|
| Payment API
v
Cashfree Payment GatewaySecurity
- No sensitive data exposed to AI models
- Card details handled client-side only
- Secure tokenization for card payments
- PCI-DSS compliant (Cashfree handles card processing)
- 3D Secure support for card payments
Made with 💜 by Cashfree Payments for the AI Apps ecosystem
