MCP ভার্সন ২ চালু হচ্ছে ২৮ জুলাই, ২০২৬ তারিখে। এটি প্রতিটি হ্যান্ডশেক (handshake), session-ID হেডার এবং সেই তিনটি লিগ্যাসি সাবসিস্টেম বাদ দিচ্ছে যা Model Context Protocol (MCP)-কে sticky-session সার্ভারের সাথে যুক্ত করে রাখত। প্রোটোকলটি সম্পূর্ণ স্টেটলেস (stateless) হয়ে যাচ্ছে, ফলে ক্লায়েন্ট স্টেট সংরক্ষণ না করেই যেকোনো অটোস্কেলড (autoscaled) বা সার্ভারলেস (serverless) ইনস্ট্যান্স যেকোনো রিকোয়েস্ট হ্যান্ডেল করতে পারবে।
কেন এই পরিবর্তনটি গুরুত্বপূর্ণ
MCP v1-এ ক্লায়েন্টকে একটি initialize হ্যান্ডশেক দিয়ে সেশন শুরু করতে বাধ্য করা হতো; এরপর সার্ভার একটি Mcp-Session-Id বরাদ্দ করত। পরবর্তী প্রতিটি কলের ক্ষেত্রে সেই হেডারটি বহন করতে হতো, যা ব্যবহারকারীকে একটি নির্দিষ্ট ব্যাকএন্ড নোডের সাথে আটকে রাখত। লোড ব্যালেন্সারগুলোকে সেশন অ্যাফিনিটি (session affinity) বজায় রাখতে হতো, যা ল্যাটেন্সি (latency) এবং অপারেশনাল জটিলতা বাড়িয়ে দিত।
স্টেটলেসনেস (Statelessness) এই জটিলতা দূর করে। এখন সমস্ত কনটেক্সট ডেডিকেটেড মেটা ফিল্ডে (meta fields) থাকে যা প্রতিটি HTTP কলের সাথে যায়। একটি রিকোয়েস্ট যেকোনো ইনস্ট্যান্সে পৌঁছাতে পারে, প্রসেস হতে পারে এবং রেসপন্স পাঠানোর সাথে সাথেই সেই ইনস্ট্যান্সটি বাদ দেওয়া যেতে পারে। যারা সার্ভারলেস প্ল্যাটফর্ম, কন্টেইনার-অরকেস্ট্রেটেড ক্লাস্টার, বা ডিমান্ড অনুযায়ী পড (pod) তৈরি ও বন্ধ করে এমন কোনো এনভায়রনমেন্ট ব্যবহার করেন, তারা এখন তাদের ইনফ্রাস্ট্রাকচারের সাথে এই প্রোটোকলটি সামঞ্জস্যপূর্ণ করতে পারবেন।
কোন বিষয়গুলো বাদ দেওয়া হচ্ছে
পারসিস্টেন্ট কানেকশনের ওপর নির্ভরশীল তিনটি সাবসিস্টেম আনুষ্ঠানিকভাবে ডিপ্রেকেটেড (deprecated) করা হচ্ছে:
- Sampling – v1-এ, একটি সার্ভার ক্লায়েন্টকে টেক্সট জেনারেট করার জন্য অনুরোধ করতে পারত, যা একটি ওপেন সেশনের প্রয়োজন হতো। v2-তে প্রত্যাশা করা হচ্ছে যে সার্ভার সরাসরি large-language-model প্রোভাইডারকে কল করবে অথবা
InputRequiredResultপ্যাটার্ন ব্যবহার করবে, যেখানে ক্লায়েন্ট একটি ফলো-আপ রিকোয়েস্টের মাধ্যমে অনুপস্থিত ইনপুট সরবরাহ করবে। - Roots – আগে, ক্লায়েন্টরা এমন URI পাঠাত যা এক্সটার্নাল রিসোর্সের ক্ষেত্রে সার্ভারের ভিউ সীমিত করে দিত। নতুন পদ্ধতিতে সেই URI-গুলো টুল প্যারামিটার (tool parameters) হিসেবে পাঠানো হবে অথবা রিকোয়েস্টের রিসোর্স ফিল্ডে এমবেড করা হবে, ফলে আলাদা "roots" নেগোসিয়েশন ধাপের প্রয়োজন হবে না।
- Logging – প্রোটোকল-লেভেল লগিং হেডারগুলো আর থাকবে না। লোকাল ডিবাগিংয়ের জন্য
stderr-এ লিখুন অথবা প্রোডাকশন অবজারভেবিলিটির (observability) জন্য OpenTelemetry ব্যবহার করুন।
ডিপ্রেসেশনের এই সময়সীমা এক বছর। এই সময়ের মধ্যে ডিপ্রেকেটেড ফিচারগুলো কাজ করতে থাকবে, যা টিমগুলোকে প্রোটোকলটি গ্রহণ করার আগে রিফ্যাক্টর (refactor) করার জন্য পর্যাপ্ত সময় দেবে।
স্টেটলেসনেস ছাড়াও নতুন কী আছে
MCP v2 দুটি অফিসিয়াল এক্সটেনশন যুক্ত করেছে:
- MCP Apps – সার্ভার-রেন্ডার করা ইউজার ইন্টারফেস বর্ণনা করার একটি লাইটওয়েট পদ্ধতি যা প্রোটোকলটি কল করতে পারে।
- Tasks – দীর্ঘমেয়াদী অপারেশনগুলো হ্যান্ডেল করার একটি প্যাটার্ন যা একাধিক রিকোয়েস্ট-রেসপন্স সাইকেল জুড়ে চলতে পারে।
উভয় এক্সটেনশনই স্টেটলেস রিকোয়েস্ট মডেল অনুসরণ করে এবং কোনো লুকানো সেশন স্টেট এড়িয়ে চলে।
ঝুঁকি এবং পাল্টা যুক্তি
এই পরিবর্তনটি কোনো 'প্লাগ-অ্যান্ড-প্লে' আপগ্রেড নয়। v2 SDK-গুলো এখনও বিটা (beta) পর্যায়ে আছে এবং একটি স্টেবল রিলিজ আসার আগে তাদের পাবলিক API পরিবর্তিত হতে পারে। যেসব প্রোডাকশন ওয়ার্কলোডে ব্রেকিং চেঞ্জ (breaking changes) সহ্য করা সম্ভব নয়, তারা v2 SDK স্টেবল না হওয়া পর্যন্ত স্টেবল v1 SDK ব্যবহার চালিয়ে যান।
ডেভেলপারদের বিদ্যমান কোডটি পরীক্ষা (audit) করে দেখা উচিত যে সেখানে ডিপ্রেকেটেড তিনটি সাবসিস্টেমের কোনোটি ব্যবহৃত হচ্ছে কি না।
একটি বাস্তবসম্মত মাইগ্রেশন রোডম্যাপ
- আজই অডিট করুন – আপনার সার্ভিসগুলোতে হ্যান্ডশেক,
Mcp-Session-Id, স্যাম্পলিং কল, রুটস URI এবং প্রোটোকল-লেভেল লগিংয়ের ব্যবহার স্ক্যান করুন। স্টেটলেস মডেলের অধীনে কোন কোডগুলো ভেঙে যেতে পারে তা চিহ্নিত করুন। - একটি নন-ক্রিটিক্যাল নোডে টেস্ট করুন – যখন একটি স্টেবল v2 SDK রিলিজ হবে, তখন একটি স্যান্ডবক্স (sandbox) সার্ভার চালু করুন, এটিকে একটি টেস্ট ক্লায়েন্টের দিকে নির্দেশ করুন এবং যাচাই করুন যে সমস্ত প্রয়োজনীয় মেটা ফিল্ড উপস্থিত আছে এবং সঠিকভাবে ইন্টারপ্রেট করা হচ্ছে কি না।
- ডেডলাইনের আগে সম্পূর্ণ মাইগ্রেশন সম্পন্ন করুন – রানটাইম রিজেকশন এড়াতে এক বছরের গ্রেস পিরিয়ড শেষ হওয়ার আগেই সমস্ত প্রোডাকশন নোডে সুইচ সম্পন্ন করুন।
পরবর্তীতে যা খেয়াল রাখতে হবে
- স্টেবল SDK রিলিজ – বিটা SDK-গুলো ফ্রিজ (freeze) করা হবে এবং একটি ভার্সনড স্টেবল প্যাকেজ প্রকাশ করা হবে। যেকোনো ক্রিটিক্যাল ডিপ্লয়মেন্টের জন্য সেই ভার্সনটি হবে নিরাপদ লক্ষ্য।
এই পরিবর্তনের জন্য কোড পরিবর্তন এবং বিটা-SDK নিয়ে পরীক্ষা-নিরীক্ষার একটি সংক্ষিপ্ত সময়ের প্রয়োজন হবে, তবে এর সুফল হিসেবে যেকোনো LLM-ভিত্তিক অ্যাপ্লিকেশনের জন্য একটি আরও পরিচ্ছন্ন এবং স্কেলেবল ইন্টিগ্রেশন পয়েন্ট পাওয়া যাবে।
মূল কথা: যদি আপনার স্ট্যাক এখনও MCP হ্যান্ডশেক বা ডিপ্রেকেটেড তিনটি সাবসিস্টেমের ওপর নির্ভরশীল হয়, তবে এখনই অডিট শুরু করুন; এক বছরের গ্রেস পিরিয়ড যথেষ্ট মনে হলেও আসল খরচ হলো রিফ্যাক্টর করার প্রচেষ্টা, ডেডলাইন নয়।
