Running MCP Server in Production: Lessons from Razorpay
summary
Built a production MCP server that powers payment links and order/payment tool calls, demonstrated sending a checkout link via a WhatsApp MCP integration, and runs behind an API gateway with a Go SDK using merchant API keys. Starts as local stdio, moves to SSE stateful session IDs which fails at scale (hotspotting at ~50 TPS), then adopts streamable HTTP upgrade for stateless proxying and resumability. Enforces merchant credential isolation, rate limits, QoS pods and delete APIs to avoid memory leaks; works in production but migration to OAuth and full resumable caching is ongoing.
AI-written summary · about
chapters (11)
- 0:00MCP and Razorpay journey
- 3:58What is MCP architecture
- 8:09MCP transports lifecycle
- 10:15Razorpay MCP server
- 11:59Request lifecycle security
- 14:29SSE challenges
- 17:39HTTP for scalability
- 20:46Security go-live
- 21:51Optimizing MCP tools
- 22:33Internal MCP use cases
- 23:37Q&A
related talks
34mFrom "Vibes" to Production: Eliminating RAG Data Silos with MCP
25mFrom MCP to Scale: Pipelines That Build Themselves
20mLetting AI Interface with Your App with MCPs
25mSecure Your MCP Servers With OAuth, JWT, SPIFFE and More
43mServers Beyond 101 Good Practices, Design Choices and Their Consequences
18mScaling AI Agents With gRPC: Intuit's Enterprise MCP Service Marketplace
22mMCP UI: Extending the frontier
26mBuild your First MCP App
