# Các thời kỳ của giao thức MCP (MCP eras)

> VI: https://5ac.vn/wiki/mcp-eras/ · EN: https://5ac.vn/en/wiki/mcp-eras/ · lang: vi · spec_as_of 2026-10-18 (spec 2026-07-28) · cluster C3

Lịch sử năm bản revision của đặc tả Model Context Protocol, từ 2024-11-05 đến 2026-07-28: mỗi thời kỳ đổi gì, tài liệu nào còn mô tả bộ bắt tay cũ, và cách nhận ra era mà một tutorial giả định.

---
## Định nghĩa

MCP eras là tên năm bản revision có ngày của đặc tả Model Context Protocol: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25 và 2026-07-28. Mỗi thời kỳ đổi cách hai đầu bắt tay, khai phiên bản và nhận thông báo; xác định era của một tài liệu giúp không chép khuôn handshake cũ vào server bản 2026.

## Cơ chế

MCP định phiên bản theo ngày, không theo semver. Trang versioning ghi nguyên văn (truy cập 18/10/2026): *"The Model Context Protocol uses string-based version identifiers following the format `YYYY-MM-DD`, to indicate the last date backwards incompatible changes were made"*: phiên bản chỉ tăng khi có thay đổi ngược tương thích. Chuỗi revision dưới đây xác minh từ chính các trang changelog: mỗi trang mở đầu bằng câu "This document lists changes made to the Model Context Protocol (MCP) specification since the previous revision, …" — ghép bốn câu lại thành chuỗi liên tục đúng năm mốc:

| Era | Thay đổi chữ ký theo changelog gốc | Dấu hiệu nhận tài liệu giả định era này |
| --- | --- | --- |
| 2024-11-05 | bản đầu: JSON-RPC 2.0, handshake tập trung, HTTP+SSE transport, chưa có khung authorization | nói "HTTP+SSE endpoint", không nhắc OAuth |
| 2025-03-26 | thêm authorization OAuth 2.1; Streamable HTTP thay HTTP+SSE; thêm JSON-RPC batching; thêm tool annotations | dạy "batching" như tính năng hợp lệ |
| 2025-06-18 | bỏ batching; structured tool output; server là OAuth Resource Server; buộc Resource Indicators (RFC 8707); thêm elicitation; buộc header `MCP-Protocol-Version` | còn nói batching = đã lỗi thời từ đây; nhắc RFC 8707 = từ đây trở đi |
| 2025-11-25 | OIDC Discovery; icons; incremental scope consent; URL elicitation; sampling gọi được công cụ; Client ID Metadata Documents; tasks thử nghiệm trong lõi; JSON Schema 2020-12 | "tasks" quảng bá qua `capabilities.tasks` như capability lõi |
| 2026-07-28 | bỏ handshake `initialize` và session `Mcp-Session-Id`; mỗi request khai phiên bản trong `_meta`; thêm `server/discover`; MRTR; `resultType` bắt buộc; `subscriptions/listen`; tasks thành extension; Roots/Sampling/Logging bị deprecated | thấy `server/discover`, MRTR, `resultType`; handshake không còn bắt buộc |

## Tutorial nào vẫn mô tả bộ bắt tay cũ

Rất nhiều. Trang versioning phải dành mục tương thích ngược cho *"servers and clients that implement the handshake-based protocol revisions (`2025-11-25` and earlier)"*: toàn bộ bốn era đầu, theo đúng lời đặc tả, là "handshake-based". Bằng chứng hệ sinh thái: công cụ chính thức MCP Inspector vẫn lấy `legacy` làm era mặc định, lý do ghi thẳng trong tài liệu: *"A debugging tool must not auto-probe. A `server/discover` probe stalls against silent legacy stdio servers"*. Hệ quả khi đọc tutorial: bài viết trước tháng 08/2026 gần như chắc chắn mô tả handshake `initialize` đầu phiên, session id, có thể cả batching hay HTTP+SSE — đều không còn đúng với server bản 2026-07-28.

## Neo chuẩn (đặc tả gốc)

Mọi ngày revision đọc trực tiếp từ trang chuẩn, kèm câu nguyên văn nơi mốc xuất hiện (tất cả truy cập 18/10/2026, HTTP 200):

- <https://modelcontextprotocol.io/specification/versioning> — *"The current protocol version is 2026-07-28."* — và *"For interoperability with servers and clients that implement the handshake-based protocol revisions (`2025-11-25` and earlier), see Backward Compatibility."*
- <https://modelcontextprotocol.io/specification/2025-03-26/changelog> — *"…since the previous revision, 2024-11-05."*
- <https://modelcontextprotocol.io/specification/2025-06-18/changelog> — *"…since the previous revision, 2025-03-26."*
- <https://modelcontextprotocol.io/specification/2025-11-25/changelog> — *"…since the previous revision, 2025-06-18."*
- <https://modelcontextprotocol.io/specification/2026-07-28/changelog> — *"…since the previous revision, 2025-11-25."* (thay đổi lớn: *"Make MCP stateless: remove the `initialize`/`notifications/initialized` handshake"*; *"Add `server/discover`: servers MUST implement this RPC"*)
- <https://modelcontextprotocol.io/llms.txt> — mục lục máy đọc chính thức: đếm đúng năm thư mục dated `specification/2024-11-05`, `2025-03-26`, `2025-06-18`, `2025-11-25`, `2026-07-28` (kèm dãy `docs/` tương ứng) — không có revision thứ sáu.
- <https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/protocol-eras.md> — *"The 2026-07-28 revision of MCP made substantial changes to the protocol. The Inspector therefore treats protocol era (legacy or modern, meaning before or as of that revision) as a first-class, per-server setting"* — khái niệm "era" là thuật ngữ chính thức, không phải do bài này đặt.

## Neo học thuật

Entry này không cần neo arXiv: đối tượng là lịch sử revision của một chuẩn mở, và nguồn chuẩn (versioning page + bốn changelog ở trên) chính là tài liệu gốc — mọi mốc ngày đọc trực tiếp từ đó, không qua tổng thuật bên thứ ba. Muốn khung đọc cho phần *đo lường* các bản thể hiện giao thức, xem survey arXiv:2507.21504 ở entry [Model Context Protocol](/wiki/mcp/).

## Câu hỏi thường gặp

**Vì sao MCP dùng ngày thay vì semver?** Vì phiên bản chỉ nhích khi thay đổi ngược tương thích; giữa hai revision đặc tả nhận cải tiến tương thích mà không đổi số — trang versioning gọi là *"incremental improvements while preserving interoperability"*.

**Tutorial dạy handshake `initialize`: còn dùng được không?** Có, với server bản ≤ 2025-11-25 (phần lớn server production hôm nay). Nhưng client viết theo khuôn đó phải qua đường tương thích ngược; server 2026 không còn handshake bắt buộc — nó đọc phiên bản từ `_meta` từng request.

**Dấu hiệu rẻ nhất để định era một tài liệu?** Ba chữ ký: nhắc batching (chỉ đúng giai đoạn 2025-03-26→2025-06-18); nhắc `Mcp-Session-Id` hoặc HTTP+SSE (≤ 2025-11-25); nhắc `server/discover` hay MRTR (2026-07-28).

**Revision mới có xóa tính năng ngay?** Không. Từ 2026-07-28 có chính sách vòng đời: tính năng *Deprecated* *"remain in the specification for at least twelve months"* trước khi đủ điều kiện Remove. Roots, Sampling, Logging đang trong cửa sổ này.

**Đã có revision thứ sáu chưa?** Tính đến as-of 18/10/2026, mục lục chính thức và bốn trang changelog chỉ ra đúng năm revision, chưa bản nào khác được đánh dấu Current. Ngày truy xuất là một phần của tuyên bố — đó chính là cơ chế spec-as-of.

## Liên quan

- [Model Context Protocol (MCP)](/wiki/mcp/)
- [llms.txt là gì](/wiki/llms-txt/)
- [Agent2Agent (A2A) là gì](/wiki/a2a/)
- [ACP — ba giao thức cùng tên](/wiki/acp/)
- [Agent Skills (SKILL.md) là gì](/wiki/agent-skills/)
- [Hệ thống điều hành multi-agent là gì](/blog/he-thong-dieu-hanh-multi-agent-la-gi/) — kiến trúc mà các giao thức MCP/A2A kết nối
