संक्षिप्त जवाब: हाँ, अगर आप हर सर्वर को ऐसे सॉफ़्टवेयर की तरह मानें जो आपकी ओर से कार्रवाई कर सकता है। तो क्या MCP इस्तेमाल करना सुरक्षित है? Model Context Protocol एक सीधा-सादा मैसेजिंग स्टैंडर्ड है। यह AI ऐप और एक टूल के बीच अनुरोध ले जाता है, लेकिन यह तय नहीं करता कि वह टूल किन चीज़ों को छू सकता है। जोखिम तीन जगहों पर रहता है: वे सर्वर जो आप इंस्टॉल करते हैं, वे परमिशन जो आप उन्हें देते हैं और वह कंटेंट जो आपका एजेंट रास्ते में पढ़ता है। ये सही हों तो MCP किसी मॉडल को फ़ाइलों, डेटाबेस और वेब सेवाओं से जोड़ने का एक उचित तरीका है। गलत हों तो एक ज़हरीला टूल डिस्क्रिप्शन किसी निजी रिपॉज़िटरी को किसी अजनबी तक भेज सकता है।
यह लेख MCP सर्वर के असली जोखिमों को सामने रखता है, उन घटनाओं के नाम बताता है जो सचमुच हुईं और अंत में एक सुरक्षा जाँच देता है जिसे लगभग दस मिनट में किया जा सकता है। न डराने वाली बातें हैं, न बढ़ा-चढ़ाकर दावे, बस विफलता के तरीके और उनके समाधान।
MCP असल में क्या करता है
MCP एक ओपन स्टैंडर्ड है, जिसे Anthropic ने 2024 के अंत में पेश किया, ताकि AI ऐप बाहरी टूल्स से एक जैसे तरीके से बात कर सकें। उससे पहले हर इंटीग्रेशन अलग कस्टम कोड से बनता था। अब ऐप एक ही प्रोटोकॉल बोलता है, और सर्वर टूल्स (जैसे क्वेरी चलाना), रिसोर्सेज़ (जैसे कोई फ़ाइल) और प्रॉम्प्ट (दोबारा इस्तेमाल होने वाले टेम्पलेट) उपलब्ध कराता है। मैसेज JSON-RPC के ज़रिए या तो लोकल पाइप (stdio) से या HTTP पर जाते हैं।

यही सादगी अच्छी भी है और बुरी भी। स्टैंडर्ड इंटीग्रेशन को आसान बनाता है, और इसी से कोई ऐसी चीज़ जोड़ना भी आसान हो जाता है जिसकी आपने जाँच नहीं की। प्रोटोकॉल खुद यह नहीं बताता कि कोई सर्वर भरोसे के लायक है या नहीं। वह फ़ैसला आपका है।
होस्ट, क्लाइंट और सर्वर की व्याख्या
हर सेटअप में तीन भूमिकाएँ दिखती हैं:
- होस्ट: वह ऐप जो आप असल में इस्तेमाल करते हैं, जैसे Claude Desktop, Cursor या VS Code।
- क्लाइंट: होस्ट के अंदर का एक कनेक्टर, जो एक सर्वर के साथ एक सेशन खुला रखता है।
- सर्वर: वह प्रोग्राम जो मॉडल के लिए टूल्स, रिसोर्सेज़ और प्रॉम्प्ट उपलब्ध कराता है।
मॉडल आपके डेटाबेस से सीधे बात नहीं करता। वह होस्ट से कहता है कि कोई टूल चलाए, क्लाइंट अनुरोध आगे भेजता है, और सर्वर वह काम करता है जिसकी उसे पहुँच दी गई है। आखिरी बात सबसे ज़रूरी है। सर्वर उतना ही सुरक्षित है जितनी उसके पीछे की पहुँच।
लोकल सर्वर बनाम रिमोट सर्वर
सर्वर कहाँ चलता है, इससे खतरे का मॉडल काफ़ी बदल जाता है। लोकल सर्वर आपकी अपनी मशीन पर चलने वाला प्रोसेस है, जिसे आपका होस्ट शुरू करता है। रिमोट सर्वर एक होस्टेड सेवा है, जिस तक आप इंटरनेट से पहुँचते हैं।

