Pasukan protokol MCP telah melancarkan versi baharu pada 28 Julai 2026 yang menghapuskan sesi pada peringkat protokol dan memaksa setiap permintaan menjadi stateless. Jika anda menjalankan klien, pelayan, atau ejen MCP, anda mesti menulis semula kod yang mengandaikan ID sesi yang kekal—atau anda akan menghadapi masalah penerusan (routing) yang rosak, kegagalan cache (cache misses), dan kerja latar belakang yang tidak terkawal.
Mengapa peralihan ini penting
MCP sebelum ini memerlukan handshake yang menghasilkan pengenal sesi. Perkhidmatan hiliran bergantung pada ID tersebut untuk mengandaikan bahawa siri permintaan akan mengenai proses yang sama, membolehkan pengimbang beban (load balancer) menggunakan sticky routing, dan menyimpan data setiap sesi dalam memori. Versi Julai menukar model tersebut kepada aliran permintaan-respons yang tulen. Pelayan kini boleh ditambah atau dikeluarkan tanpa perlu risau tentang kehilangan sesi. Protokol tidak lagi mengekalkan konteks; aplikasi yang mesti melakukannya.
Pasukan yang mengekalkan kod berpusatkan sesi lama akan melihat permintaan melantun ke instans yang salah, cache gagal, dan tugasan latar belakang bertimbun. Pasukan yang mengguna pakai corak stateless boleh menjalankan MCP di sebalik pengimbang beban bukan sticky dan memperoleh kebolehlihatan (observability) yang lebih ketat merentasi keseluruhan rantaian permintaan.
Apa yang sebenarnya berbeza
- Kitaran hayat protokol – Handshake dan ID sesi telah dihapuskan. Setiap permintaan mesti membawa semua maklumat yang diperlukan oleh pelayan; tiada jaminan bahawa permintaan susulan akan mendarat pada proses yang sama.
- Penerusan HTTP – Gerbang (gateways) kini membaca dua pengepala baharu,
Mcp-MethoddanMcp-Name, untuk memutuskan ke mana permintaan perlu diteruskan. Penerusan session-cookie tidak lagi berfungsi. - Pengekalan cache (Caching) – Spesifikasi tersebut menambah medan
ttlMs(time-to-live dalam milisaat) dancacheScopeuntuk pembacaan. Anda memutuskan sama ada data lama (stale data) boleh diterima dan mengkonfigurasi cache sewajarnya. - Kebolehlihatan (Observability) – Blok
_metakini menjangkakan payload W3C Trace Context, membolehkan sistem penjejakan menyatukan gerbang pinggir (edge gateways), peralatan, dan kerja bahagian belakang (backend) ke dalam satu penjejakan hujung-ke-hujung yang tunggal. - Komposisi – Sambungan (extensions) telah diformalkan; keupayaan baharu boleh ditambah tanpa menyentuh spesifikasi teras, menggalakkan seni bina gaya pemalam (plug-in).
- Kerja jangka panjang – Permintaan/respons ringkas tidak lagi mencukupi untuk tugasan yang berjalan selama minit atau jam. Protokol kini mentakrifkan objek
Taskuntuk kerja asinkronus, lengkap dengan kawalan kitaran hayat.
Risiko tersembunyi dalam kod legasi
Audit pantas sering mendedahkan corak yang mengandaikan kewujudan keadaan (statefulness):
- Pemetaan dalam memori (in-memory maps) yang menggunakan kunci ID sesi.
- Pengimbang beban yang dikonfigurasikan untuk sesi melekit (sticky sessions).
- Rutin permulaan yang memuat pramuat data setiap sesi ke dalam memori tempatan.
- Logik pembersihan yang memadam data perniagaan apabila sesi tamat.
Jika mana-mana perkara ini masih ada selepas migrasi, sistem akan kehilangan data atau membocorkan sumber di bawah beban kerja yang tinggi.
Senarai semak migrasi yang konkrit
1. Inventori andaian semasa
Petakan setiap tempat di mana kod anda menyentuh ID sesi, peraturan sticky-routing, atau cache tempatan proses. Dokumentasikan komponen mana yang bergantung pada setiap satu.
2. Jadikan identiti eksplisit
Tambah ID penyewa (tenant IDs), ID larian (run IDs), dan ID pengguna ke dalam setiap muatan (payload) atau pengepala permintaan. Anggap pengenal ini sebagai sumber kebenaran untuk kebenaran (authorization) dan pembahagian data.
3. Kemas kini konfigurasi penerusan
Gantikan penerusan berasaskan sesi dengan peraturan yang membaca Mcp-Method dan Mcp-Name. Uji logik gerbang baharu dengan penggunaan dua instans minimum di sebalik pengimbang beban bukan sticky.
4. Ubah suai logik pengepala cache
Beralih kepada medan ttlMs dan cacheScope yang baharu. Jalankan ujian prestasi untuk melihat bagaimana nilai TTL yang berbeza mempengaruhi kadar padanan (hit rates) dan keperluan kesegaran data.
Aktifkan penjejakan hujung-ke-hujung: Isi blok _meta dengan pengepala W3C Trace Context. Sahkan bahawa penjejakan kini mengalir dari gerbang pinggir melalui perkhidmatan bahagian belakang anda tanpa sebarang jurang.
Gunakan model Task untuk kerja asinkronus: Takrifkan siapa yang boleh mencipta tugasan, tetapkan masa larian maksimum, dan laksanakan had barisan (queue limits). Tambah polisi pembatalan dan cubaan semula (retry) yang eksplisit, serta hadkan apa yang boleh dilakukan oleh ejen semasa tugasan sedang menunggu.
Semak nota keluaran SDK dan perpustakaan klien sebelum 28 Julai.
Jalankan suite regresi yang menyasarkan laluan kegagalan: Selain daripada ujian laluan utama (happy-path), masukkan pengepala yang hilang, tugasan yang tamat tempoh, dan arahan cache yang salah format. Sahkan bahawa sistem mengalami kemerosotan secara berhemah (degrades gracefully).
Apa yang perlu diperhatikan seterusnya
Pasukan yang berpindah dengan selamat akan menguji sempadan, bukan sekadar laluan utama (happy path). Sebarang penggunaan produksi yang masih menjangkakan ID sesi selepas 28 Julai mungkin gagal untuk beroperasi bersama pelayan MCP baharu.
