𝗟𝗮𝘇𝘆 𝗟𝗼𝗮𝗱𝗶𝗻𝗴 𝗠𝗖𝗣 𝗧𝗼𝗼𝗹𝘀: कौन इसका समर्थन करता है और कैसे

अधिकांश लोग सोचते हैं कि MCP सर्वर की लागत कोड में होती है। वे गलत हैं।

यदि आप एक MCP सर्वर बनाते हैं, तो आपको दो प्रकार की टोकन लागतों का सामना करना पड़ता है:

  • फिक्स्ड कॉस्ट (Fixed cost): हर टर्न में कॉन्टेक्स्ट में लोड होने वाली टूल डेफिनिशन।
  • वेरिएबल कॉस्ट (Variable cost): टूल द्वारा लौटाए गए रिस्पॉन्स का आकार।

आप वेरिएबल कॉस्ट को नियंत्रित कर सकते हैं। आप परिणामों को पेजिनेट (paginate) कर सकते हैं या आउटपुट का आकार सीमित कर सकते हैं।

आप फिक्स्ड कॉस्ट को नियंत्रित नहीं करते हैं। यह होस्ट (क्लाइंट) का काम है।

यदि आपके पास कई टूल्स के साथ दस सर्वर हैं, तो मॉडल के आपके पहले मैसेज को पढ़ने से पहले ही आप 40,000 टोकन बर्बाद कर सकते हैं। ऐसा इसलिए होता है क्योंकि होस्ट हर टूल डेफिनिशन को पहले ही लोड कर लेता है।

इसका समाधान लेज़ी लोडिंग (lazy loading) है। इसका मतलब है कि होस्ट केवल एक छोटा सा सर्च टूल लोड करता है और अन्य डेफिनिशन को केवल आवश्यकता पड़ने पर ही खींचता है।

समस्या क्या है? अधिकांश क्लाइंट अभी तक इसका समर्थन नहीं करते हैं।

लेज़ी लोडिंग की वर्तमान स्थिति:

  • Claude Code: इसका समर्थन करता है। टूल्स एक सर्च टूल के माध्यम से मांग पर लोड होते हैं।
  • Cursor, Devin, और अन्य: वे इसका समर्थन नहीं करते हैं। वे सब कुछ एक साथ लोड करते हैं।

यदि लेज़ी लोडिंग की कमी वाले क्लाइंट पर आपका कॉन्टेक्स्ट बढ़ रहा है, तो आपके पास दो विकल्प हैं:

  1. लेज़ी प्रॉक्सी (lazy proxy) का उपयोग करें अपने होस्ट को अपने असली सर्वर के बजाय एक प्रॉक्सी सर्वर पर पॉइंट करें। प्रॉक्सी केवल दो टूल्स एक्सपोज़ करती है: search_tools और execute_tool| यह आपके असली डेफिनिशन को केवल अनुरोध किए जाने पर ही लोड करती है। यह आपके कॉन्टेक्स्ट को छोटा कर देता है लेकिन बारीक-स्तर (fine-grained) के अनुमति नियंत्रण को हटा देता है।

  2. राउटर पैटर्न (router pattern) का उपयोग करें यदि एक सर्वर बहुत बड़ा होता जा रहा है, तो और अधिक टूल्स न जोड़ें। इसके बजाय, एक ऑपरेशन पैरामीटर के साथ एक टूल बनाएं। उदाहरण के लिए, "list", "get", या "search" जैसे कमांड के साथ एक "docs" टूल का उपयोग करें। यह उन स्कीमा की संख्या को कम करता है जिन्हें होस्ट को लोड करना पड़ता है।

रणनीति का सारांश:

  • 6 से 15 टूल्स: कुछ न करें। लागत चिंता करने के लिए बहुत कम है।
  • एक सर्वर में कई टूल्स: राउटर पैटर्न का उपयोग करें।
  • कई अलग-अलग सर्वर: लेज़ी प्रॉक्सी का उपयोग करें।

अपने कोड को ऑप्टिमाइज़ करने में घंटों बिताने से पहले अपने क्लाइंट के व्यवहार की जाँच करें। समाधान शायद आपके सर्वर में हो ही नहीं।

Source: https://dev.to/ismaestro/lazy-loading-mcp-tools-which-clients-support-it-and-how-4414

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi