Lazy Loading MCP Tools: কে এটি সাপোর্ট করে এবং কীভাবে

বেশিরভাগ মানুষ মনে করেন MCP সার্ভারের খরচ কোডের মধ্যে থাকে। তারা ভুল।

আপনি যদি একটি MCP সার্ভার তৈরি করেন, তবে আপনি দুই ধরনের টোকেন খরচের সম্মুখীন হবেন:

  • Fixed cost: প্রতি টার্নে কনটেক্সটে লোড হওয়া টুল ডেফিনিশন (Tool definitions)।
  • Variable cost: একটি টুল যে রেসপন্সের সাইজ প্রদান করে।

আপনি variable cost নিয়ন্ত্রণ করতে পারেন। আপনি রেজাল্ট পেজিনেট (paginate) করতে পারেন বা আউটপুট সাইজ সীমিত করতে পারেন।

আপনি fixed cost নিয়ন্ত্রণ করতে পারেন না। এটি হোস্টের (ক্লায়েন্ট) কাজ।

আপনার যদি অনেক টুলসহ দশটি সার্ভার থাকে, তবে মডেল আপনার প্রথম মেসেজটি পড়ার আগেই আপনি ৪০,০০০ টোকেন অপচয় করতে পারেন। এটি ঘটে কারণ হোস্ট শুরুতেই প্রতিটি টুল ডেফিনিশন লোড করে নেয়।

এর সমাধান হলো lazy loading। এর মানে হলো হোস্ট শুধুমাত্র একটি ছোট সার্চ টুল লোড করে এবং প্রয়োজন হলেই কেবল অন্যান্য ডেফিনিশনগুলো নিয়ে আসে।

সমস্যাটি কী? বেশিরভাগ ক্লায়েন্ট এখনও এটি সাপোর্ট করে না।

Lazy loading-এর বর্তমান অবস্থা:

  • Claude Code: এটি সাপোর্ট করে। একটি সার্চ টুলের মাধ্যমে প্রয়োজন অনুযায়ী টুল লোড হয়।
  • Cursor, Devin এবং অন্যান্য: তারা এটি সাপোর্ট করে না। তারা সবকিছু একসাথে লোড করে।

যদি আপনার ক্লায়েন্টে lazy loading না থাকার কারণে কনটেক্সট অতিরিক্ত বেড়ে যায় (bloating), তবে আপনার কাছে দুটি বিকল্প রয়েছে:

  1. একটি lazy proxy ব্যবহার করুন আপনার আসল সার্ভারের পরিবর্তে হোস্টকে একটি প্রক্সি সার্ভারের দিকে নির্দেশ করুন। প্রক্সিটি শুধুমাত্র দুটি টুল প্রকাশ করে: search_tools এবং `execute