| लोकल सर्वर (stdio) | रिमोट सर्वर (HTTP) |
|---|
| कहाँ चलता है | आपकी अपनी मशीन पर | किसी और के इंफ़्रास्ट्रक्चर पर |
| कोड किसकी परमिशन से चलता है | आपके यूज़र की परमिशन से | वेंडर की परमिशन से |
| मुख्य जोखिम | एक खराब पैकेज आपके लैपटॉप पर चल जाता है | आपका डेटा और टोकन किसी तीसरे पक्ष तक पहुँचते हैं |
| भरोसे का सवाल | यह किसने लिखा है, और क्या वर्ज़न पिन है? | इसे कौन चलाता है, और वे क्या लॉग करते हैं? |
| सबसे अच्छा बचाव | सैंडबॉक्स, पिन किए वर्ज़न, केवल-पढ़ने की पहुँच | सीमित OAuth टोकन और वेंडर की समीक्षा |
💡 मोटा नियम: लोकल सर्वर एक ऐसा प्रोग्राम है जो आप चलाते हैं, इसलिए उसे किसी भी डाउनलोड की तरह मानें। रिमोट सर्वर एक ऐसी सेवा है जिस पर आप डेटा भरोसे से सौंपते हैं, इसलिए उसे किसी भी वेंडर की तरह परखें।
असली जोखिम कहाँ रहते हैं
ज़्यादातर MCP घटनाएँ अनोखी नहीं होतीं। वे कुछ दोहराए जाने वाले पैटर्न का पालन करती हैं, और इनमें से हर पैटर्न असल दुनिया में पहले ही सामने आ चुका है। इन सबके नीचे एक असहज तथ्य है: भाषा मॉडल निर्देश और डेटा को एक ही टेक्स्ट की धारा के रूप में पढ़ता है, इसलिए वह कमांड और कमेंट में भरोसे से फ़र्क नहीं कर पाता।
खुले तौर पर दिखने वाला टूल पॉइज़निंग
हर टूल के साथ एक डिस्क्रिप्शन आता है, और मॉडल उस टेक्स्ट को मार्गदर्शन की तरह पढ़ता है। यूज़र उसे शायद ही देखते हैं। 2025 में Invariant Labs के शोधकर्ताओं ने दिखाया कि एक दुर्भावनापूर्ण डिस्क्रिप्शन में छिपे कमांड हो सकते हैं, जैसे एजेंट को किसी लोकल क्रेडेंशियल फ़ाइल को पढ़ने और उसकी सामग्री एक सामान्य दिखने वाली कॉल के अंदर भेजने के लिए कहना।

