𝗦𝗼𝗹𝘃𝗶𝗻𝗴 𝗠𝗖𝗣 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗮𝘁 𝗦𝗰𝗮𝗹𝗲
आपने एक MCP सर्वर बनाया है। यह आपके लैपटॉप पर काम करता है। आपका AI असिस्टेंट Jira टिकट बना सकता है और डेटाबेस से क्वेरी कर सकता है। सब कुछ बहुत अच्छा है, जब तक कि आपका कोई टीममेट इसे इस्तेमाल करने के लिए नहीं कहता।
यदि आप अपने MCP को एक प्रोडक्ट के रूप में बेचना चाहते हैं, तो आपको एक नई समस्या का सामना करना पड़ेगा। आपको कई उपयोगकर्ताओं (multiple users) को सपोर्ट करना होगा। प्रत्येक उपयोगकर्ता को अपनी स्वयं की API keys और सुरक्षित एक्सेस की आवश्यकता होती है।
अधिकांश डेवलपर्स यहाँ असफल हो जाते हैं। वे दो गलत तरीके अपनाते हैं।
पहला तरीका है मैन्युअल सेटअप। आप उपयोगकर्ताओं को रेपो (repo) क्लोन करने, डिपेंडेंसीज़ (dependencies) इंस्टॉल करने और लोकल एनवायरनमेंट कीज़ (local environment keys) सेट करने के लिए कहते हैं। इसमें घंटों लग जाते हैं। अधिकांश उपयोगकर्ता इसे पूरा करने से पहले ही छोड़ देंगे।
दूसरा तरीका है सर्वरलेस नाइटमेयर (serverless nightmare)। आप Cloud Run या Vercel पर इसे डिप्लॉय करते हैं। क्योंकि सर्वरलेस प्लेटफॉर्म सेशन (sessions) स्टोर नहीं करते हैं, इसलिए हर रिक्वेस्ट एक नए इंस्टेंस (instance) पर जाती है। आपके उपयोगकर्ता एक लूप में फंस जाते हैं। वे ऑथेंटिकेट करते हैं, और फिर अगली क्लिक उन्हें फिर से ऑथेंटिकेट करने के लिए कहती है। यह कोई प्रोडक्ट नहीं है। यह एक टूटा हुआ प्रोटोटाइप है।
हमने BrainGrid में इसे हल किया। हम एक लोकल टूल से प्रोडक्शन-रेडी इंफ्रास्ट्रक्चर (production-ready infrastructure) की ओर बढ़े। हमने इसे इस तरह किया:
- Redis Session Store का उपयोग करें: सर्वरलेस इंस्टेंस खत्म हो जाते हैं और फिर से शुरू हो जाते हैं। आप सेशन को मेमोरी में स्टोर नहीं कर सकते। सभी इंस्टेंस में सेशन डेटा को जीवित रखने के लिए Redis का उपयोग करें।
- Multi-Tier Caching लागू करें: पहले लोकल मेमोरी चेक करें। यदि वह वहां नहीं है, तो Redis चेक करें। यह हर एक रिक्वेस्ट पर होने वाले महंगे JWT वैलिडेशन को रोकता है।
- संवेदनशील डेटा को एन्क्रिप्ट करें: Redis में डालने से पहले सेशन डेटा को एन्क्रिप्ट करने के लिए AES-256-GCM का उपयोग करें। यह उपयोगकर्ता की जानकारी को सुरक्षित रखता है।
- सही OAuth पैटर्न्स का उपयोग करें: MCP क्लाइंट्स विशिष्ट डिस्कवरी फ्लो (discovery flows) की अपेक्षा करते हैं। त्रुटियों से बचने के लिए आपको अपने WWW-Authenticate हेडर को सही ढंग से फॉर्मेट करना चाहिए।
- स्पीड के लिए ऑप्टिमाइज़ करें: JWT वैलिडेशन से लेटेंसी (latency) बढ़ती है। वैलिडेटेड सेशन को कैश करके, हमने रिस्पॉन्स टाइम को काफी कम कर दिया।
इसका परिणाम एक ऐसा सिस्टम है जो एक उपयोगकर्ता से एक हज़ार उपयोगकर्ताओं तक स्केल कर सकता है। इसे चलाने की लागत बहुत कम है और यह WorkOS या Auth0 जैसे प्रोवाइडर्स के साथ आसानी से इंटीग्रेट हो जाता है।
अपने लिए टूल बनाना बंद करें। अपने ग्राहकों के लिए इंफ्रास्ट्रक्चर बनाना शुरू करें।