Anthropic ने आज Model Context Protocol (MCP) में एक बड़ा अपडेट जारी किया है, जिसमें मौजूदा HTTP+SSE तरीके की जगह एक नया "Streamable HTTP" ट्रांसफर तरीका पेश किया गया है। इस नवाचार ने MCP दूरस्थ ट्रांसफर की प्रमुख सीमाओं को पूरी तरह से हल कर दिया है, साथ ही इसके पहले के फायदे भी बरकरार रखे हैं।
यह अपडेट मूल रूप से MCP डेटा ट्रांसफर तंत्र का पुनर्गठन है, जिससे प्रोटोकॉल अधिक लचीला, उपयोग में आसान और अधिक संगत हो गया है। उदाहरण के लिए, पहले का MCP ट्रांसफर तरीका ग्राहक सेवा से बात करते समय लगातार ऑनलाइन रहने जैसा था (SSE को लंबे समय तक कनेक्शन की आवश्यकता होती है), जबकि नया तरीका किसी भी समय संदेश भेजने और प्रतिक्रिया की प्रतीक्षा करने जैसा है (साधारण HTTP अनुरोध, लेकिन स्ट्रीमिंग ट्रांसफर वैकल्पिक है)।
इस अपडेट में मुख्य रूप से पाँच प्रमुख परिवर्तन शामिल हैं: सबसे पहले, समर्पित /sse एंडपॉइंट को हटा दिया गया है, सर्वर अब SSE (Server-Sent Events) एंडपॉइंट को अलग से बनाए रखता नहीं है; दूसरा, सभी क्लाइंट से सर्वर तक के संदेश एकीकृत /message एंडपॉइंट के माध्यम से प्रेषित होते हैं, अब /sse पर निर्भर नहीं करते हैं; तीसरा, सर्वर आवश्यकतानुसार HTTP अनुरोध को SSE स्ट्रीम में गतिशील रूप से अपग्रेड कर सकता है, सूचनाएँ या अनुरोध भेजने के लिए; चौथा, क्लाइंट हेडर के माध्यम से Mcp-Session-Id प्रदान करता है, सर्वर स्वयं तय कर सकता है कि सत्र जानकारी संग्रहीत करनी है या नहीं; अंत में, यह पूरी तरह से बिना स्थिति वाले सर्वर संचालन का समर्थन करता है, अब लंबे समय तक कनेक्शन बनाए रखने की आवश्यकता नहीं है।
इस परिवर्तन को करने का मुख्य कारण यह है कि वर्तमान HTTP+SSE ट्रांसफर में कई कमियाँ हैं: कनेक्शन टूटने के बाद पुनर्प्राप्ति फ़ंक्शन का समर्थन नहीं करता है, क्लाइंट को पूरे सत्र को फिर से शुरू करने के लिए मजबूर करता है; सर्वर को निरंतर SSE कनेक्शन का समर्थन करने के लिए उच्च उपलब्धता बनाए रखने की आवश्यकता होती है; और SSE केवल एकतरफ़ा संचार (सर्वर से क्लाइंट तक) का समर्थन करता है, लचीले द्विदिश संचार को लागू नहीं कर सकता है। नया "Streamable HTTP" ट्रांसफर तरीका इन समस्याओं को सफलतापूर्वक हल करता है, साथ ही सिस्टम की स्केलेबिलिटी और लचीलेपन में उल्लेखनीय रूप से वृद्धि करता है।
डेवलपर्स के लिए, यह अपडेट कई सुविधाएँ लाता है: MCP सर्वर को लागू करना और अधिक सरल हो गया है, केवल साधारण HTTP सर्वर ही MCP का समर्थन कर सकता है, अब विशेष SSE सर्वर बनाने की आवश्यकता नहीं है; Vercel, Cloudflare, AWS Lambda जैसे लंबे समय तक कनेक्शन का समर्थन नहीं करने वाले क्लाउड प्लेटफॉर्म पर परिनियोजन करना आसान हो गया है; संगतता में काफी वृद्धि हुई है, मानक HTTP के रूप में नया तरीका CDN, API गेटवे, लोड बैलेंसिंग के साथ निर्बाध रूप से एकीकृत हो सकता है; स्केलेबिलिटी में उल्लेखनीय वृद्धि हुई है, बिना स्थिति वाले मोड संचालन का समर्थन करता है, और आवश्यकतानुसार SSE में गतिशील रूप से अपग्रेड किया जा सकता है।
इन्फ्रास्ट्रक्चर और सर्वर आर्किटेक्चर के मामले में, नए तरीके ने क्रांतिकारी बदलाव लाए हैं: बिना स्थिति वाला सर्वर संभव हो गया है, सर्वर को अब क्लाइंट सत्र जानकारी को लगातार संग्रहीत करने की आवश्यकता नहीं है; माइक्रोसर्विस आर्किटेक्चर के लिए अधिक उपयुक्त है, REST API, GraphQL, लोड बैलेंसिंग, CDN जैसे सिस्टम के साथ आसानी से एकीकृत हो सकता है; सर्वर संसाधन उपयोग दर अधिक है, अनुरोध को संसाधित करने के बाद संसाधन जारी किए जा सकते हैं, उच्च समवर्ती परिदृश्यों के लिए उपयुक्त है।
दिलचस्प बात यह है कि, हालांकि SSE में समस्याएँ हैं, Anthropic ने वैकल्पिक समाधान के रूप में WebSocket का चयन नहीं किया। इसका कारण यह है कि: WebSocket को लंबे समय तक कनेक्शन बनाए रखने की आवश्यकता होती है, जबकि MCP मुख्य रूप से RPC जैसे मोड का उपयोग करता है, प्रत्येक अनुरोध स्वतंत्र रूप से निष्पादित होता है; WebSocket HTTP हेडर जानकारी को प्रसारित नहीं कर सकता है, जिससे प्रमाणीकरण प्रक्रिया जटिल हो जाती है; WebSocket केवल GET अपग्रेड का समर्थन करता है, POST नहीं, MCP द्वारा उपयोग किए जाने वाले मुख्य POST अनुरोध के साथ असंगत है। इसलिए, अंततः HTTP का उपयोग जारी रखने का निर्णय लिया गया, लेकिन सर्वर को आवश्यकतानुसार SSE में अपग्रेड करने की क्षमता प्रदान की गई, न कि अनिवार्य रूप से SSE या WebSocket का उपयोग करने के लिए।
कुल मिलाकर, इस अपडेट ने MCP को और अधिक हल्का और लचीला बना दिया है, सर्वर स्वतंत्र रूप से तय कर सकता है कि स्ट्रीमिंग ट्रांसफर का समर्थन करना है या नहीं; परिनियोजन प्रक्रिया में उल्लेखनीय रूप से सुधार हुआ है, सर्वरलेस आर्किटेक्चर के लिए उपयुक्त है; संगतता में काफी वृद्धि हुई है, विभिन्न नेटवर्क अवसंरचना के साथ निर्बाध रूप से सहयोग कर सकता है; सर्वर संसाधन उपयोग दर अधिक है, बड़े पैमाने पर समवर्ती अनुरोधों का समर्थन करता है।
यह नवीन परिवर्तन MCP सर्वर को और अधिक सरल, अधिक कुशल और अधिक लचीला बनाता है, जो बड़े पैमाने पर वितरित परिनियोजन का समर्थन कर सकता है, SSE की सीमाओं से पूरी तरह से मुक्त है, और AI मॉडल और अनुप्रयोगों के बीच संचार के लिए एक नया अध्याय खोलता है।
प्रोजेक्ट पता: https://github.com/modelcontextprotocol/specification/pull/206