TL;DR: MCP 2026-07-28 پروٹوکول کی سطح کے سیشنز اور لازمی initialization ہینڈشیک کو ہٹا دیتا ہے۔ پروڈکشن ٹیمیں پوشیدہ سیشن انحصارات تلاش کریں، ہر درخواست کے لیے پروٹوکول میٹاڈیٹا اپنائیں، Multi Round-Trip Requests نافذ کریں، گیٹ وے پالیسیاں اپ ڈیٹ کریں، اور پرانے طرزِ عمل کو ریٹائر کرنے سے پہلے نئے پروٹوکول کو کینیری کریں۔
28 جولائی، 2026 کو جاری ہونے والی Model Context Protocol کی وضاحت MCP میں ریموٹ ٹرانسپورٹ سپورٹ شامل کیے جانے کے بعد کی سب سے بڑی معمارانہ تبدیلی متعارف کراتی ہے۔
اب پروٹوکول ایک stateless درخواست-اور-جواب کور استعمال کرتا ہے۔ لازمی initialize اور notifications/initialized کا تبادلہ ختم کر دیا گیا ہے، Mcp-Session-Id ہٹا دیا گیا ہے، اور ہر درخواست اپنے عمل کے لیے درکار پروٹوکول معلومات اپنے ساتھ لے کر چلتی ہے۔
اس ریلیز میں Multi Round-Trip Requests، HTTP روٹنگ ہیڈرز، cacheable فہرست جوابات، زیادہ سخت اجازت دہی کا برتاؤ، ایک ایکسٹینشنز فریم ورک، اور رسمی deprecation لائف سائیکل بھی شامل ہیں۔ پروٹوکول سطح کی تفصیلات کے لیے official MCP 2026-07-28 release announcement اور complete specification changelog دیکھیں۔
یہ تبدیلیاں ریموٹ MCP سرورز کو معیاری HTTP انفراسٹرکچر کے پیچھے اسکیل کرنا آسان بناتی ہیں۔ یہ کسی موجودہ ایپلیکیشن کو خود بہ خود stateless نہیں بناتیں۔
ایک پروڈکشن سرور اب بھی in-memory ورک اسپیسز، sticky روٹنگ، session-bound اسناد، طویل العمر streams، یا سرور سے آغاز کردہ تعاملات پر انحصار کر سکتا ہے۔ یہ گائیڈ انہی انحصارات کو تلاش کرنے اور بدلنے پر مرکوز ہے۔
زیادہ تعارفی نفاذ واک تھرو کے لیے، مائیگریشن شروع کرنے سے پہلے How to Create an MCP Server for Claude Code پڑھیں۔
کون مائیگریٹ کرے؟
محنت کی سطح اس بات پر منحصر ہے کہ آپ کے نظام میں MCP کیسے استعمال ہو رہا ہے۔
| Current implementation | Migration risk | Main action |
|---|---|---|
| Local stdio server with one-shot tools | Low | SDK اپ گریڈ کریں اور پروٹوکول نیگوشی ایشن ٹیسٹ کریں |
| Remote HTTP server with no cross-request state | Medium | جدید میٹاڈیٹا، ڈسکوری، اور HTTP ہیڈرز شامل کریں |
| Server using Mcp-Session-Id for business state | High | پوشیدہ اسٹیٹ کو واضح ہینڈلز یا مشترکہ اسٹوریج سے بدلیں |
| Gateway parsing JSON-RPC bodies for routing | Medium to high | MCP روٹنگ ہیڈرز شامل اور ویلیڈیٹ کریں |
| Tools requesting information or approval mid-call | High | تعامل کو MRTR میں منتقل کریں |
| Client using Dynamic Client Registration | High | issuer ہینڈلنگ مضبوط کریں اور CIMD کے لیے تیار ہوں |
| Server using legacy HTTP+SSE | High | Streamable HTTP پر منتقل ہوں |
| Workflow using experimental Tasks | High | آفیشل Tasks ایکسٹینشن اپنائیں |
ایک مقامی سرور جو درخواستوں کے درمیان اسٹیٹ برقرار نہیں رکھتا ہو، صرف SDK اپ گریڈ اور مطابقت ٹیسٹنگ کا متقاضی ہو سکتا ہے۔
ایک ریموٹ ڈپلائمنٹ جو سیشنز، OAuth، اسٹریمینگ، یا سرور سے آغاز کردہ درخواستیں استعمال کرتا ہے، اسے مرحلہ وار مائیگریشن درکار ہوگی۔
MCP 2026-07-28 میں کیا بدلا؟
| Area | Earlier behavior | MCP 2026-07-28 | Migration action |
|---|---|---|---|
| Initialization | Required initialize handshake | No required handshake | جدید درخواستوں کی initialization گیٹس ہٹا دیں |
| Sessions | Mcp-Session-Id | No protocol-level session | درکار اسٹیٹ کو واضح بنائیں |
| Discovery | Negotiated during initialization | Optional server/discover call | ڈسکوری اور ورژن نیگوشی ایشن نافذ کریں |
| Request context | Stored on the connection | Included in request _meta | ہر درخواست کے ساتھ پروٹوکول میٹاڈیٹا بھیجیں |
| HTTP routing | Gateway parses JSON body | Mcp-Method and Mcp-Name headers | روٹنگ، پالیسی، اور آبزرویبیلٹی اپ ڈیٹ کریں |
| Mid-call interaction | Server-initiated JSON-RPC requests | Multi Round-Trip Requests | input_required اور retries سنبھالیں |
| List caching | Catalogs repeatedly fetched | ttlMs, cacheScope, deterministic ordering | اجازت شناس کیشنگ شامل کریں |
| Notifications | GET stream and resource subscriptions | subscriptions/listen | تبدیلی نوٹیفکیشنز کو نئے اسٹریم پر منتقل کریں |
| Authorization | DCR-centered registration | Stronger issuer rules and CIMD direction | OAuth کلائنٹس اور اسناد کا آڈٹ کریں |
| Long-running work | Experimental Tasks in core | io.modelcontextprotocol/tasks extension | ایکسٹینشن کنٹریکٹ پر منتقل ہوں |
| Older features | Roots, Sampling, Logging, HTTP+SSE | Deprecated | نئی اپنانے سے گریز اور موجودہ استعمال ناپیں |
1. موجودہ نفاذ کا آڈٹ کریں
اپ گریڈ سے پہلے، کلائنٹ، سرور، گیٹ وے، اور ڈپلائمنٹ کنفیگریشن میں پرانے پروٹوکول مفروضات تلاش کریں۔
Mcp-Session-Id
initialize
notifications/initialized
sessionId
ctx.sessionId
extra.sessionId
sticky_session
sticky-session
elicitation/create
sampling/createMessage
roots/list
resources/subscribe
resources/unsubscribe
logging/setLevel
tasks/result
tasks/list
Last-Event-ID
پھر درج سوالات کے جواب دیں:
- کیا سرور initialization مکمل ہونے تک کالز کو مسترد کرتا ہے؟
- کیا کوئی سیشن ID کسی یوزر، اسناد، ورک اسپیس، یا گفتگو منتخب کرتا ہے؟
- کیا دوسرا سرور انسٹینس پہلے والے کے شروع کردہ ورک فلو کو جاری رکھ سکتا ہے؟
- کیا لوڈ بیلنسر کو سیشن affinity درکار ہے؟
- کیا کوئی ٹول تصدیق سے پہلے سائیڈ ایفیکٹ کرتا ہے؟
- کیا گیٹ وے طریقہ یا ٹول کی شناخت کے لیے باڈی پارس کرتا ہے؟
- کیا OAuth اسناد ان کے جاری کرنے والے authorization سرور کے بغیر ذخیرہ ہیں؟
- کیا کلائنٹ SSE reconnection یا پیغام دوبارہ بھیجنے پر منحصر ہے؟
- کیا ٹول یا ریسورس لسٹس کنکشن کے حساب سے بدلتی ہیں؟
- کون سی deprecated خصوصیات اب بھی پروڈکشن ٹریفک حاصل کر رہی ہیں؟
جب تک آپ یہ نہ سمجھ لیں کہ ایپلیکیشن Mcp-Session-Id کے پیچھے کیا ذخیرہ کرتی ہے، اسے نہ ہٹائیں۔
وہ سرور جو ہیڈر ہٹا دیتا ہے مگر اسٹیٹ کو مقامی میموری میں رکھتا ہے، ڈیولپمنٹ کے دوران کام کر سکتا ہے اور جیسے ہی درخواستیں متعدد انسٹینسز میں تقسیم ہوں، وقفے وقفے سے ناکام ہو سکتا ہے۔
2. پوشیدہ سیشن اسٹیٹ کو بدلیں
MCP 2026-07-28 پروٹوکول سطح کے سیشنز کو ہٹاتا ہے، ایپلیکیشن اسٹیٹ کو نہیں۔
کالز کے درمیان درکار اسٹیٹ کے لیے تین میں سے ایک پیٹرن استعمال کریں۔
واضح ہینڈلز
ایک ٹول سے سرور-منت ہینڈل واپس کریں اور اسے آئندہ کالز میں لازمی قرار دیں۔
{
"resultType": "complete",
"content": [
{
"type": "text",
"text": "Workspace created."
}
],
"structuredContent": {
"workspaceHandle": "ws_7f93a2"
}
}
بعد کی درخواست اس ہینڈل کو ایک عام آرگیومنٹ کے طور پر پاس کرتی ہے:
{
"name": "update_workspace",
"arguments": {
"workspaceHandle": "ws_7f93a2",
"status": "approved"
}
}
یہ انحصار کو ٹول کنٹریکٹ میں نمایاں کرتا ہے اور کسی بھی مطابقت پذیر سرور انسٹینس کو درخواست پروسیس کرنے کے قابل بناتا ہے۔
مشترکہ اسٹوریج
ڈیٹا بیس، ڈسٹری بیوٹڈ کیش، آبجیکٹ اسٹور، یا ڈوریبل ٹاسک سسٹم استعمال کریں جب:
- متعدد ورکرز کو ایک ہی اسٹیٹ درکار ہو؛
- ورک فلو کو ری اسٹارٹ کے بعد بھی قائم رہنا ہو؛
- اسٹیٹ ہینڈل کے لیے بہت بڑا ہو؛
- ورک فلو ایک ہی درخواست سے زیادہ دیر تک چلے؛
- ٹرانزیکشنل یا single-use رویہ درکار ہو۔
محفوظ requestState
MRTR ایک مبہم requestState ویلیو لوٹا سکتا ہے جسے کلائنٹ اصل درخواست کو دوبارہ آزمانے کے وقت بعینہٖ واپس دہراتا ہے۔
چونکہ یہ ویلیو کلائنٹ سے گزرتی ہے، اسے HMAC یا प्रमाणی خفیہ کاری سے محفوظ کریں۔ اسے مصدقہ principal، اصل آپریشن، اہم پیرامیٹرز، ختم ہونے کے وقت، اور nonce (اگر replay پروٹیکشن درکار ہو) سے باندھیں۔
صرف اس لیے کسی غیر دستخط شدہ requestState پر اعتماد نہ کریں کہ کلائنٹ نے اسے بغیر بدلے واپس بھیجا ہے۔
3. خود کفیل درخواستیں اور ڈسکوری اپنائیں
جدید MCP درخواستیں _meta میں پروٹوکول سیاق شامل کرتی ہیں۔
Streamable HTTP ٹول کال کچھ یوں ہو سکتی ہے:
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
Authorization: Bearer <token>
{
"jsonrpc": "2.0",
"id": "req-101",
"method": "tools/call",
"params": {
"name": "search",
"arguments": {
"query": "stateless MCP migration"
},
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": {
"name": "example-client",
"version": "2.0.0"
},
"io.modelcontextprotocol/clientCapabilities": {
"elicitation": {}
}
}
}
}
نئے پروٹوکول کو ہدف بنانے والے سرورز کو server/discover نافذ کرنا ہوگا، جو سپورٹڈ ورژنز، صلاحیتیں، اور سرور شناخت ظاہر کرتا ہے۔ کلائنٹس اسے دوسری کارروائی سے پہلے کال کر سکتے ہیں یا یہ طے کرنے کے لیے استعمال کر سکتے ہیں کہ آیا legacy fallback درکار ہے۔
جوابی کنٹریکٹ کے لیے آفیشل server/discover documentation پڑھیں۔
TypeScript SDK ورژن نیگوشی ایشن
صرف TypeScript SDK اپ گریڈ کرنے سے کلائنٹ خود بخود نئے پروٹوکول پر منتقل نہیں ہوتا۔
v2 SDK استعمال کرنے والے کلائنٹ کو واضح طور پر opt-in کرنا ہوگا:
const client = new Client(
{
name: "my-client",
version: "1.0.0"
},
{
versionNegotiation: {
mode: "auto"
}
}
);
await client.connect(transport);
آٹو موڈ میں، SDK server/discover سے پروب کرتا ہے اور legacy سرور ملنے پر پرانے initialization فلو پر واپس جا سکتا ہے۔
ابھی بھی @modelcontextprotocol/sdk v1 استعمال کرنے والی ٹیمیں پہلے آفیشل TypeScript SDK v1-to-v2 migration guide پر عمل کریں۔ جو ٹیمیں پہلے ہی v2 استعمال کر رہی ہیں، وہ الگ 2026-07-28 protocol support guide استعمال کریں۔
4. سرور سے آغاز کردہ درخواستوں کو MRTR سے بدلیں
پچھلی MCP تنفیذات سرور سے کلائنٹ کی طرف elicitation/create، sampling/createMessage، یا roots/list جیسی درخواستیں بھیج سکتی تھیں۔
نیا پروٹوکول اس ماڈل کو Multi Round-Trip Requests سے بدلتا ہے۔
فلو یہ ہے:
- کلائنٹ اصل درخواست بھیجتا ہے۔
- سرور
resultType: "input_required"لوٹاتا ہے۔ - کلائنٹ مطلوبہ معلومات یا منظوری اکٹھی کرتا ہے۔
- کلائنٹ نئے JSON-RPC ID کے ساتھ اصل آپریشن کو دوبارہ آزماتا ہے۔
- ریٹرائی میں
inputResponsesاور اصلrequestStateشامل ہوتا ہے۔ - سرور درخواست مکمل کرتا ہے یا ایک اور راؤنڈ شروع کرتا ہے۔
مثالی جواب:
{
"jsonrpc": "2.0",
"id": "delete-1",
"result": {
"resultType": "input_required",
"inputRequests": {
"confirm_delete": {
"method": "elicitation/create",
"params": {
"mode": "form",
"message": "Delete project project_123?",
"requestedSchema": {
"type": "object",
"properties": {
"confirmed": {
"type": "boolean"
}
},
"required": ["confirmed"]
}
}
}
},
"requestState": "protected-expiring-state"
}
}
کلائنٹ اصل آپریشن دوبارہ آزماتا ہے:
{
"jsonrpc": "2.0",
"id": "delete-2",
"method": "tools/call",
"params": {
"name": "delete_project",
"arguments": {
"projectId": "project_123"
},
"inputResponses": {
"confirm_delete": {
"action": "accept",
"content": {
"confirmed": true
}
}
},
"requestState": "protected-expiring-state"
}
}
ایک پروڈکشن MRTR نفاذ کو درج ذیل کی تعریف کرنی چاہیے:
- زیادہ سے زیادہ راؤنڈز؛
- request-state کی معیاد؛
- منسوخی اور انکار کا برتاؤ؛
- response-schema ویلیڈیشن؛
- ہر ریٹرائی پر اجازت دہی کی جانچ؛
- replay پروٹیکشن؛
- سائیڈ ایفیکٹس کے لیے idempotency؛
- جب کلائنٹ مطلوبہ صلاحیت سپورٹ نہ کرے تو برتاؤ۔
خرید، حذف، کریڈٹ کٹوتی، یا بیرونی write کو input_required لوٹانے سے پہلے مکمل کرنے سے گریز کریں۔
مرحلوں میں تقسیم شدہ آپریشن یا idempotency key استعمال کریں تاکہ ریٹرائیز عمل کو دہرائیں نہیں۔ مکمل تعامل ماڈل کے لیے آفیشل MRTR specification دیکھیں۔
5. گیٹ ویز، کیشنگ، اور اجازت دہی اپ ڈیٹ کریں
انفراسٹرکچر کی تبدیلیاں باہم مربوط ہیں اور انہیں ساتھ ٹیسٹ کرنا چاہیے۔
MCP روٹنگ ہیڈرز ویلیڈیٹ کریں
Streamable HTTP POST درخواستوں میں اب یہ شامل ہوتا ہے:
MCP-Protocol-VersionMcp-MethodMcp-Name
یہ ہیڈرز گیٹ ویز کو ہر JSON باڈی پارس کیے بغیر ٹریفک کو روٹ، میٹر، مجاز، اور ریٹ-لیمٹ کرنے دیتے ہیں۔
یہ درج کنٹرولز کو ممکن بنا سکتے ہیں:
- مخصوص ٹولز کے لیے ریٹ لِمٹس؛
- فہرست اور نفاذ طریقوں کے لیے الگ پالیسیاں؛
- مہنگے ٹولز کے لیے مخصوص ورکر پولز؛
- ہائی رسک آپریشنز تک محدود رسائی؛
- ٹول کے لحاظ سے لیٹنسی اور ایرر میٹرکس؛
- انفراسٹرکچر لاگت کی تقسیم۔
یہ قدریں پھر بھی کلائنٹ فراہم کرتا ہے۔ پالیسی لاگو کرنے سے پہلے انہیں JSON-RPC باڈی سے ملائیں۔
کسی درخواست کو یہ قابل نہیں ہونا چاہیے کہ وہ Mcp-Name میں کم خطرے والے ٹول کا دعویٰ کرے جبکہ باڈی میں کوئی دوسرا ٹول کال ہو رہا ہو۔ ہیڈر اور باڈی کے عدم تطابق کو مسترد اور لاگ کیا جانا چاہیے۔
اجازت شناس کیش کیز استعمال کریں
نیا پروٹوکول ttlMs اور cacheScope بطور cacheable نتائج میں شامل کرتا ہے جن میں شامل ہیں:
tools/listprompts/listresources/listresources/templates/listresources/read
ایک کیش کی عام طور پر درج ذیل شامل کرے:
protocol version
server identity
method
request parameters
authenticated principal or tenant
authorization scope
cacheScope
server configuration version
صرف اس لیے کسی نجی کیش انٹری کو صارفین یا ٹیننٹس کے درمیان دوبارہ استعمال نہ کریں کہ TTL ختم نہیں ہوا۔
deterministic ٹول آرڈرنگ بھی اہم ہے۔ مستحکم کیٹلاگ غیر ضروری کیش مسز سے بچاتی ہے اور جب ٹول ڈیفینیشنز پرامپٹس میں داخل کی جاتی ہیں تو ماڈل پرامپٹ-کیش کے دوبارہ استعمال کو بہتر بنا سکتی ہے۔
OAuth Issuer ہینڈلنگ مضبوط کریں
اجازت دہی مائیگریشن کے دوران:
- واپس ملنے والے
issکی ویلیو کو فلو کے لیے ریکارڈ شدہ issuer سے ملائیں؛ - ذخیرہ شدہ کلائنٹ اسناد کو issuer کے مطابق key کریں؛
- اسناد کسی دوسرے authorization سرور کے ساتھ کبھی reuse نہ کریں؛
- DCR کے دوران مناسب
application_typeسیٹ کریں؛ - نئی انٹیگریشنز کو Client ID Metadata Documents کے لیے تیار کریں۔
Dynamic Client Registration بیک ورڈ کمپٹیبلٹی کے لیے دستیاب رہتی ہے، مگر ترجیحی رجسٹریشن طریق کے طور پر deprecated ہے۔
6. نوٹیفکیشنز، ٹاسکس، اور deprecated خصوصیات مائیگریٹ کریں
پرانی HTTP GET نوٹیفکیشن راہ اور resources/subscribe یا resources/unsubscribe فلو کو subscriptions/listen سے بدل دیا گیا ہے۔
کلائنٹس ایک طویل العمر POST-response اسٹریم کھولتے ہیں اور انہیں درکار نوٹیفکیشن کیٹیگریز کے لیے opt-in کرتے ہیں۔ درخواست-خصوصی progress اور log نوٹیفکیشنز اسی ریسپانس اسٹریم سے منسلک رہتی ہیں جس درخواست کو وہ بیان کرتی ہیں۔
کثیر انسٹینس ڈپلائمنٹ میں، مشترکہ ایونٹ بس استعمال کریں جب ایک سرور انسٹینس پر جنریٹ شدہ نوٹیفکیشن دوسری انسٹینس سے جڑی سبسکرپشن تک پہنچنی ہو۔
Tasks ایکسٹینشن
طویل المدتی کام تجرباتی کور پروٹوکول سے نکل کر یہاں منتقل ہو گیا ہے:
io.modelcontextprotocol/tasks
ایکسٹینشن استعمال کرتی ہے:
tasks/getپولنگ کے لیے؛tasks/updateکلائنٹ-سے-سرور اپ ڈیٹس کے لیے؛- ڈوریبل ٹاسک ہینڈلز؛
- opted-in اپ ڈیٹس کے لیے
subscriptions/listen۔
پرانے tasks/result اور tasks/list پیٹرنز کو نئے نفاذ میں نہ لے جائیں۔
Deprecated خصوصیات
درج ذیل خصوصیات deprecated ہیں:
| Feature | Recommended direction | MCP 2026-07-28 | Migration action |
|---|---|---|---|
| Roots | ڈائریکٹریز کو ٹول آرگیومنٹس، ریسورس URIs، یا کنفیگریشن کے ذریعے پاس کریں | No required handshake | جدید درخواستوں کی initialization گیٹس ہٹا دیں |
| Sampling | براہِ راست ماڈل پرووائیڈر APIs سے انٹیگریٹ کریں | No protocol-level session | درکار اسٹیٹ کو واضح بنائیں |
| Logging | stdio کے لیے stderr یا پروڈکشن میں OpenTelemetry استعمال کریں | Optional server/discover call | ڈسکوری اور ورژن نیگوشی ایشن نافذ کریں |
| Dynamic Client Registration | Client ID Metadata Documents کی طرف جائیں | Included in request _meta | ہر درخواست کے ساتھ پروٹوکول میٹاڈیٹا بھیجیں |
| Legacy HTTP+SSE | Streamable HTTP پر مائیگریٹ کریں | Mcp-Method and Mcp-Name headers | روٹنگ، پالیسی، اور آبزرویبیلٹی اپ ڈیٹ کریں |
| Deprecated includeContext values | فیلڈ کو چھوڑ دیں یا "none" استعمال کریں | Multi Round-Trip Requests | input_required اور retries سنبھالیں |
| List caching | کیٹلاگز بار بار فچ ہوتے تھے | ttlMs, cacheScope, deterministic ordering | اجازت شناس کیشنگ شامل کریں |
| Notifications | GET stream اور resource subscriptions | subscriptions/listen | تبدیلی نوٹیفکیشنز کو نئے اسٹریم پر منتقل کریں |
| Authorization | DCR-centered registration | Stronger issuer rules and CIMD direction | OAuth کلائنٹس اور اسناد کا آڈٹ کریں |
| Long-running work | Experimental Tasks in core | io.modelcontextprotocol/tasks extension | ایکسٹینشن کنٹریکٹ پر منتقل ہوں |
| Older features | Roots, Sampling, Logging, HTTP+SSE | Deprecated | نئی اپنانے سے گریز اور موجودہ استعمال ناپیں |
Deprecated فعالیت deprecation ونڈو کے دوران دستیاب رہتی ہے، مگر نئی تنفیذات اسے نہ اپنائیں۔ MCP لائف سائیکل پالیسی کم از کم بارہ ماہ کی deprecation مدت فراہم کرتی ہے؛ اس کا مطلب یہ نہیں کہ ہر فیچر کی یکساں تصدیق شدہ ہٹانے کی تاریخ ہے۔
ریٹائرمنٹ ڈیڈ لائن مقرر کرنے سے پہلے آفیشل deprecated-features registry کا جائزہ لیں۔
7. مائیگریشن کو محفوظ طریقے سے رول آؤٹ کریں
کلائنٹس، سرورز، گیٹ ویز، کیشنگ، اور اجازت دہی کو ایک غیر مشاہدہ شدہ ریلیز میں نہ بدلیں۔
تجویز کردہ مائیگریشن ترتیب
- پروٹوکول ورژنز، SDKs، سیشنز، SSE ٹریفک، DCR کلائنٹس، اور deprecated طریقوں کی فہرست بنائیں۔
- غیر پروڈکشن SDKs اپ گریڈ کریں۔
server/discoverاور ورژن نیگوشی ایشن شامل کریں۔- پوشیدہ سیشن انحصارات بدلیں۔
- MRTR نافذ اور محفوظ کریں۔
- ویلیڈیٹڈ روٹنگ ہیڈرز اور scoped کیشز شامل کریں۔
- اجازت دہی issuer سرحدیں ٹیسٹ کریں۔
- جدید پروٹوکول کو legacy راہ کے ساتھ کینیری کریں۔
- پرانے برتاؤ کو صرف ٹیلیمٹری کا جائزہ لینے کے بعد ریٹائر کریں۔
کینیری کے دوران مطابقت
Modern client + modern server
→ Use MCP 2026-07-28
Modern client + legacy server
→ Probe and fall back when supported
Legacy client + dual-version server
→ Continue on the legacy path
Unsupported combination
→ Return a clear protocol-version error
نئی MCP وضاحت کا اجرا ایکو سسٹم-ویڈ سوئچ نہیں ہے۔ کلائنٹس، سرورز، SDKs، اور ہوسٹڈ پلیٹ فارمز مختلف رفتار سے مائیگریٹ کریں گے۔
ریکارڈ کرنے کے لیے ٹیلیمٹری
| Signal | What it reveals |
|---|---|
| Protocol version per request | اپنانے کی شرح اور غیر مطابقتی امتزاجات |
| Discovery success and fallback rate | ورژن نیگوشی ایشن برتاؤ |
| Missing or invalid MCP headers | پرانے کلائنٹس یا گیٹ وے کی غلطیاں |
| Header/body mismatches | کلائنٹ بگز یا پالیسی-بائی پاس کوششیں |
| MRTR requested and completed | انٹرایکٹو ورک فلو کی قابلِ اعتمادیت |
| MRTR rejected or timed out | صارف اور کلائنٹ کی ناکامی راہیں |
| Request-state verification failures | چھیڑ چھاڑ، replay، یا معیاد ختم |
| Duplicate-operation prevention | idempotency کنٹرولز کی تاثیر |
| Cache hit rate by scope | محفوظ ٹریفک میں کمی |
| Issuer validation failures | OAuth کنفیگریشن مسائل |
| HTTP+SSE traffic | باقی ماندہ ٹرانسپورٹ مائیگریشن کام |
| Deprecated-method traffic | ریٹائرمنٹ پلاننگ کے شواہد |
| Tool latency and accepted-task rate | صارف کے سامنے قابلِ اعتمادیت |
کامیاب one-shot tools/call درخواستیں مائیگریشن ناپنے کے لیے کافی نہیں۔ ایک ایسا ورک فلو جو بار بار ٹائم آؤٹ ہو، غیر ضروری ان پٹ مانگے، یا بیرونی write کو دہرائے، پھر بھی پروڈکشن ناکامی ہے۔
MCP معمار میں CometAPI کیسے فٹ بیٹھتا ہے
MCP کسی ماڈل API کا متبادل نہیں ہے۔ دونوں لیئرز مختلف انٹیگریشن مسائل حل کرتے ہیں۔
| Layer | Primary responsibility |
|---|---|
| MCP | ایجنٹس کو ٹولز، ریسورسز، پرامپٹس، منظوریوں، اور ٹاسکس سے جوڑنا |
| Unified model API | ایپلیکیشنز کو ماڈلز، اسناد، استعمال، اور بلنگ سے جوڑنا |
| Application orchestration | فیصلہ کرنا کہ ماڈلز اور ٹولز کب اور کیسے کال ہوں |
ایک عام پروڈکشن معمار کچھ یوں دکھتا ہے:
Application or agent
↓
MCP clients and servers
Tools, resources, approvals, tasks
↓
Unified model API
GPT, Claude, Gemini, DeepSeek, and other models
MCP معیاری بناتا ہے کہ ایجنٹس ٹولز اور کانٹیکسٹ کے ساتھ کیسے تعامل کریں۔ یہ ماڈل پرائسنگ، پرووائیڈر اسناد، انفیرینس اینڈ پوائنٹس، یا پرووائیڈر فیل اوور کو معیاری نہیں بناتا۔
یہ علیحدگی خاص طور پر deprecated Sampling صلاحیت سے ہجرت کے دوران مفید ہے۔ اگر کوئی MCP سرور یا اسے کنزیوم کرنے والا ایجنٹ اب بھی ماڈل انفیرینس چاہتا ہے، تو ایپلیکیشن سابقہ MCP Sampling فلو پر انحصار کرنے کے بجائے براہِ راست ماڈل API کال کر سکتی ہے۔
کب ایک Unified Model گیٹ وے مددگار ہے
ایک unified ماڈل گیٹ وے آپریشنل کام کم کر سکتا ہے جب:
- کئی MCP سرورز کو مختلف ماڈل پرووائیڈرز تک رسائی درکار ہو؛
- مختلف ٹولز کو مختلف ماڈلز درکار ہوں؛
- ٹیمیں پرووائیڈر-خصوصی انٹیگریشنز دوبارہ لکھے بغیر ماڈلز بدلنا چاہتی ہوں؛
- اسناد، استعمال، اور بلنگ کو مرکزی طور پر مینیج کرنا ہو؛
- ماڈل ایکسس MCP ٹرانسپورٹ تبدیلیوں سے آزاد رہنی چاہیے۔
CometAPI ایک OpenAI-مطابقت پذیر اینڈ پوائنٹ فراہم کرتا ہے جو MCP ایپلیکیشنز کے پیچھے ماڈل-ایکسس لیئر کے طور پر استعمال ہو سکتا ہے۔ اس سے ماڈل-پرووائیڈر لاجک MCP ٹولز، ریسورسز، اور ٹاسک آرکسٹریشن سے الگ رہتی ہے۔
مثال کے طور پر، ایک MCP ٹول ایپلیکیشن میں کہیں اور استعمال ہونے والے اسی OpenAI-مطابقت پذیر کلائنٹ کے ذریعے ماڈل کو کال کر سکتا ہے:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.COMETAPI_KEY,
baseURL: "https://api.cometapi.com/v1"
});
export async function summarizeResource(content: string) {
const response = await client.chat.completions.create({
model: "your-selected-model",
messages: [
{
role: "system",
content: "Summarize the supplied resource clearly and concisely."
},
{
role: "user",
content
}
]
});
return response.choices[0]?.message?.content ?? "";
}
MCP سرور ٹول کنٹریکٹ، اجازت دہی، اسٹیٹ، اور نتیجہ ہینڈلنگ کا ذمہ دار رہتا ہے۔ ماڈل گیٹ وے ماڈل انتخاب، پرووائیڈر ایکسس، اور انفیرینس جوابات سنبھالتا ہے۔
ان لیئرز کو الگ رکھنے کے دو عملی فائدے ہیں:
- MCP کلائنٹس اور سرورز نئے پروٹوکول پر مائیگریٹ ہو سکتے ہیں بغیر ماڈل-انٹیگریشن لیئر بدلے۔
- ماڈل پرووائیڈرز بدلے جا سکتے ہیں بغیر MCP ٹولز یا ٹرانسپورٹ رویے کو دوبارہ ڈیزائن کیے۔
مزید نفاذی تفصیلات کے لیے CometAPI Quickstart، API documentation، اور multi-model AI application guide دیکھیں۔
MCP 2026-07-28 مائیگریشن چیک لسٹ
Client
- مطابقت پذیر SDK پر اپ گریڈ کریں۔
- جدید ورژن نیگوشی ایشن فعال کریں۔
server/discoverسپورٹ کریں۔- ہر درخواست پر پروٹوکول میٹاڈیٹا شامل کریں۔
resultTypeہینڈل کریں۔- MRTR کو سپورٹ کریں یا واضح طور پر مسترد کریں۔
- ریٹرائیز کے لیے نیا JSON-RPC ID استعمال کریں۔
requestStateمحفوظ رکھیں اور واپس کریں۔- OAuth issuers ویلیڈیٹ کریں۔
- اسناد کو issuer کے حساب سے اسٹور کریں۔
- کیش ہنٹس کا احترام کریں۔
- ضرورت ہو تو
subscriptions/listenسپورٹ کریں۔
Server
- جدید درخواستوں کے initialization گیٹس ہٹا دیں۔
Mcp-Session-Idپر انحصار ختم کریں۔server/discoverنافذ کریں۔- پوشیدہ اسٹیٹ کو ہینڈلز یا مشترکہ اسٹوریج سے بدلیں۔
resultTypeواپس کریں۔- سرور سے آغاز کردہ درخواستوں کو MRTR سے بدلیں۔
requestStateمحفوظ کریں۔- تمام
inputResponsesویلیڈیٹ کریں۔ - سائیڈ ایفیکٹس کے لیے idempotency شامل کریں۔
- فہرستیں deterministic طور پر واپس کریں۔
- محتاط کیش ہنٹس شائع کریں۔
- طویل المدتی کام کو Tasks ایکسٹینشن میں مائیگریٹ کریں۔
Gateway and Infrastructure
- MCP درخواست ہیڈرز ویلیڈیٹ کریں۔
- ہیڈرز کو درخواست باڈی سے ملائیں۔
- غیر ضروری sticky روٹنگ ہٹا دیں۔
- درخواستوں کو متعدد انسٹینسز میں ٹیسٹ کریں۔
- کیشز کو اجازت دہی سرحد کے مطابق تقسیم کریں۔
- جہاں لازم ہو مشترکہ نوٹیفکیشن بس شامل کریں۔
- legacy اور deprecated ٹریفک کو ٹریک کریں۔
- کینیری کے دوران رول بیک راستہ برقرار رکھیں۔
FAQ
MCP 2026-07-28 کیا ہے؟
MCP 2026-07-28 وہ Model Context Protocol وضاحت ہے جو 28 جولائی، 2026 کو جاری ہوئی۔ یہ ایک stateless پروٹوکول کور، Multi Round-Trip Requests، HTTP روٹنگ ہیڈرز، cacheable نتائج، اجازت دہی تبدیلیاں، ایکسٹینشنز، اور رسمی deprecation لائف سائیکل متعارف کراتی ہے۔
کیا Mcp-Session-Id ہٹا دیا گیا ہے؟
جی ہاں۔ نیا Streamable HTTP پروٹوکول اب Mcp-Session-Id استعمال نہیں کرتا۔
ایپلیکیشنز اب بھی واضح ہینڈلز، مشترکہ اسٹوریج، ڈوریبل ٹاسکس، یا محفوظ request-state قدروں کے ذریعے اسٹیٹ برقرار رکھ سکتی ہیں۔
کیا MCP initialization ہینڈشیک ہٹا دیا گیا ہے؟
جی ہاں۔ جدید درخواستوں کو اب initialize اور notifications/initialized کے تبادلے کی ضرورت نہیں۔
سرورز کو server/discover نافذ کرنا چاہیے، حالانکہ کلائنٹس کو ہر آپریشن سے پہلے اسے کال کرنے کی ضرورت نہیں۔
کیا stateless MCP کا مطلب ٹولز اسٹیٹ برقرار نہیں رکھ سکتے؟
نہیں۔ stateless کا تعلق پروٹوکول لیئر سے ہے۔
ایک ٹول اب بھی اسٹیٹ اسٹور کر سکتا ہے، مگر درخواست پروسیسنگ پوشیدہ ٹرانسپورٹ affinity یا کسی ایک مخصوص سرور پراسیس پر منحصر نہیں ہونی چاہیے۔
MRTR کیا ہے؟
Multi Round-Trip Requests سرور کو یہ اجازت دیتی ہیں کہ وہ مسلسل کھلے دو طرفہ کنکشن پر سرور-سے-آغاز کردہ درخواست بھیجے بغیر اضافی کلائنٹ یا صارف ان پٹ مانگ سکے۔
سرور input_required لوٹاتا ہے، اور کلائنٹ مطلوبہ جوابات کے ساتھ اصل آپریشن کو دوبارہ آزماتا ہے۔
کیا HTTP+SSE فوری طور پر ہٹا دیا گیا ہے؟
نہیں۔ اسے فوراً ہٹانے کے بجائے deprecated کیا گیا ہے۔
نئے سرورز کو Streamable HTTP استعمال کرنا چاہیے، جبکہ موجودہ نظاموں کو باقی HTTP+SSE ٹریفک ناپ کر مائیگریٹ کرنا چاہیے۔
کیا TypeScript SDK v2 کلائنٹس خود بخود MCP 2026-07-28 استعمال کرتے ہیں؟
نہیں۔ TypeScript v2 SDK کو جدید پروٹوکول استعمال کرنے کے لیے واضح ورژن نیگوشی ایشن کنفیگریشن درکار ہے۔
جب کلائنٹ کو جدید اور legacy دونوں سرورز کے ساتھ کام کرنا ہو تو خودکار نیگوشی ایشن استعمال کریں۔
آخری سفارشات
MCP 2026-07-28 ریموٹ MCP انفراسٹرکچر کو اسکیل، روٹ، کیش، اور آبزرو کرنا آسان بناتا ہے۔ اصل مائیگریشن رسک صرف ہیڈر یا ہینڈشیک ہٹانا نہیں، بلکہ وہ پوشیدہ ایپلیکیشن اسٹیٹ اور تعامل لاجک ہے جو اب تک ان پر منحصر رہی ہو سکتی ہے۔
نئے پروٹوکول کو نافذ کرنے سے پہلے:
initialization اور Mcp-Session-Id پر ہر انحصار تلاش کریں۔
- درکار اسٹیٹ کو واضح ہینڈلز یا مشترکہ اسٹوریج میں منتقل کریں۔
- MRTR کو معیاد، replay پروٹیکشن، اور idempotency کے ساتھ نافذ کریں۔
- MCP ہیڈرز کو JSON-RPC باڈی کے مقابل ویلیڈیٹ کریں۔
- کیشز کو ٹیننٹ اور اجازت دہی اسکوپ کے لحاظ سے تقسیم کریں۔
- OAuth issuer ویلیڈیشن سخت کریں۔
- deprecated طریقوں اور legacy ٹرانسپورٹ ٹریفک ناپیں۔
- ریٹائرمنٹ سے پہلے جدید اور legacy پروٹوکول راہوں کو کینیری کریں۔
جب MCP لیئر stateless اور قابلِ مشاہدہ ہو، ماڈل ایکسس کو الگ انٹرفیس کے پیچھے رکھیں۔ اس سے ٹول پروٹوکول اور ماڈل-پرووائیڈر لیئر ایک دوسرے سے آزادانہ طور پر ارتقا پذیر رہیں گی۔
