𝗟𝗮𝘇𝘆 𝗟𝗼𝗮𝗱𝗶𝗻𝗴 𝗠𝗖𝗣 𝗧𝗼𝗼𝗹𝘀: કોણ તેને સપોર્ટ કરે છે અને કેવી રીતે

મોટાભાગના લોકો માને છે કે MCP સર્વરનો ખર્ચ કોડમાં હોય છે. તેઓ ખોટા છે.

જો તમે MCP સર્વર બનાવો છો, તો તમારે બે પ્રકારના ટોકન ખર્ચનો સામનો કરવો પડે છે:

  • ફિક્સ્ડ કોસ્ટ (Fixed cost): દરેક ટર્નમાં કોન્ટેક્સ્ટમાં લોડ કરવામાં આવતી ટૂલ ડેફિનેશન્સ.
  • વેરિયેબલ કોસ્ટ (Variable cost): ટૂલ દ્વારા રિટર્ન કરવામાં આવતા રિસ્પોન્સનું કદ.

તમે વેરિયેબલ કોસ્ટને નિયંત્રિત કરી શકો છો. તમે પરિણામોને પેજીનેટ (paginate) કરી શકો છો અથવા આઉટપુટનું કદ મર્યાદિત કરી શકો છો.

તમે ફિક્સ્ડ કોસ્ટને નિયંત્રિત કરી શકતા નથી. તે હોસ્ટ (ક્લાયન્ટ) નું કામ છે.

જો તમારી પાસે ઘણા ટૂલ્સ ધરાવતા દસ સર્વર હોય, તો મોડેલ તમારો પહેલો મેસેજ વાંચે તે પહેલાં જ તમે 40,000 ટોકન્સ વેડફી શકો છો. આવું એટલા માટે થાય છે કારણ કે હોસ્ટ દરેક ટૂલ ડેફિનેશનને અગાઉથી જ લોડ કરી લે છે.

તેનો ઉકેલ લેઝી લોડિંગ (lazy loading) છે. આનો અર્થ એ છે કે હોસ્ટ ફક્ત એક નાનું search ટૂલ લોડ કરે છે અને અન્ય ડેફિનેશન્સ ત્યારે જ ખેંચે છે જ્યારે તેની જરૂર હોય.

સમસ્યા શું છે? મોટાભાગના ક્લાયન્ટ્સ હજુ સુધી આને સપોર્ટ કરતા નથી.

લેઝી લોડિંગની વર્તમાન સ્થિતિ:

  • Claude Code: તેને સપોર્ટ કરે છે. ટૂલ્સ search ટૂલ દ્વારા જરૂરિયાત મુજબ લોડ થાય છે.
  • Cursor, Devin, અને અન્ય: તેઓ તેને સપોર્ટ કરતા નથી. તેઓ બધું એકસાથે લોડ કરે છે.

જો લેઝી લોડિંગ વગરના ક્લાયન્ટ પર તમારું કોન્ટેક્સ્ટ ફૂલી રહ્યું હોય (bloating), તો તમારી પાસે બે વિકલ્પો છે:

  1. લેઝી પ્રોક્સી (lazy proxy) નો ઉપયોગ કરો તમારા હોસ્ટને તમારા અસલી સર્વર્સને બદલે પ્રોક્સી સર્વર પર પોઇન્ટ કરો. પ્રોક્સી ફક્ત બે જ ટૂલ્સ એક્સપોઝ કરે છે: search_tools અને execute_tool. તે ફક્ત વિનંતી કરવામાં આવે ત્યારે જ તમારી અસલી ડેફિનેશન્સ લોડ કરે છે. આ તમારા કોન્ટેક્સ્ટને ઘટાડે છે પરંતુ ઝીણવટભર્યું પરમિશન કંટ્રોલ (fine-grained permission control) દૂર કરે છે.

  2. રાઉટર પેટર્ન (router pattern) નો ઉપયોગ કરો જો એક સર્વર ખૂબ મોટું થઈ રહ્યું હોય, તો વધુ ટૂલ્સ ઉમેરશો નહીં. તેના બદલે, એક ઓપરેશન પેરામીટર સાથે એક ટૂલ બનાવો. ઉદાહરણ તરીકે, "list", "get", અથવા "search" જેવા કમાન્ડ્સ સાથે એક "docs" ટૂલનો ઉપયોગ કરો. આનાથી હોસ્ટ દ્વારા લોડ કરવા પડતા સ્કીમા (schemas) ની સંખ્યા ઘટે છે.

વ્યૂહરચનાનો સારાંશ:

  • 6 થી 15 ટૂલ્સ: કંઈ જ ન કરો. ખર્ચ ચિંતા કરવા માટે ખૂબ ઓછો છે.
  • એક જ સર્વરમાં ઘણા ટૂલ્સ: રાઉટર પેટર્નનો ઉપયોગ કરો.
  • ઘણા અલગ-અલગ સર્વર્સ: લેઝી પ્રોક્સીનો ઉપયોગ કરો.

તમારા કોડને ઓપ્ટિમાઇઝ કરવામાં કલાકો વિતાવતા પહેલા તમારા ક્લાયન્ટના વર્તનને તપાસો. ઉકેલ કદાચ તમારા સર્વરમાં હોય જ નહીં.

સ્ત્રોત: https://dev.to/ismaestro/lazy-loading-mcp-tools-which-clients-support-it-and-how-4414

વૈકલ્પિક લર્નિંગ કમ્યુનિટી: https://t.me/GyaanSetuAi