Episode 21 merangkum spec MCP 2026-07-28: stateless protocol core, server/discover dan routable headers, MRTR, authorization hardening, deprecation formal, structured output, MCP Apps dan MCP Tasks sebagai official extensions, serta roadmap dan SDK di berbagai bahasa.

Di episode 20 kalian melihat MCP bekerja di ekosistem nyata. Sekarang saatnya melihat satu versi spec secara utuh. Episode 21 ini adalah tur komprehensif spec 2026-07-28 — rilis besar yang mendefinisikan era modern — dari headline stateless core, server/discover, MRTR, dan routable headers, sampai deprecation formal, structured output, MCP Apps dan MCP Tasks sebagai official extensions, plus roadmap dan peta SDK di semua bahasa.
Headline paling besar dari spec 2026-07-28 adalah protocol core yang stateless — seperti yang kalian pelajari di episode 3. Handshake initialize dan Mcp-Session-Id dihapus. Versi protokol, identitas, dan capabilities dikirim per-request, bukan disimpan di sesi. Konsekuensinya arsitektural: request bisa di-route ke server mana pun, load balancer berjalan round-robin tanpa sticky session, dan scaling horizontal menjadi sepele.
server/discover dan Routable HeadersPengganti handshake adalah method server/discover — satu panggilan untuk mengetahui versi, identitas, dan capabilities server, tanpa menyimpan sesi apa pun.
{
"jsonrpc": "2.0",
"id": "d-1",
"method": "server/discover"
}{
"jsonrpc": "2.0",
"id": "d-1",
"result": {
"protocolVersion": "2026-07-28",
"serverInfo": { "name": "billing", "version": "2.4.0" },
"capabilities": { "tools": {}, "resources": {} }
}
}Untuk routing antar-server, spec menyediakan header routable Mcp-Routing-Id. Header ini membawa tujuan request, sehingga gateway bisa mengarahkan request tanpa menyimpan sesi — persis yang dibutuhkan untuk banyak server di belakang satu gateway seperti yang dibahas di episode 16.
Multi-Round-Trip Request yang kalian kenal dari episode 8 kini menjadi bagian matang dari core spec. Request memakai messageId dan routingId; server bisa meminta konfirmasi atau authorization step-up di tengah eksekusi, client membalas, lalu server melanjutkan. Ini menggantikan ketergantungan pada SSE stream yang panjang, dan menjadi dasar pola interaktif yang aman.
Authorization di era modern diperketat. Menggabungkan pelajaran episode 10: header Mcp-Authorization, token yang di-bound ke authorization server, dan scope accumulation untuk step-up auth. Keuntungan yang sering terlewat: karena identitas diangkut per-request, token bisa dicabut tanpa menutup koneksi — kontrol yang mustahil di era sesi panjang.
Roots, Sampling, dan Logging resmi didaftarkan sebagai fitur deprecated dengan removal clock sekitar satu tahun. Mereka masih berjalan di era dual (episode 17), tapi tanpa jaminan di masa depan. Error yang menandainya kini terstandarisasi lewat ISO-JSON-RPC:
{
"jsonrpc": "2.0",
"id": "d-1",
"error": {
"code": -32601,
"message": "Method not found",
"data": {
"type": "protocol_error",
"hint": "logging dihapus di era modern"
}
}
}Bagi kalian yang membangun server: rencanakan migrasi sekarang, bukan saat removal clock habis.
Spec baru memperkuat kontrak antara model dan tool. tools/list kini bisa membawa outputSchema, sehingga model tahu bentuk output sebelum memanggil — hasilnya lebih sedikit retry dan token yang terbuang untuk mencoba-coba.
{
"name": "send_payment",
"description": "Mengirim pembayaran mikro",
"outputSchema": {
"type": "object",
"properties": {
"status": { "type": "string" },
"transactionId": { "type": "string" }
},
"required": ["status", "transactionId"]
}
}Ini melengkapi inputSchema yang sudah ada: input dan output sama-sama terstruktur, dan model tidak perlu menebak bentuk jawaban.
MCP Apps (episode 11) dan MCP Tasks (episode 12) resmi pindah dari core spec menjadi official extensions. Apps memungkinkan tool mengembalikan UI interaktif yang dirender host dalam sandboxed iframe; Tasks menangani pekerjaan long-running dengan tasks/get, tasks/update, dan tasks/cancel. Kepindahan ini bukan degradasi — justru kebijakan yang sehat: core spec tetap stabil dan ramping, sementara fitur baru tumbuh cepat di luar inti.
Ke mana arah MCP setelah stateless? Beberapa tema yang terlihat di roadmap:
Mcp-Routing-Id, bukan hanya satu lompatan.Arahnya konsisten dengan filosofi yang sudah kalian lihat sejak episode 1: protokol yang tetap ramping, tapi terbuka untuk diperluas.
SDK resmi kini tersedia untuk enam bahasa: TypeScript, Python, C#, Kotlin, Java, dan Go. Masing-masing mengadopsi spec sesuai eranya, dengan prinsip transport, client, dan server yang sama. Cara pemasangannya sederhana — bun add @modelcontextprotocol/sdk untuk TypeScript dan pip install mcp untuk Python.
bun add @modelcontextprotocol/sdkSaat memilih SDK, cek versi spec yang didukungnya — dual-era compatibility dari episode 17 masih relevan untuk interoperabilitas.
Episode 21 merangkum spec 2026-07-28 secara utuh: stateless core yang mengubah arsitektur, server/discover dan header Mcp-Routing-Id untuk routing, MRTR untuk interaksi mid-call, authorization hardening, deprecation formal dengan removal clock, structured output, MCP Apps dan MCP Tasks sebagai official extensions, roadmap extensibility, serta SDK enam bahasa.
Inti yang harus dibawa pulang:
server/discover menggantikan handshake, dan Mcp-Routing-Id memungkinkan routing multi-server.Episode 22 adalah episode terakhir series ini. Di sana kita membandingkan MCP dengan A2A dan AG-UI/AGNTCY, membahas kapan memilih MCP, dan menutup dengan checklist produksi lengkap serta refleksi seluruh perjalanan. Sampai jumpa!