Playwright MCP टोकन उपयोग: सेटअप टिप्स और क्या यह सुरक्षित है?
Playwright MCP हर कार्रवाई के बाद अपने एजेंट को पूरा एक्सेसिबिलिटी स्नैपशॉट लौटाता है, और टोकन यहीं खर्च होते हैं। उपयोग घटाने वाले फ़्लैग, चिपकाने लायक हल्का कॉन्फ़िग, CLI विकल्प और इस पर ईमानदार फ़ैसला देखें कि क्या यह सुरक्षित है।
Playwright MCP AI एजेंट को असली ब्राउज़र के हाथ देता है, और पेज देखने के हर मौके पर आपसे शुल्क लेता है। एक आम टास्क में MCP सर्वर के ज़रिए लगभग 114,000 टोकन लगने की रिपोर्ट मिली है, और यह तब भी लग जाता है जब एजेंट क्लिक करना पूरा भी नहीं कर पाता। वही सर्वर ऐसे ब्राउज़र के अंदर भी चल सकता है जिसमें आपके लॉग-इन सेशन रखे हों। इसलिए सर्च बॉक्स के दोनों सवाल जायज़ हैं: Playwright MCP टोकन उपयोग को काबू में कैसे रखें, और क्या इसे चलाना सुरक्षित है? नीचे आपको सटीक फ़्लैग, चिपकाने लायक कॉन्फ़िग, Playwright CLI से तुलना और जोखिम पर सीधा फ़ैसला मिलेगा।
💡 संक्षिप्त जवाब: स्क्रीनशॉट बंद रखें, वैकल्पिक क्षमताएँ अक्षम रखें, एक अलग प्रोफ़ाइल चलाएँ, और एजेंट को ऐसे अकाउंट की ओर कभी न भेजें जिनका नुकसान आप सह नहीं सकते। लंबे कोडिंग सेशन के लिए Playwright CLI सस्ता रास्ता है।
Playwright MCP टोकन क्यों खर्च करता है
Microsoft का Playwright MCP सर्वर डिफ़ॉल्ट रूप से स्क्रीनशॉट पर निर्भर नहीं रहता। यह एक एक्सेसिबिलिटी स्नैपशॉट लौटाता है: पेज के हर हेडिंग, लिंक, बटन और इनपुट का टेक्स्ट ट्री, जिसमें हर तत्व के साथ एक रेफ़रेंस ID लगी होती है, जिससे मॉडल क्लिक या टाइप करता है। पिक्सल का अंदाज़ा लगाने से यह ज़्यादा स्मार्ट तरीका है, क्योंकि मॉडल को बिना विज़न पास के पता होता है कि यह बटन है। लेकिन किसी भी व्यस्त पेज पर यह टेक्स्ट का लंबा ब्लॉक होता है, और जब भी यह आता है, उसके पैसे लगते हैं।
हर कार्रवाई के बाद स्नैपशॉट आते हैं
हर एक्शन टूल, जैसे browser_click या browser_type, नए पेज स्टेट के साथ वापस आता है। स्नैपशॉट बार-बार आपके कॉन्टेक्स्ट विंडो में जुड़ता है। कंटेंट-भारी साइट पर दस कदम का टास्क विंडो में दस ट्री जमा कर देता है, और सेशन साफ़ किए बिना इनमें से कोई नहीं जाता।
Playwright टीम की अपनी तुलना, जैसा कि कई लेखों में बताया गया है, एक आम टास्क के लिए MCP में लगभग 114,000 टोकन और CLI में लगभग 27,000 टोकन बताती है, यानी लगभग 4x का फ़र्क़। इन्हें मोटे अनुमान मानें, क्योंकि पेज का वज़न सब कुछ बदल देता है।
संबंधित Chrome DevTools MCP पर एक सार्वजनिक बग रिपोर्ट में वही समस्या दिखती है: एक भारी पेज पर एक क्लिक के बाद कॉन्टेक्स्ट लगभग 31,000 से बढ़कर 242,000 टोकन हो गया। सर्वर अलग है, पर दोषी वही है। लागत पेज ट्री से आती है, क्लिक से नहीं।
आप टाइप करने से पहले टूल डेफ़िनिशन लोड हो जाते हैं
हर MCP सर्वर अपने टूल स्कीमा के साथ आता है, और आपका होस्ट सेशन शुरू होते ही उन्हें कॉन्टेक्स्ट में लोड कर देता है। एक प्रैक्टिशनर ने Claude Code में कई सर्वरों के टूल डेफ़िनिशन के लिए 28.1k टोकन, यानी विंडो का 14.1 प्रतिशत मापा। Playwright MCP की टूल सूची लंबी है, और हर वैकल्पिक क्षमता उसमें और जोड़ती है। होस्ट भी सीमाएँ लगाते हैं: Cursor सभी सर्वरों को मिलाकर 40 टूल तक सीमित रखता है।
💡 टिप: अगर इस सेशन में आप ब्राउज़िंग नहीं कर रहे, तो Playwright सर्वर बंद कर दें। निष्क्रिय सर्वर भी स्कीमा के टोकन लेता है।
ऐसा सेटअप जो कॉन्टेक्स्ट छोटा रखे
डिफ़ॉल्ट कॉन्फ़िग
जो भी होस्ट mcpServers सेक्शन पढ़ता है, उसके लिए यह मानक ब्लॉक है:
यह काम करता है, लेकिन डिफ़ॉल्ट सुविधा को प्राथमिकता देते हैं: दिखने वाला ब्राउज़र, स्थायी प्रोफ़ाइल, स्क्रीनशॉट की अनुमति, स्नैपशॉट चालू, और हर ओरिजिन तक पहुँच। इनमें से ज़्यादातर को हर एक लाइन में कसा जा सकता है।
Claude Code में जोड़ें
claude mcp add playwright -- npx @playwright/mcp@latest --headless --isolated
डबल डैश के बाद की हर चीज़ सर्वर कमांड है। कनेक्ट हुआ या नहीं, यह जाँचने के लिए Claude Code के अंदर /mcp चलाएँ। अगर यह शुरू होने में विफल हो, तो जाँचें कि Node.js इंस्टॉल है और npx आपके PATH पर है।
--headless ब्राउज़र को बिना विंडो के चलाता है। डिफ़ॉल्ट में एक दिखने वाली विंडो होती है।
--isolated प्रोफ़ाइल को मेमोरी में रखता है, इसलिए सेशन खत्म होते ही कुकीज़ गायब हो जाती हैं।
--image-responses=omit टूल रिस्पॉन्स से स्क्रीनशॉट हटाता है।
--allowed-origins सेमीकोलन से अलग किए गए ओरिजिन लेता है। यहाँ अपने डोमेन डालें।
जो फ़्लैग टोकन उपयोग घटाते हैं
हर फ़्लैग टोकन नहीं बचाता, और कुछ फ़्लैग सुरक्षा पाने के लिए टोकन की कीमत चुकाते हैं। यह तालिका दोनों असर साथ-साथ दिखाती है।
फ़्लैग
क्या करता है
टोकन पर असर
सुरक्षा पर असर
--image-responses omit
टूल रिस्पॉन्स से स्क्रीनशॉट हटाता है
इमेज पेलोड हटते हैं
ब्राउज़र से कम पेज डेटा बाहर जाता है
--snapshot-mode none
अपने आप बनने वाला पेज स्नैपशॉट बंद करता है (README मान: full, none)
सबसे बड़ी कटौती, पर एजेंट आधा अंधा होकर काम करता है
तटस्थ
--caps
वैकल्पिक टूलसेट चालू करता है: vision, pdf, devtools, config, network, storage, testing
बंद छोड़ने पर टूल स्कीमा कम
छोटी अटैक सतह
--storage-state
कुकीज़ और localStorage को एक अलग कॉन्टेक्स्ट में लोड करता है
लॉग-इन स्टेप छूटते हैं, इसलिए कार्रवाइयाँ कम
असली सेशन डेटा ले जाता है, इसलिए टेस्ट अकाउंट इस्तेमाल करें
--blocked-origins
सूचीबद्ध ओरिजिन के अनुरोध ब्लॉक करता है
हल्के पेज और छोटे ट्री
सुविधा है, दीवार नहीं
पहले इमेज हटाएँ
--image-responsesallow, omit या only स्वीकार करता है, और डिफ़ॉल्ट allow है। टेक्स्ट-भारी कामों के लिए, जैसे प्राइसिंग टेबल पढ़ना या फ़ॉर्म भरना, omit मुफ़्त बचत है। हालाँकि यह बिल घटाता है, ठीक नहीं करता। एक्सेसिबिलिटी स्नैपशॉट अब भी सबसे बड़ी लागत है।
--snapshot-mode none मोटा और अंधाधुंध औज़ार है। इसे केवल तब इस्तेमाल करें जब एजेंट स्क्रिप्ट के ज़रिए पेज चलाता हो, क्योंकि जो मॉडल पेज देख नहीं सकता, वह अनुमान लगाएगा।
कैप से क्षमताओं पर रोक लगाएँ
--caps फ़्लैग वैकल्पिक टूलसेट चालू करता है: कोऑर्डिनेट-आधारित माउस एक्शन के लिए vision, pdf, devtools, config, network, storage और testing। जब तक टास्क को उनकी ज़रूरत न हो, इन्हें बंद रखें। testing सेट वेरिफ़िकेशन टूल चालू करता है, इसलिए इसे केवल उन सेशन में चालू करें जहाँ आप टेस्ट लिख रहे हों।
3 आम गलतियाँ
लंबे सेशन। स्नैपशॉट जमा होते जाते हैं और कभी बाहर नहीं निकलते। हर टास्क के लिए नया सेशन शुरू करें।
टेक्स्ट के काम के लिए स्क्रीनशॉट। अगर जवाब टेक्स्ट के रूप में पेज पर है, तो इमेज बेकार बोझ है।
वह क्लिक करना जिसे स्क्रिप्ट किया जा सकता था। एजेंट से एक बार Playwright टेस्ट लिखवाएँ, फिर उसे npx playwright test से चलाएँ। रन कुछ लाइनें छापता है, दर्जनों ट्री नहीं।
Playwright MCP बनाम Playwright CLI
प्रोजेक्ट का README इस समझौते के बारे में खुलकर बताता है: "CLI इन्वोकेशन ज़्यादा टोकन-कुशल हैं: वे बड़ी टूल स्कीमा और विस्तृत एक्सेसिबिलिटी ट्री को मॉडल कॉन्टेक्स्ट में लोड होने से बचाते हैं।" यह MCP को उन वर्कफ़्लो के लिए रखता है जिन्हें "स्थायी स्टेट, समृद्ध इंट्रोस्पेक्शन और बार-बार होने वाली रीज़निंग" चाहिए।
रिपोर्ट किए गए आँकड़े
माप
Playwright MCP
Playwright CLI
आम टास्क (रिपोर्ट किया गया)
लगभग 114,000 टोकन
लगभग 27,000 टोकन
स्नैपशॉट का संभालना
हर रिस्पॉन्स में इनलाइन लौटता है
YAML फ़ाइल के रूप में डिस्क पर सेव होता है
प्रति इंटरैक्शन (प्रैक्टिशनर रिपोर्ट)
बड़े स्नैपशॉट पेलोड
ट्यूनिंग के बाद लगभग 1,000 से 2,000 टोकन
टूल स्कीमा
सेशन शुरू होते ही कॉन्टेक्स्ट में लोड
कोई नहीं, यह शेल कमांड के रूप में चलता है
सबसे उपयुक्त
स्थायी स्टेट और बार-बार की रीज़निंग
लंबे कोडिंग सेशन और ज़्यादा थ्रूपुट
ये आँकड़े Playwright टीम के बेंचमार्क के लेखों और प्रैक्टिशनरों से आए हैं, मेरे चलाए किसी टेस्ट से नहीं। इसलिए किसी वर्कफ़्लो को इन पर बनाने से पहले अपने टास्क पर खुद मापें।
MCP कब भी जीतता है
छोटे, उच्च-मूल्य वाले निरीक्षण। एक पेज, एक सवाल, एक जवाब।
अस्थिर फ़्लो को डीबग करना। एजेंट को जो दिखता है, उसी से अगला कदम चुनना होता है।
बिना शेल एक्सेस वाले होस्ट। जब MCP सर्वर ही मॉडल को ब्राउज़र टूल देने का एकमात्र तरीका हो।
एक सरल नियम अच्छा काम करता है: MCP से जाँचें, फिर फ़्लो को स्क्रिप्ट में जमाएँ और उसे CLI से चलाएँ।
क्या Playwright MCP वाकई सुरक्षित है?
ईमानदार जवाब के दो हिस्से हैं। यह अलग प्रोफ़ाइल के साथ, उन साइटों पर स्थानीय डेवलपमेंट के लिए काफ़ी सुरक्षित है जिन पर आप भरोसा करते हैं। जिस ब्राउज़र में आप बैंकिंग करते हैं, उसके अंदर बिना निगरानी वाले एजेंट के रूप में यह सुरक्षित नहीं है। README साफ़ कहता है: "Playwright MCP कोई सुरक्षा सीमा नहीं है।"
वेब पेजों से प्रॉम्प्ट इंजेक्शन
एजेंट जो कुछ भी पढ़ता है, वह मॉडल इनपुट बन जाता है। कोई पेज सफ़ेद पर सफ़ेद टेक्स्ट में, HTML कमेंट में, या इमेज के alt एट्रिब्यूट में छिपा टेक्स्ट रख सकता है, जो एजेंट को आपके निर्देश अनदेखा करने और कोई और URL खोलने को कहे। एक्सेसिबिलिटी ट्री इन सबको आपके अपने प्रॉम्प्ट के बगल में सादे टेक्स्ट में बदल देता है। मॉडल इनमें से कुछ हमलों को रोकते हैं और कुछ को चूक जाते हैं।
क्या मदद करता है:
केवल वही पेज ब्राउज़ करें जिन पर आप भरोसा करते हैं, या जो आपके अपने हैं।
टेस्ट करते समय अपने होस्ट में हर टूल के लिए अनुमोदन चालू रखें।
ब्राउज़र को उसी सेशन में शेल, ईमेल या फ़ाइल राइट जैसे दूसरे शक्तिशाली टूल के साथ न जोड़ें।
लॉग-इन प्रोफ़ाइल दांव बढ़ाती हैं
डिफ़ॉल्ट रूप से ब्राउज़र डिस्क पर एक स्थायी प्रोफ़ाइल रखता है, और --user-data-dir तय करता है कि वह कहाँ रहेगी, ताकि कुकीज़ सेशन के बीच बची रहें। --extension विकल्प इससे आगे जाता है और आपके पहले से खुले Edge या Chrome इंस्टेंस से जुड़ जाता है। इस मोड में हाइजैक हुआ एजेंट आपकी ओर से हर उस साइट पर काम करता है जिसमें आप साइन इन हैं। किसी भी लॉग-इन से जुड़े काम के लिए --isolated के साथ एक डिस्पोज़ेबल अकाउंट इस्तेमाल करें।
ओरिजिन फ़िल्टर दीवार क्यों नहीं हैं
--allowed-origins और --blocked-origins सेमीकोलन से अलग की गई सूचियाँ लेते हैं, और डिफ़ॉल्ट में सब कुछ अनुमति है। ये शोर और भटकते अनुरोधों को कम करते हैं, पर ये सुरक्षा सीमा नहीं हैं। यही बात --secrets पर भी लागू होती है, जो संवेदनशील स्ट्रिंग्स को जवाबों में मास्क करने के लिए एक dotenv फ़ाइल की ओर इशारा करता है: काम का है, गारंटी नहीं। --allow-unrestricted-file-access बंद रखें, क्योंकि यह file:// URL और आपके वर्कस्पेस के बाहर की पहुँच देता है।
जोखिम
क्या हो सकता है
समाधान
प्रॉम्प्ट इंजेक्शन
पेज का टेक्स्ट एजेंट को दिशा देता है
भरोसेमंद साइटें और टूल अनुमोदन
स्थायी प्रोफ़ाइल
कुकीज़ डिस्क पर रहती हैं और दोबारा इस्तेमाल होती हैं
--isolated
एक्सटेंशन मोड
एजेंट आपके असली सेशन के अंदर काम करता है
संवेदनशील अकाउंट के लिए इसे छोड़ दें
फ़ाइल एक्सेस
स्थानीय फ़ाइलें पहुँच में आ जाती हैं
बिना प्रतिबंध वाली एक्सेस बंद रखें
खुला पोर्ट
नेटवर्क पर कोई भी सर्वर तक पहुँच सकता है
localhost पर बाइंड करें, --allowed-hosts को डिफ़ॉल्ट पर रखें
रोज़ाना इस्तेमाल के लिए हार्डनिंग चेकलिस्ट
पहले अलग प्रोफ़ाइल
--isolated से शुरू करें, ताकि कुछ भी बना न रहे।
लॉग-इन चाहिए? एक टेस्ट अकाउंट बनाएँ, उसका स्टेट सेव करें, और --storage-state से लोड करें।
पासवर्ड अपने प्रॉम्प्ट से बाहर रखें। मानों को मास्क करने के लिए dotenv फ़ाइल के साथ --secrets इस्तेमाल करें।
@latest की जगह एक सटीक वर्ज़न पिन करें, ताकि कोई नया रिलीज़ आपकी जानकारी के बिना व्यवहार न बदल दे।
बिना पोर्ट खोले Docker
एक डिस्पोज़ेबल ब्राउज़र के लिए, जो आपके होस्ट प्रोफ़ाइल को कभी न छुए, README यह कमांड देता है:
docker run -i --rm --init --pull=always mcr.microsoft.com/playwright/mcp
लंबे समय तक चलने वाली HTTP सर्विस के लिए README का उदाहरण पोर्ट 8931 प्रकाशित करता है और कंटेनर के अंदर --host 0.0.0.0 को बाइंड करता है। इसे केवल loopback पर प्रकाशित करें, ताकि आपके नेटवर्क की दूसरी मशीनें इस तक न पहुँच सकें:
--no-sandbox फ़्लैग Chromium का अपना sandbox बंद कर देता है, इसलिए कंटेनर ही आपकी सीमा बन जाता है। संवेदनशील होस्ट फ़ोल्डर उसमें माउंट न करें।
💡 फ़ैसला: Playwright MCP को अपने घर में आए ठेकेदार की तरह चलाएँ, परिवार के सदस्य की तरह नहीं। उसे एक कमरा दें (एक अलग प्रोफ़ाइल), एक छोटा टास्क दें, और कोई उसे देखता रहे।
PicassoIA पर Sonnet 5 कैसे इस्तेमाल करें
MCP कॉन्फ़िग के लिए एक भाषा मॉडल दूसरी जोड़ी आँखों जैसा सस्ता विकल्प है। PicassoIA पर Claude Sonnet 5 कोडिंग टास्क के लिए सूचीबद्ध है, जो कॉन्फ़िग रिव्यू के लिए ठीक बैठता है।
💡 चेतावनी: किसी भी चैट बॉक्स में कभी भी .env फ़ाइलें, API टोकन या कुकीज़ न चिपकाएँ। पहले उनकी जगह प्लेसहोल्डर रखें।
MCP सिर्फ़ ब्राउज़र के लिए नहीं है। PicassoIA का अपना Claude के लिए कनेक्टर भी है, जो कुछ गिने-चुने टूल के ज़रिए इमेज जनरेशन, इमेज एडिटिंग और वीडियो जनरेशन उपलब्ध कराता है। लंबी ब्राउज़र टूल सूची वाले सर्वर की तुलना में इससे टूल स्कीमा का बोझ कम रहता है।
अब अपनी इमेज बनाएँ
ब्राउज़र एजेंट वेब पढ़ते हैं, पर आपके लेख, प्रोडक्ट और पोस्ट को अब भी ऐसी तस्वीरें चाहिए जो स्क्रॉल रोक दें। Picasso IA फ़ोटोरियलिस्टिक इमेज मॉडल एक क्लिक दूर रखता है, ताकि आप मिनटों में एक विचार से तैयार विज़ुअल तक पहुँच सकें।
तेज़ पहला ड्राफ़्ट पाने के लिए PicassoIA Image से शुरू करें, फिर वही प्रॉम्प्ट Seedream 5 Pro पर चलाएँ और नतीजों की साथ-साथ तुलना करें।
एक प्रॉम्प्ट फ़ॉर्मूला जो काम करता है: सब्जेक्ट + सेटिंग + रोशनी + लेंस। उदाहरण के लिए:
एक डेवलपर धूप वाली खिड़की के पास डेस्क पर लैपटॉप स्क्रीन देख रहा है, सुबह की रोशनी बाईं ओर से, 85mm लेंस, उथला डेप्थ ऑफ़ फ़ील्ड, प्राकृतिक फ़िल्म ग्रेन।
एक बार में एक डिटेल बदलें, जैसे रोशनी या लेंस, और देखें कि नतीजा कैसे बदलता है। दस मिनट के छोटे प्रयोग आपके प्रॉम्प्ट को किसी भी चेकलिस्ट से ज़्यादा निखारेंगे। Picasso IA खोलें, ऊपर का प्रॉम्प्ट चिपकाएँ, और आज ही अपनी पहली इमेज बनाएँ।