ऊपर का लिफ़ाफ़ा सही तस्वीर है: पैकेज रोज़मर्रा का लगता है, लेकिन अंदर की पर्ची आगे होने वाली चीज़ बदल देती है। पहला बचाव है टूल का पूरा डिस्क्रिप्शन पढ़ना, सिर्फ़ टूल का नाम नहीं।
कंटेंट के ज़रिए प्रॉम्प्ट इंजेक्शन
आपका एजेंट सिर्फ़ आपके निर्देश नहीं मानता। वह इश्यू, ईमेल, वेब पेज और दस्तावेज़ भी पढ़ता है, और इनमें से कोई भी मॉडल के लिए निर्देश छिपा सकता है। GitHub MCP घटना में हमलावरों ने सार्वजनिक Issues और pull requests में तैयार किए गए प्रॉम्प्ट डाले। निजी रिपॉज़िटरी तक पहुँच वाला एजेंट इस तरह बहकाया गया कि उसने निजी कोड एक सार्वजनिक pull request में लीक कर दिया।
💡 खतरनाक त्रिकोण: सुरक्षा शोधकर्ता Simon Willison एक ऐसे संयोजन से बचने की बात करते हैं: निजी डेटा तक पहुँच, अविश्वसनीय कंटेंट का सामना, और डेटा बाहर भेजने का रास्ता। जब एक एजेंट के पास ये तीनों हों, तो एक इंजेक्ट किया गया वाक्य ही काफ़ी है। इनमें से कोई एक भी हटा दें, तो हमला टिक नहीं पाता।
खराब पैकेज और गड़बड़ प्लंबिंग
तीन और पैटर्न सामान्य सॉफ़्टवेयर सप्लाई चेन की समस्याओं से आते हैं:
- दुर्भावनापूर्ण सर्वर। 25 सितंबर 2025 को postmark-mcp सर्वर में एक बैकडोर का खुलासा हुआ। उसने हर आउटबाउंड ईमेल चुपचाप मेंटेनर के नियंत्रण वाले एक पते पर कॉपी कर दिया। सर्वर ठीक वही करता था जो उसने दावा किया था, इसलिए यह देर तक पकड़ में नहीं आया।
- रग पुल। एक सर्वर अच्छा व्यवहार करता है, मंज़ूर हो जाता है, फिर किसी बाद के अपडेट में अपनी टूल परिभाषाएँ बदल देता है। एक बार दी गई मंज़ूरी आपको वर्ज़न दो से नहीं बचाती।
- साधारण बग। CVE-2025-6514 लोकप्रिय mcp-remote पैकेज में आया और उसे गंभीरता के लिए 10 में से 9.6 स्कोर मिला। किसी असुरक्षित सर्वर से कनेक्ट करने पर, एक बनाए गए authorization URL के ज़रिए, क्लाइंट मशीन पर ऑपरेटिंग सिस्टम कमांड चल सकते थे। 0.1.16 से पहले के वर्ज़न प्रभावित थे, और यह पैकेज 558,000 से ज़्यादा बार डाउनलोड हुआ था।
| जोखिम | यह कैसे काम करता है | असली उदाहरण | पहला बचाव |
|---|
| टूल पॉइज़निंग | टूल डिस्क्रिप्शन में छिपे निर्देश | Invariant Labs के प्रदर्शन, 2025 | पूरी परिभाषाएँ पढ़ें, वर्ज़न पिन करें |
| प्रॉम्प्ट इंजेक्शन | एजेंट द्वारा पढ़े जाने वाले कंटेंट में छिपे निर्देश | GitHub MCP निजी रिपॉज़िटरी लीक | निजी डेटा को अविश्वसनीय इनपुट से अलग रखें |
| दुर्भावनापूर्ण सर्वर | आपके इंस्टॉल किए पैकेज के अंदर बैकडोर | postmark-mcp, सितंबर 2025 | ऑडिट किए गए, सक्रिय रूप से मेंटेन होने वाले सर्वर चुनें |
| रग पुल | मंज़ूरी के बाद परिभाषाएँ बदल जाती हैं | शोधकर्ताओं द्वारा रिपोर्ट किया गया पैटर्न | वर्ज़न पिन करें, हर अपडेट पर दोबारा समीक्षा करें |
| क्लाइंट बग | दुर्भावनापूर्ण सर्वर के ज़रिए कमांड इंजेक्शन | mcp-remote में CVE-2025-6514 | जल्दी पैच करें, केवल भरोसेमंद सर्वर से कनेक्ट करें |
नुकसान कितना होगा, यह परमिशन तय करती हैं
जब कुछ गलत होता है, तो परमिशन नुकसान का आकार तय करती हैं। एक ज़हरीला डिस्क्रिप्शन तब बस परेशानी है जब एजेंट सिर्फ़ एक फ़ोल्डर पढ़ सकता है। वही तब आपदा है जब एजेंट के पास एडमिन टोकन हो।
व्यवहार में लीस्ट प्रिविलेज

हर सर्वर को पहुँच का सबसे छोटा हिस्सा दें जिससे वह अपना काम कर सके:
- डेटाबेस: एक केवल-पढ़ने वाला रोल बनाएँ और सर्वर को रेप्लिका या स्टेजिंग कॉपी की ओर इंगित करें।
- फ़ाइलें: केवल एक प्रोजेक्ट फ़ोल्डर खोलें, पूरी होम डायरेक्टरी कभी नहीं।
- GitHub और क्लाउड अकाउंट: एक फ़ाइन-ग्रेन्ड टोकन इस्तेमाल करें जो एक रिपॉज़िटरी या एक प्रोजेक्ट तक सीमित हो।
- शेल एक्सेस: जब तक काम सच में ज़रूरी न हो, इसे बंद रखें, और उन टूल्स के साथ कभी न रखें जो अविश्वसनीय कंटेंट पढ़ते हैं।
💡 हर टूल के लिए एक सवाल पूछें: "अगर यह कॉल दुर्भावनापूर्ण होती, तो सबसे बुरा क्या हो सकता था?" अगर जवाब सुनकर सिहरन होती है, तो परमिशन घटा दें।
सीक्रेट्स प्रॉम्प्ट से बाहर रहें
क्रेडेंशियल चैट मैसेज, टूल आर्गुमेंट या Git में कमिट की गई config फ़ाइलों में नहीं होने चाहिए। उन्हें environment variables या सीक्रेट्स मैनेजर से लोड करें, छोटी अवधि वाले टोकन को प्राथमिकता दें, और जो भी कभी लॉग में दिखा हो उसे रोटेट करें। हर कमिट से पहले अपनी MCP config फ़ाइलें जाँचें, क्योंकि जल्दी के टेस्ट में चिपकाए गए टोकन अक्सर वहीं छिपे रहते हैं।
रिमोट सर्वर को असली प्रमाणीकरण चाहिए
रिमोट MCP सर्वर आपका डेटा किसी और की मशीन पर रखता है, इसलिए पहचान की जाँच लोकल प्रोसेस की तुलना में कहीं ज़्यादा मायने रखती है।

स्पेक जैसा चाहता है वैसा OAuth
जून 2025 की MCP authorization specification MCP सर्वर को OAuth 2.0 resource servers के रूप में वर्गीकृत करती है। टोकन माँगते समय क्लाइंट एक resource पैरामीटर (RFC 8707) शामिल करते हैं, जो हर एक्सेस टोकन को एक खास सर्वर से बाँध देता है। सर्वर A के लिए बना टोकन सर्वर B पर बेकार होना चाहिए, और कोई भी सर्वर वह टोकन ज़रूर अस्वीकार करे जो उसके लिए जारी नहीं हुआ।
उन्हीं दस्तावेज़ों में token passthrough के खिलाफ़ चेतावनी है, जिसमें सर्वर को मिला टोकन किसी डाउनस्ट्रीम API को आगे भेज देता है। इससे ऑडिट ट्रेल टूट जाते हैं, जवाबदेही धुंधली हो जाती है और confused deputy समस्या का खतरा बढ़ता है, जहाँ एक भरोसेमंद सर्वर को बहकाकर हमलावर के लिए उसका अधिकार इस्तेमाल करवाया जाता है।
टूल्स स्पेसिफ़िकेशन एक और नियम जोड़ता है जिसे दोहराना ज़रूरी है: हमेशा एक इंसान लूप में होना चाहिए, जो टूल कॉल को अस्वीकार कर सके। ज़्यादातर होस्ट इसे एक मंज़ूरी प्रॉम्प्ट के रूप में लागू करते हैं। उसे ऑटोपायलट की तरह बिना पढ़े क्लिक करके आगे न बढ़ें।
प्रिंट करने लायक सुरक्षा चेकलिस्ट
अपने सेटअप में कोई भी सर्वर जोड़ने से पहले यह सूची चलाएँ।

इंस्टॉल करने से पहले
- सोर्स रिपॉज़िटरी ढूँढें और हाल के कमिट और खुले issues पढ़ें।
- जाँचें कि उसे कौन मेंटेन करता है, वह कितने समय से है और क्या उसे नियमित रूप से पैच मिलते हैं।
- "latest" को फ़ॉलो करने के बजाय एक सटीक वर्ज़न पिन करें।
- सेवा के वेंडर द्वारा प्रकाशित सर्वर को प्राथमिकता दें।
- हर टूल डिस्क्रिप्शन पूरा पढ़ें, पैरामीटर डिस्क्रिप्शन सहित।
मंज़ूरी देने से पहले
- सबसे संकरी स्कोप दें जिससे काम पूरा हो जाए।
- प्रयोगों के लिए अलग अकाउंट या सैंडबॉक्स प्रोजेक्ट इस्तेमाल करें।
- जो टूल इस्तेमाल नहीं करते उन्हें बंद करें। कम टूल्स का मतलब छोटी अटैक सतह और मॉडल की बेहतर पसंद है।
- एक ही सेशन में निजी डेटा, अविश्वसनीय कंटेंट और आउटबाउंड चैनल कभी एक साथ न मिलाएँ।
चलते समय
हर टूल कॉल को उसके आर्गुमेंट, समय और उसके पीछे की पहचान के साथ लॉग करें। जब कुछ गलत लगे, तो आप यह दोबारा बनाना चाहेंगे कि एजेंट ने क्या पढ़ा और क्या भेजा। लॉग की हफ़्ते में एक बार समीक्षा करें, जैसे टीमें एक्सेस रिपोर्ट की समीक्षा करती हैं।

चार चेतावनी संकेतों पर नज़र रखें:
- ऐसी आउटबाउंड कॉल जिनकी आपने उम्मीद नहीं की थी।
- टूल परिभाषाएँ जो आपकी मंज़ूरी के बाद बदल गई हैं।
- काम से असंबंधित फ़ाइलों के बड़े रीड।
- किसी नई जगह से या अजीब समय पर इस्तेमाल हुए टोकन।
नुकसान का दायरा सीमित करें
मान लें कि एक सर्वर आखिरकार गड़बड़ करेगा, फिर यह सीमित करें कि उसकी कीमत आपको कितनी चुकानी पड़े।
सैंडबॉक्स और कंटेनर

ग्लव बॉक्स एक तकनीशियन को खतरनाक नमूना छुए बिना संभालने देता है। सॉफ़्टवेयर के लिए कंटेनर यही काम करते हैं। लोकल सर्वर को कंटेनर या सीमित यूज़र अकाउंट में चलाएँ, केवल वही फ़ोल्डर माउंट करें जिनकी उन्हें ज़रूरत है, जब टूल को उसकी ज़रूरत न हो तब आउटबाउंड नेटवर्क एक्सेस रोकें, और सीक्रेट्स इमेज से बाहर रखें। अगर कोई सर्वर दुश्मन बन जाए, तो वह आपके लैपटॉप की जगह एक काँच का बॉक्स तोड़ता है।
थकान के बिना मानवीय मंज़ूरी
मंज़ूरी प्रॉम्प्ट तभी काम करते हैं जब लोग उन्हें पढ़ें। जो टीमें हर चीज़ आदतन मंज़ूर कर देती हैं, उनके पास कोई सुरक्षा नहीं होती। टूल्स को जोखिम के हिसाब से बाँटें:
| टूल का प्रकार | उदाहरण | मंज़ूरी नीति |
|---|
| केवल पढ़ना, कम जोखिम | डॉक्स साइट खोजना, एक प्रोजेक्ट फ़ाइल पढ़ना | अपने-आप अनुमति दें |
| डेटा लिखता है | फ़ाइल संपादित करना, issue बनाना | सेशन में एक बार पूछें |
| डेटा बाहर भेजता है | ईमेल, webhook पर पोस्ट, अपलोड | हर बार पूछें |
| विनाशकारी या महँगा | डिलीट, डिप्लॉय, पैसा खर्च | हर बार पूछें, पूर्वावलोकन के साथ |
ऑटो-अप्रूव्ड सूची छोटी रखें, और जब भी कोई सर्वर अपडेट हो, उसकी समीक्षा करें।
Llama Guard 4 से इनपुट स्क्रीन करें
कंटेंट स्क्रीनिंग परमिशन का विकल्प नहीं, बल्कि एक और परत है। Llama Guard 4 12B PicassoIA पर एक मल्टीमॉडल सेफ़्टी मॉडल है, जो टेक्स्ट और इमेज को सुरक्षित या असुरक्षित के रूप में वर्गीकृत करता है और कुछ चिह्नित होने पर हानि की श्रेणी लौटाता है। आप इसका इस्तेमाल किसी वेब पेज, ईमेल या टूल के नतीजे को जाँचने के लिए कर सकते हैं, इससे पहले कि आपका एजेंट उस पर कार्रवाई करे, या यह परखने के लिए कि किसी एजेंट का मसौदा जवाब यूज़र तक पहुँचने से पहले चिह्नित होता है या नहीं।
💡 सीमाओं के बारे में यथार्थवादी रहें। Llama Guard 4 12B एक कंटेंट सेफ़्टी क्लासिफ़ायर है, जो हिंसा, नफ़रत भरे भाषण और खतरनाक निर्देश जैसी हानि श्रेणियों की जाँच करता है। यह कोई समर्पित प्रॉम्प्ट इंजेक्शन फ़ायरवॉल नहीं है, इसलिए इसे ऊपर के नियंत्रणों के साथ इस्तेमाल करें, उनकी जगह नहीं।
अपनी पहली जाँच चलाएँ
- PicassoIA पर Llama Guard 4 12B पेज खोलें।
- जिस टेक्स्ट को स्क्रीन करना है, उसे Prompt फ़ील्ड में चिपकाएँ, जैसे किसी वेब पेज का मुख्य भाग या कोई ईमेल जिसे आपका एजेंट पढ़ने वाला है।
- System Prompt भरें, जो ज़रूरी है, अपने मानदंडों के साथ: "टेक्स्ट को सुरक्षित या असुरक्षित के रूप में वर्गीकृत करें और हानि की श्रेणी बताएँ।"
- भरोसेमंद नतीजों के लिए Temperature को लगभग 0 से 0.2 के बीच कम रखें। इसकी रेंज 0 से 2 है और डिफ़ॉल्ट 1 है। Max Completion Tokens को डिफ़ॉल्ट 512 पर छोड़ें, क्योंकि फ़ैसला छोटा होता है।
- अगर आप इमेज भी स्क्रीन करना चाहें तो Image Input के ज़रिए स्क्रीनशॉट जोड़ें, फिर चलाएँ।
फ़ैसला आपको क्या बताता है
आपको सुरक्षित या असुरक्षित लेबल मिलता है, और कंटेंट असुरक्षित होने पर मेल खाने वाली श्रेणी भी। "असुरक्षित" को स्टॉप साइन मानें: कंटेंट रोकें और किसी इंसान को दिखाएँ। "सुरक्षित" को एक डेटा बिंदु मानें, क्लीन चिट नहीं। अगर झूठे अलार्म दिखें, तो सिस्टम प्रॉम्प्ट को उन उदाहरणों के साथ कसें जिन्हें आपकी टीम स्वीकार्य मानती है।
ट्रायेज के लिए, फ़ैसले के साथ Claude Sonnet 5 या GPT 5.6 Sol जैसे सक्षम रीज़निंग मॉडल को जोड़ें, ताकि चिह्नित आइटम का सार तैयार हो सके। इन्हें बिना किसी टूल एक्सेस के चलाएँ, ताकि कोई खतरनाक स्निपेट करने को कुछ न पाए।
PicassoIA पर सुरक्षित तरीके से कुछ बनाएँ
सुरक्षित आदतें तब आसानी से बनी रहती हैं जब आप ऐसे प्रोजेक्ट पर अभ्यास करें जहाँ कुछ भी संवेदनशील दाँव पर न हो। इमेज और वीडियो जनरेशन इसके लिए अच्छा ट्रेनिंग ग्राउंड है। PicassoIA Image सादी भाषा के प्रॉम्प्ट को सेकंडों में तैयार तस्वीर में बदल देता है, और Picasso IA Video टेक्स्ट से या किसी स्टार्टिंग इमेज से 24 फ़्रेम प्रति सेकंड पर, सिंक्रोनाइज़्ड ऑडियो के साथ, 480p या 720p पर 5 सेकंड की क्लिप रेंडर करता है।

PicassoIA एक डेवलपर API और इमेज व वीडियो जनरेशन के लिए MCP कनेक्शन भी देता है, और वहाँ भी वही नियम लागू होते हैं: एक प्रोजेक्ट के लिए एक क्रेडेंशियल बनाएँ, उसे सीक्रेट के रूप में सहेजें और अपना उपयोग देखते रहें। हर अकाउंट पर एक साथ 5 प्रेडिक्शन की सीमा है, जो API क्रेडेंशियल और MCP कनेक्शन में साझा होती है, और अगर कोई एजेंट कभी लूप में फँस जाए तो यह एक ब्रेक का भी काम करती है।
PicassoIA खोलें, एक प्रॉम्प्ट लिखें और पहले कम दाँव वाली चीज़ पर चेकलिस्ट चलाएँ। कुछ इमेज बनाएँ, अपनी पसंदीदा को एक छोटी क्लिप में ऐनिमेट करें, और एक पैराग्राफ़ को Llama Guard 4 12B से चलाकर देखें कि फ़ैसला कैसा दिखता है। फिर वही आदतें उन सर्वरों पर लाएँ जो सचमुच मायने रखते हैं।