𝗟𝗮𝘇𝘆 𝗟𝗼𝗮𝗱𝗶𝗻𝗴 𝗠𝗖𝗣 𝗧𝗼𝗼𝗹𝘀: कोण याला सपोर्ट करते आणि कसे?

बहुतेक लोकांना वाटते की MCP सर्व्हरचा खर्च कोडमध्ये असतो. ते चुकीचे आहेत.

जर तुम्ही MCP सर्व्हर तयार केला, तर तुम्हाला दोन प्रकारच्या टोकन खर्चाचा सामना करावा लागतो:

  • स्थिर खर्च (Fixed cost): प्रत्येक वेळी कॉन्टेक्स्टमध्ये लोड होणाऱ्या टूल डेफिनिशन्स (Tool definitions).
  • बदलता खर्च (Variable cost): टूलद्वारे परत येणाऱ्या प्रतिसादाचा (response) आकार.

तुम्ही बदलता खर्च (variable cost) नियंत्रित करू शकता. तुम्ही रिझल्ट्सचे पेजिनेशन (paginate) करू शकता किंवा आउटपुटचा आकार मर्यादित करू शकता.

तुम्ही स्थिर खर्च (fixed cost) नियंत्रित करू शकत नाही. हे होस्टचे (क्लायंटचे) काम आहे.

जर तुमच्याकडे अनेक टूल्ससह दहा सर्व्हर्स असतील, तर मॉडेलने तुमचा पहिला मेसेज वाचण्यापूर्वीच तुमचे ४०,००० टोकन्स वाया जाऊ शकतात. असे घडते कारण होस्ट प्रत्येक टूल डेफिनेशन आधीच लोड करतो.

याचे समाधान म्हणजे 'lazy loading'. याचा अर्थ असा की होस्ट फक्त एक लहान 'search tool' लोड करतो आणि इतर डेफिनिशन्स फक्त गरजेनुसारच घेतो.

समस्या काय आहे? बहुतेक क्लायंट्स अजूनही याला सपोर्ट करत नाहीत.

Lazy loading ची सध्याची स्थिती:

  • Claude Code: याला सपोर्ट करते. सर्च टूलद्वारे गरजेनुसार टूल्स लोड होतात.
  • Cursor, Devin आणि इतर: ते याला सपोर्ट करत नाहीत. ते सर्व काही एकाच वेळी लोड करतात.

जर तुमच्याकडे lazy loading नसलेल्या क्लायंटवर तुमचा कॉन्टेक्स्ट फुगत (bloating) असेल, तर तुमच्याकडे दोन पर्याय आहेत:

  1. Lazy proxy वापरा तुमच्या होस्टला तुमच्या खऱ्या सर्व्हर्सऐवजी प्रॉक्सी सर्व्हरकडे निर्देशित करा. प्रॉक्सी फक्त दोन टूल्स एक्सपोज करते: search_tools आणि execute_tool. जेव्हा विनंती केली जाते तेव्हाच ती तुमच्या खऱ्या डेफिनिशन्स लोड करते. यामुळे तुमचा कॉन्टेक्स्ट कमी होतो पण सूक्ष्म परवानगी नियंत्रण (fine-grained permission control) निघून जाते.

  2. Router pattern वापरा जर एक सर्व्हर खूप मोठा होत असेल, तर त्यात अधिक टूल्स जोडू नका. त्याऐवजी, एक 'operation parameter' असलेले एक टूल तयार करा. उदाहरणार्थ, "list", "get", किंवा "search" सारख्या कमांड्ससह एक "docs" टूल वापरा. यामुळे होस्टला लोड कराव्या लागणाऱ्या स्कीमांची (schemas) संख्या कमी होते.

धोरणाचा सारांश (Summary of strategy):

  • ६ ते १५ टूल्स: काहीही करू नका. खर्च काळजी करण्याइतका जास्त नाही.
  • एका सर्व्हरमध्ये अनेक टूल्स: Router pattern वापरा.
  • अनेक वेगवेगळे सर्व्हर्स: Lazy proxy वापरा.

तुमचा कोड ऑप्टिमाइझ करण्यासाठी तासनतास खर्च करण्यापूर्वी तुमच्या क्लायंटचे वर्तन तपासा. उपाय कदाचित तुमच्या सर्व्हरमध्ये नसू शकतो.

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

Optional learning community: https://t.me/GyaanSetuAi